123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391 |
- // pages/create-order/index.js
- import http from '../../utils/http'
- import util from '../../utils/util'
- import api from '../../utils/api'
- import Dialog from '../../miniprogram_npm/@vant/weapp/dialog/dialog';
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- tabs: ['内部设备调用', '调用设备添加'],
- tabIndex: 1,
- work_points: [],
- pointIndex: -1,
- id: -1,
- project: null,
- remark: '',
- devices: [],
- // create/edit
- type: 'create',
- order_id: '',
- loadedOrder: false,
- role: null,
- // 审核(check)|确认(pass)|重新提交(re-submit)|退回(back)
- actionType: null,
- order: null,
- canEdit: true,
- showBack: false,
- showRent: false,
- showDate: false,
- deviceIndex: -1
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- // options = {
- // id: 1,
- // type: 'edit',
- // order_id: 194
- // }
- var id = options.id ? options.id : 1
- var type = options.type ? options.type : 'create'
- var order_id = options.order_id ? options.order_id : ''
- this.setData({
- id,
- type,
- order_id
- })
- this.init()
- },
- init() {
- var order_id = this.data.order_id
- api.getProject(this)
- api.getByName(this, 'work-points/get', 'work_points', {project_id: this.data.id});
- if (order_id) {
- var that = this
- api.getByName(this, 'orders/detail', 'order', {
- id: order_id
- }, function (res) {
- api.getByName(that, 'orders/getRole', 'role', {
- id: that.data.order ? that.data.order.project_id : ''
- }, function (res) {
- that.updateActionType()
- that.initData()
- });
- });
- wx.setNavigationBarTitle({
- title: '订单详情',
- })
- }
- },
- updateActionType: function () {
- var actionType = ''
- var role = this.data.role
- var order = this.data.order
- if (order.level == role.level) {
- if (['checking', 'checked'].indexOf(order.status_key) != -1 && role && role.rights && role.rights.applyCheck) actionType = 'check';
- else if (order.status_key == 'reject' && role.key == 'machine') actionType = 're-submit'
- else if (order.status_key == 'checked' && role.key == 'machine') actionType = 'back'
- }
- var canEdit = (actionType == 're-submit');
- if (order.is_draft == 1) {
- canEdit = true
- actionType = 'edit'
- }
- this.setData({
- actionType,
- canEdit
- })
- },
- navigate: function (e) {
- console.log(e)
- wx.navigateTo({
- url: e.currentTarget.dataset.url,
- })
- },
- switchChecked: function (e) {
- var index = e.detail.index
- var devices = this.data.devices
- devices[index].checked = !devices[index].checked
- this.setData({
- devices
- })
- },
- switchShow: function (e) {
- var name = e.currentTarget.dataset.name
- var val = this.data[name]
- this.setData({
- [name]: !val
- })
- },
- check: function (e) {
- var type = e.currentTarget.dataset.type
- var that = this
- var msg = '确认通过审核吗?'
- if (type == 'reject') msg = '确认驳回申请吗?'
- else if (type == 'pass' || type == 're-submit') msg = '确认提交吗?'
- else if (type == 'back') {
- this.switchShow(e)
- return false
- } else if (type == 're-rent') {
- this.switchShow(e)
- return false
- }
- Dialog.confirm({
- title: '提示',
- message: msg,
- })
- .then(() => {
- that.submitCheck(e)
- }).catch(()=>{
- Dialog.close()
- })
- },
- editDate: function (e) {
- var deviceIndex = e.detail.index
- var device = this.data.devices[deviceIndex]
- var default_dates = [device.start_date, device.end_date]
- this.setData({
- showDate: true,
- default_dates,
- deviceIndex
- })
- },
- confirmDate: function (e) {
- var [start_date, end_date] = e.detail;
- start_date = util.formatDate(start_date)
- end_date = util.formatDate(end_date)
- var devices = this.data.devices
- var deviceIndex = this.data.deviceIndex
- if (this.data.actionType == 'back') {
- var init_end_date = this.data.devices[deviceIndex].init_end_date
- if (init_end_date >= start_date) {
- util.error('该设备还在使用中,请重新选择续租时间')
- return false;
- }
- }
- devices[deviceIndex].start_date = start_date
- devices[deviceIndex].end_date = end_date
- devices[deviceIndex].is_change = true
- this.setData({
- devices,
- showDate: false
- })
- },
- submitCheck: function (e) {
- var type = e.currentTarget.dataset.type
- var is_change = e.currentTarget.dataset.change
- var that = this
- if (this.data.devices.length <= 0) {
- util.error('请选择调用设备');
- return false;
- }
- if (type == 'back') {
- var devices = this.data.devices
- var find = false;
- for (var i = 0; i < devices.length; ++i) {
- if (devices[i].checked) {
- find = true;
- break;
- }
- }
- if (!find) {
- util.error('归还设备不能为空');
- return false;
- }
- this.switchShow(e)
- }
- http({
- url: 'orders/check',
- data: {
- id: this.data.order_id,
- type: type,
- remark: this.data.remark,
- devices: this.data.devices,
- is_change: is_change
- },
- success: function (res) {
- if (res.code == 0) {
- util.success('操作成功')
- Dialog.close()
- setTimeout(function () {
- that.init()
- }, 1000)
- }
- }
- })
- },
- initData: function () {
- var order = this.data.order,
- work_points = this.data.work_points,
- pointIndex = this.data.pointIndex
- for (var i = 0; i < work_points.length; ++i) {
- if (work_points[i].id == order.work_point_id) {
- pointIndex = i;
- break;
- }
- }
- this.setData({
- pointIndex,
- remark: order.remark,
- devices: order.inner_devices,
- loadedOrder: true
- })
- },
- submit: function (e) {
- var type = e.currentTarget.dataset.type
- var is_draft = type == 'draft' ? 1 : 2
- var submit_type = this.data.type
- if (this.data.pointIndex < 0) {
- util.error('需求工点必填');
- return false;
- }
- if (this.data.devices.length <= 0) {
- util.error('请选择调用设备');
- return false;
- }
- if (type == 're-rent') {
- var devices = this.data.devices
- for (var i = 0; i < devices.length; ++i) {
- if (devices[i].start_date <= devices[i].init_end_date) {
- util.error('有设备还在使用中,请重新选择续租时间')
- return false;
- }
- }
- this.setData({
- showRent: false
- })
- }
- var work_point = this.data.work_points[this.data.pointIndex]
- var url = (submit_type == 'create' || type == 're-rent') ? 'orders/createInner' : 'orders/updateInner'
- wx.setStorageSync('sg-added-devices', [])
- var that = this
- http({
- url: url,
- data: {
- id: this.data.order_id,
- project_id: this.data.id,
- work_point_id: work_point.id,
- remark: this.data.remark,
- devices: this.data.devices,
- is_draft: is_draft,
- type: type
- },
- success: function (res) {
- if (res.code == 0) {
- util.success('操作成功')
- setTimeout(function () {
- var url = '/pages/order-inner/index?id=' + that.data.id
- if (is_draft == 1) {
- wx.navigateBack({
- delta: 0,
- })
- } else {
- wx.redirectTo({
- url: url,
- })
- }
- }, 1000)
- }
- }
- })
- },
- switchTab: function (e) {
- this.setData({
- tabIndex: e.currentTarget.dataset.index
- })
- },
- onChange: function (e) {
- var name = e.currentTarget.dataset.name
- this.setData({
- [name]: e.detail.value
- })
- },
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady: function () {
- },
- /**
- * 生命周期函数--监听页面显示
- */
- onShow: function () {
- if (this.data.type == 'create' || this.data.loadedOrder) {
- var devices = wx.getStorageSync('sg-added-devices')
- devices = devices ? devices : []
- this.setData({
- devices
- })
- }
- },
- goAdd: function (e) {
- var devices = this.data.devices
- wx.setStorageSync('sg-added-devices', devices)
- this.navigate(e)
- },
- deleteDevice: function (e) {
- wx.showModal({
- title: "提示",
- content: "是否确定删除",
- success: (res) => {
- if (res.confirm) {
- var index = e.detail.index
- var devices = this.data.devices
- devices.splice(index, 1)
- this.setData({
- devices
- })
- }
- }
- })
- },
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide: function () {
- },
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload: function () {
- },
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh: function () {
- },
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom: function () {
- },
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
- }
- })
|