From 2f2c398d3e927bfb1ae7edf9d9d13b2d424e76c4 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期一, 30 六月 2025 16:48:06 +0800 Subject: [PATCH] 安灯管理页面 --- src/views/system/modules/AndonOrderModal.vue | 152 +++++++++++++++++++++++++ src/views/system/AndonOrderList.vue | 195 ++++++++++++++++++++++++++++++++ 2 files changed, 347 insertions(+), 0 deletions(-) diff --git a/src/views/system/AndonOrderList.vue b/src/views/system/AndonOrderList.vue new file mode 100644 index 0000000..f07309c --- /dev/null +++ b/src/views/system/AndonOrderList.vue @@ -0,0 +1,195 @@ +<template> + <a-card :bordered="false"> + + <!-- 鏌ヨ鍖哄煙 --> + <div class="table-page-search-wrapper"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="璁惧缂栧彿"> + <a-input placeholder="璇疯緭鍏ヨ澶囩紪鍙�" v-model="queryParam.equipmentId"></a-input> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="瀹夌伅绫诲瀷"> + <j-dict-select-tag placeholder="璇烽�夋嫨瀹夌伅绫诲瀷" dictCode="andon_type" v-model="queryParam.andonType" + allow-clear/> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="瀹夌伅鐘舵��"> + <j-dict-select-tag placeholder="璇烽�夋嫨瀹夌伅鐘舵��" dictCode="order_status" v-model="queryParam.orderStatus" + allow-clear/> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> + <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> + </span> + </a-col> + + </a-row> + </a-form> + </div> + + <!-- table鍖哄煙-begin --> + <div> +<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">--> +<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤�--> +<!-- <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a>--> +<!-- </div>--> + + <a-table + ref="table" + size="middle" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + class="j-table-force-nowrap" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" + @change="handleTableChange"> + + <span slot="action" slot-scope="text, record"> +<!-- <a @click="handleEdit(record)">缂栬緫</a>--> + +<!-- <a-divider type="vertical" />--> +<!-- <a-dropdown>--> +<!-- <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>--> +<!-- <a-menu slot="overlay">--> +<!-- <a-menu-item>--> +<!-- <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">--> +<!-- <a>鍒犻櫎</a>--> +<!-- </a-popconfirm>--> +<!-- </a-menu>--> +<!-- </a-dropdown>--> + </span> + + </a-table> + </div> + <!-- table鍖哄煙-end --> + + <!-- 琛ㄥ崟鍖哄煙 --> + <andonOrder-modal ref="modalForm" @ok="modalFormOk"></andonOrder-modal> + </a-card> +</template> + +<script> + import '@assets/less/TableExpand.less' + import AndonOrderModal from './modules/AndonOrderModal.vue' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' + + export default { + name: "AndonOrderList", + mixins:[JeecgListMixin], + components: { + AndonOrderModal + }, + data () { + return { + description: '瀹夌伅绠$悊椤甸潰', + // 琛ㄥご + columns: [ + { + title: '璁惧缂栧彿', + align:"center", + dataIndex: 'equipmentId' + }, + { + title: '瀹夌伅绫诲瀷', + align:"center", + dataIndex: 'andonType_dictText' + }, + { + title: '瀹夌伅浜�', + align:"center", + dataIndex: 'operator_dictText' + }, + { + title: '瀹夌伅鏃堕棿', + align:"center", + dataIndex: 'operateTime' + }, + { + title: '鍛煎彨鍘熷洜', + align:"center", + dataIndex: 'callReason' + }, + { + title: '瀹夌伅鐘舵��', + align:"center", + dataIndex: 'orderStatus_dictText' + }, + { + title: '鍝嶅簲浜�', + align:"center", + dataIndex: 'responder_dictText' + }, + { + title: '鍝嶅簲鏃堕棿', + align:"center", + dataIndex: 'responseTime' + }, + { + title: '澶勭悊浜�', + align:"center", + dataIndex: 'processor' + }, + { + title: '澶勭悊瀹屾垚鏃堕棿', + align:"center", + dataIndex: 'processTime' + }, + { + title: '闂鎻忚堪', + align:"center", + dataIndex: 'problemDescreption' + }, + { + title: '澶勭悊缁撴灉鎻忚堪', + align:"center", + dataIndex: 'resolutionDescreption' + }, + { + title: '澶勭悊缁撴灉鍥剧墖', + align:"center", + dataIndex: 'imageFiles' + }, + // { + // title: '鎵�灞炲巶鎴�', + // align:"center", + // dataIndex: 'plantName' + // }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align:"center", + scopedSlots: { customRender: 'action' }, + } + ], + url: { + list: "/mdc/andonOrder/list", + delete: "/mdc/andonOrder/delete", + deleteBatch: "/mdc/andonOrder/deleteBatch", + exportXlsUrl: "mdc/andonOrder/exportXls", + importExcelUrl: "mdc/andonOrder/importExcel", + }, + } + }, + computed: { + importExcelUrl: function(){ + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + } + }, + methods: { + + } + } +</script> +<style scoped> + @import '~@assets/less/common.less'; +</style> \ No newline at end of file diff --git a/src/views/system/modules/AndonOrderModal.vue b/src/views/system/modules/AndonOrderModal.vue new file mode 100644 index 0000000..28e4811 --- /dev/null +++ b/src/views/system/modules/AndonOrderModal.vue @@ -0,0 +1,152 @@ +<template> + <j-modal + :title="title" + :width="800" + :visible="visible" + :confirmLoading="confirmLoading" + switchFullscreen + @ok="handleOk" + @cancel="handleCancel" + cancelText="鍏抽棴"> + + <a-spin :spinning="confirmLoading"> + <a-form-model ref="form" :model="model" :rules="validatorRules"> + + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="璁惧缂栧彿"> + <a-input placeholder="璇疯緭鍏ヨ澶囩紪鍙�" v-model="model.equipmentId" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="andonType" label="瀹夌伅绫诲瀷"> + <a-input placeholder="璇疯緭鍏ュ畨鐏被鍨�" v-model="model.andonType" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operator" label="瀹夌伅浜�"> + <a-input placeholder="璇疯緭鍏ュ畨鐏汉" v-model="model.operator" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operateTime" label="瀹夌伅鏃堕棿"> + <a-input placeholder="璇疯緭鍏ュ畨鐏椂闂�" v-model="model.operateTime" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="responder" label="鍝嶅簲浜�"> + <a-input placeholder="璇疯緭鍏ュ搷搴斾汉" v-model="model.responder" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="responseTime" label="鍝嶅簲鏃堕棿"> + <a-input placeholder="璇疯緭鍏ュ搷搴旀椂闂�" v-model="model.responseTime" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processor" label="澶勭悊浜�"> + <a-input placeholder="璇疯緭鍏ュ鐞嗕汉" v-model="model.processor" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processTime" label="澶勭悊瀹屾垚鏃堕棿"> + <a-input placeholder="璇疯緭鍏ュ鐞嗗畬鎴愭椂闂�" v-model="model.processTime" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderStatus" label="瀹夌伅鐘舵��;寰呭搷搴斻�佸緟澶勭悊銆佸凡瀹屾垚"> + <a-input placeholder="璇疯緭鍏ュ畨鐏姸鎬�;寰呭搷搴斻�佸緟澶勭悊銆佸凡瀹屾垚" v-model="model.orderStatus" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="problemDescreption" label="闂鎻忚堪"> + <a-input placeholder="璇疯緭鍏ラ棶棰樻弿杩�" v-model="model.problemDescreption" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="resolutionDescreption" label="澶勭悊缁撴灉鎻忚堪"> + <a-input placeholder="璇疯緭鍏ュ鐞嗙粨鏋滄弿杩�" v-model="model.resolutionDescreption" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="imageFiles" label="澶勭悊缁撴灉鍥剧墖"> + <a-input placeholder="璇疯緭鍏ュ鐞嗙粨鏋滃浘鐗�" v-model="model.imageFiles" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag" label="鍒犻櫎鏍囪"> + <a-input-number v-model="model.delFlag"/> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="callReason" label="鍛煎彨鍘熷洜"> + <a-input placeholder="璇疯緭鍏ュ懠鍙師鍥�" v-model="model.callReason" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="plantName" label="鎵�灞炲巶鎴�"> + <a-input placeholder="璇疯緭鍏ユ墍灞炲巶鎴�" v-model="model.plantName" /> + </a-form-model-item> + + </a-form-model> + </a-spin> + </j-modal> +</template> + +<script> + import { httpAction } from '@api/manage' + + export default { + name: "AndonOrderModal", + data () { + return { + title:"鎿嶄綔", + visible: false, + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 }, + }, + + confirmLoading: false, + validatorRules:{ + }, + url: { + add: "/mdc/andonOrder/add", + edit: "/mdc/andonOrder/edit", + }, + } + }, + created () { + }, + methods: { + add () { + //鍒濆鍖栭粯璁ゅ�� + this.edit({}); + }, + edit (record) { + this.model = Object.assign({}, record); + this.visible = true; + }, + close () { + this.$emit('close'); + this.visible = false; + this.$refs.form.clearValidate(); + }, + handleOk () { + const that = this; + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.$refs.form.validate(valid => { + if (valid) { + that.confirmLoading = true; + let httpurl = ''; + let method = ''; + if(!this.model.id){ + httpurl+=this.url.add; + method = 'post'; + }else{ + httpurl+=this.url.edit; + method = 'put'; + } + httpAction(httpurl,this.model,method).then((res)=>{ + if(res.success){ + that.$message.success(res.message); + that.$emit('ok'); + }else{ + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + that.close(); + }) + }else{ + return false; + } + }) + }, + handleCancel () { + this.close() + }, + + + } + } +</script> + +<style lang="less" scoped> + +</style> \ No newline at end of file -- Gitblit v1.9.3