{"remainingRequest":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\src\\views\\acs\\task\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\src\\views\\acs\\task\\index.vue","mtime":1732871026670},{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1732872824662},{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1732872825017},{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1732872824662},{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1732872825835}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport crudTask, { cancelAndInst } from '@/api/acs/task/task'\r\nimport CRUD, { crud, header, presenter } from '@crud/crud'\r\nimport crudOperation from '@crud/CRUD.operation'\r\nimport rrOperation from '@crud/RR.operation'\r\nimport pagination from '@crud/Pagination'\r\nimport deviceCrud from '@/api/acs/device/device'\r\nimport routeCurd from '@/api/acs/route/routePlan'\r\nimport { getDicts } from '@/views/system/dict/dict'\r\nimport i18n from '@/i18n'\r\n\r\nexport default {\r\n name: 'Task',\r\n components: { pagination, crudOperation, rrOperation },\r\n dicts: ['task_status', 'task_type', 'agv_system_type', 'storage_task_type', 'kezhuan', 'empty_shaft_position'],\r\n mixins: [presenter(), header(), crud()],\r\n cruds() {\r\n return CRUD({\r\n title: i18n.t('task.txt_box.Task'), url: 'api/task', idField: 'task_id', sort: 'task_id,desc',\r\n optShow: {\r\n add: false,\r\n edit: true,\r\n del: true,\r\n reset: false,\r\n download: false\r\n },\r\n crudMethod: { ...crudTask }\r\n })\r\n },\r\n data() {\r\n const checkFromY = (rule, value, callback) => {\r\n if (this.start_flag) {\r\n if (!value) {\r\n callback(new Error(this.$t('task.select.please_enter_origin_column')))\r\n } else {\r\n callback()\r\n }\r\n } else {\r\n callback()\r\n }\r\n }\r\n const checkFromZ = (rule, value, callback) => {\r\n if (this.start_flag) {\r\n if (!value) {\r\n callback(new Error(this.$t('task.select.please_enter_origin_level')))\r\n } else {\r\n callback()\r\n }\r\n } else {\r\n callback()\r\n }\r\n }\r\n const checkToY = (rule, value, callback) => {\r\n if (this.end_flag) {\r\n if (!value) {\r\n callback(new Error(this.$t('task.select.please_select_destination_column')))\r\n } else {\r\n callback()\r\n }\r\n } else {\r\n callback()\r\n }\r\n }\r\n const checkToZ = (rule, value, callback) => {\r\n if (this.end_flag) {\r\n if (!value) {\r\n callback(new Error(this.$t('task.select.please_select_destination_level')))\r\n } else {\r\n callback()\r\n }\r\n } else {\r\n callback()\r\n }\r\n }\r\n return {\r\n formDia: false,\r\n isDisabled: false,\r\n deviceList: [],\r\n empty_shaft_position: [],\r\n materialList: [],\r\n statusList: [],\r\n routeList: [],\r\n agvActionList: [\r\n { key: '普通任务', value: 1 },\r\n { key: '取货二次分配', value: 2 },\r\n { key: '防货二次分配', value: 3 },\r\n { key: '取放货二次分配', value: 4 }\r\n ],\r\n task_type: [],\r\n class_type: [],\r\n fromYList: [],\r\n fromZList: [],\r\n toYList: [],\r\n toZList: [],\r\n start_flag: false,\r\n end_flag: false,\r\n permission: {\r\n add: ['admin', 'task:add'],\r\n edit: ['admin', 'task:edit'],\r\n del: ['admin', 'task:del']\r\n },\r\n showAddRowButton: true,\r\n form: {\r\n task_id: null,\r\n vehicle_code: null,\r\n vehicle_type: null,\r\n task_type: '1',\r\n storage_task_type: '',\r\n task_status: null,\r\n priority: 1,\r\n start_point_code: null,\r\n start_point_code2: null,\r\n start_device_code: null,\r\n start_device_code2: null,\r\n next_point_code: null,\r\n next_point_code2: null,\r\n interaction_json: null,\r\n remark: null,\r\n material: null,\r\n route_plan_code: 'normal',\r\n agv_action_type: 1,\r\n from_x: null,\r\n from_y: null,\r\n from_z: null,\r\n to_x: null,\r\n to_y: null,\r\n to_z: null,\r\n from_x2: null,\r\n from_y2: null,\r\n from_z2: null,\r\n to_x2: null,\r\n to_y2: null,\r\n to_z2: null,\r\n agv_system_type: '',\r\n interactionJson: null\r\n },\r\n taskStatus: {\r\n task_status: '',\r\n task_id: null\r\n },\r\n extension: [{\r\n name: '',\r\n value: ''\r\n }],\r\n dialogVisible: false,\r\n rules: {\r\n start_point_code: [\r\n { required: true, message: '起点不能为空', trigger: 'change' }\r\n ],\r\n next_point_code: [\r\n { required: true, message: '终点不能为空', trigger: 'change' }\r\n ],\r\n from_y: [\r\n { validator: checkFromY, trigger: 'change' }\r\n ],\r\n from_z: [\r\n { validator: checkFromZ, trigger: 'change' }\r\n ],\r\n to_y: [\r\n { validator: checkToY, trigger: 'change' }\r\n ],\r\n to_z: [\r\n { validator: checkToZ, trigger: 'change' }\r\n ]\r\n }\r\n }\r\n },\r\n created() {\r\n deviceCrud.selectDeviceList().then(data => {\r\n this.deviceList = data\r\n })\r\n routeCurd.selectList().then(data => {\r\n this.routeList = data\r\n })\r\n getDicts().then(data => {\r\n this.dicts = data\r\n })\r\n },\r\n methods: {\r\n getAgvSystemLabel(value) {\r\n const item = this.dict.label.agv_system_type[value]\r\n return item\r\n },\r\n addNewRow() {\r\n this.extension.push({\r\n name: '',\r\n value: ''\r\n })\r\n },\r\n deleteField(index) { // 添加字段的时候删除一条数据\r\n if (this.extension.length > 1) {\r\n this.extension.splice(index, 1)\r\n }\r\n },\r\n cancelForm() {\r\n // 清空表单数据\r\n this.extension = [{\r\n name: '',\r\n value: ''\r\n }]\r\n this.dialogVisible = false\r\n },\r\n saveForm() {\r\n // 保存表单数据\r\n // 你可以在这里处理保存逻辑,并发送请求保存表单数据\r\n this.form.interactionJson = this.extension.reduce((extension, item) => {\r\n extension[item.name] = item.value\r\n return extension\r\n }, {})\r\n this.dialogVisible = false\r\n },\r\n saveBtn() {\r\n // 禁用按钮\r\n this.isDisabled = true\r\n crudTask.add(this.form).then(res => {\r\n // 请求完成后启用按钮\r\n this.isDisabled = false\r\n this.crud.toQuery()\r\n this.formDia = false\r\n this.isDisabled = true\r\n })\r\n this.extension = [{\r\n name: '',\r\n value: ''\r\n }]\r\n // 设置定时器,等待一定时间后再次允许请求\r\n setTimeout(() => {\r\n this.isDisabled = false // 可根据具体需求进行调整\r\n }, 1000) // 5000 毫秒,即 5 秒钟\r\n },\r\n openDialog() {\r\n this.dialogVisible = true\r\n },\r\n closeDialog() {\r\n this.dialogVisible = false\r\n },\r\n // 钩子:在获取表格数据之前执行,false 则代表不获取数据\r\n [CRUD.HOOK.beforeRefresh]() {\r\n return true\r\n },\r\n finish(index, row) {\r\n this.taskStatus.task_id = row.task_id\r\n this.taskStatus.task_status = index\r\n crudTask.finish(this.taskStatus).then(res => {\r\n this.crud.toQuery()\r\n this.crud.notify('完成成功', CRUD.NOTIFICATION_TYPE.SUCCESS)\r\n }).catch(err => {\r\n console.log(err.response.data.message)\r\n })\r\n },\r\n cancel(index, row) {\r\n crudTask.cancel(row.task_id).then(res => {\r\n this.crud.toQuery()\r\n this.crud.notify('取消成功', CRUD.NOTIFICATION_TYPE.SUCCESS)\r\n }).catch(err => {\r\n console.log(err.response.data.message)\r\n })\r\n },\r\n cancelAndInst(index, row) {\r\n crudTask.cancelAndInst(row.task_id).then(res => {\r\n this.crud.toQuery()\r\n this.crud.notify('取消成功', CRUD.NOTIFICATION_TYPE.SUCCESS)\r\n }).catch(err => {\r\n console.log(err.response.data.message)\r\n })\r\n },\r\n createInst(index, row) {\r\n crudTask.createInst(row.task_id).then(res => {\r\n this.crud.toQuery()\r\n this.crud.notify('创建成功', CRUD.NOTIFICATION_TYPE.SUCCESS)\r\n }).catch(err => {\r\n console.log(err.response.data.message)\r\n })\r\n },\r\n reload() {\r\n crudTask.reload().then(res => {\r\n this.crud.toQuery()\r\n }).catch(err => {\r\n console.log(err.response.data.message)\r\n })\r\n },\r\n\r\n beforeHandleCommand(index, row, command) {\r\n return {\r\n 'index': index,\r\n 'row': row,\r\n 'command': command\r\n }\r\n },\r\n handleCommand(index, row, command) {\r\n switch (command) {\r\n case 'a':// 完成\r\n this.finish('2', row)\r\n break\r\n case 'b':// 取消\r\n this.cancel(index, row)\r\n break\r\n case 'c':// 创建指令\r\n this.createInst(index, row)\r\n break\r\n case 'd':// 强制完成\r\n this.finish('4', row)\r\n break\r\n case 'e':// 取消任务和指令\r\n this.cancelAndInst('3', row)\r\n break\r\n }\r\n },\r\n showStartStorage(val) {\r\n let obj = {}\r\n obj = this.deviceList.find((item) => {\r\n return item.device_code === val\r\n })\r\n if (obj.device_type === 'storage') {\r\n this.start_flag = true\r\n let storage_obj = {}\r\n deviceCrud.queryStorageExtra(obj.device_code).then(data => {\r\n storage_obj = data\r\n const n1 = storage_obj.minY\r\n const n2 = storage_obj.maxY\r\n const m1 = storage_obj.minZ\r\n const m2 = storage_obj.maxZ\r\n const from_y = []\r\n const from_z = []\r\n for (let i = n1; i <= n2; i++) {\r\n const y = {}\r\n if (i < 10) {\r\n y.id = '0' + i\r\n } else {\r\n y.id = i\r\n }\r\n y.value = i + '列'\r\n from_y.push(y)\r\n }\r\n for (let i = m1; i <= m2; i++) {\r\n const z = {}\r\n if (i < 10) {\r\n z.id = '0' + i\r\n } else {\r\n z.id = i\r\n }\r\n z.value = i + '层'\r\n from_z.push(z)\r\n }\r\n this.fromYList = from_y\r\n this.fromZList = from_z\r\n this.form.from_x = storage_obj.tunnel\r\n })\r\n } else {\r\n this.start_flag = false\r\n this.form.from_x = ''\r\n this.form.from_y = ''\r\n this.form.from_z = ''\r\n }\r\n this.isDisabled = false\r\n },\r\n showEndStorage(val) {\r\n let obj = {}\r\n obj = this.deviceList.find((item) => {\r\n return item.device_code === val\r\n })\r\n if (obj.device_type === 'storage') {\r\n this.end_flag = true\r\n let storage_obj = {}\r\n deviceCrud.queryStorageExtra(obj.device_code).then(data => {\r\n storage_obj = data\r\n const n1 = storage_obj.minY\r\n const n2 = storage_obj.maxY\r\n const m1 = storage_obj.minZ\r\n const m2 = storage_obj.maxZ\r\n const to_y = []\r\n const to_z = []\r\n for (let i = n1; i <= n2; i++) {\r\n const y = {}\r\n if (i < 10) {\r\n y.id = '0' + i\r\n } else {\r\n y.id = i\r\n }\r\n y.value = i + '列'\r\n to_y.push(y)\r\n }\r\n for (let i = m1; i <= m2; i++) {\r\n const z = {}\r\n if (i < 10) {\r\n z.id = '0' + i\r\n } else {\r\n z.id = i\r\n }\r\n z.value = i + '层'\r\n to_z.push(z)\r\n }\r\n this.toYList = to_y\r\n this.toZList = to_z\r\n this.form.to_x = storage_obj.tunnel\r\n })\r\n } else {\r\n this.end_flag = false\r\n this.form.to_x = ''\r\n this.form.to_y = ''\r\n this.form.to_z = ''\r\n }\r\n this.isDisabled = false\r\n }\r\n }\r\n}\r\n",null]}