From 05170ec3d816960d4f8a38ec8d202cefe73b4179 Mon Sep 17 00:00:00 2001 From: qushaowei <qushaowei@163.com> Date: 星期二, 17 十月 2023 17:40:17 +0800 Subject: [PATCH] 保养问题项处理 --- src/views/system/modules/DepartList/DepartAuthModal.vue | 570 +++--- src/views/eam/modules/daily3MaintenanceOrder/EquipmentPrecisionCheckOrderModal.vue | 1 src/views/eam/DailyInspectionOrderList.vue | 2 src/views/eam/DailyInspectionStandardList.vue | 2 src/views/system/modules/DepartList/DepartTeam.vue | 394 ++++ src/views/eam/modules/daily3MaintenanceOrder/EquipmentTechnologyStatusModal.vue | 229 ++ src/views/eam/DailyMaintenanceStandardList.vue | 2 src/views/system/modules/DepartList/DepartModal.vue | 429 ++-- src/views/system/modules/DepartList/TeamModal.vue | 286 +++ src/views/system/DepartList.vue | 1270 ++++++++------ src/views/eam/Daily3MaintenanceOrderList.vue | 74 src/views/eam/modules/daily3MaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue | 748 ++++++++ src/views/eam/DailyMaintenanceOrderList.vue | 24 src/views/eam/modules/daily3MaintenanceOrder/StoveCategoryModal.vue | 1000 +++++++++++ src/views/eam/modules/dailyMaintenanceOrder/ActualWorkHoursEditTable.vue | 4 15 files changed, 3,996 insertions(+), 1,039 deletions(-) diff --git a/src/views/eam/DailyMaintenanceOrderList3m.vue b/src/views/eam/Daily3MaintenanceOrderList.vue similarity index 86% rename from src/views/eam/DailyMaintenanceOrderList3m.vue rename to src/views/eam/Daily3MaintenanceOrderList.vue index 13f3c93..777c289 100644 --- a/src/views/eam/DailyMaintenanceOrderList3m.vue +++ b/src/views/eam/Daily3MaintenanceOrderList.vue @@ -155,14 +155,14 @@ v-if="record.status == '1'" type="vertical" /> - <a + <!-- <a v-if="record.status === '2'" @click="handleOrderChange(record)" >璁″垝鍙樻洿</a> <a-divider v-if="record.status == '2'" type="vertical" - /> + /> --> <a-popconfirm title="纭畾鎾ゅ洖宸ュ崟鍚�?" @confirm="() => handleOrderReset(record)" @@ -252,11 +252,27 @@ type="vertical" /> --> <a - v-if="record.status === '5' || record.status === '8' " + v-if="record.status === '5' && record.isNotStoveCategoryFlag == false && record.precisionParameters == '1' && (record.precisionInspectionStatus == '0' ||record.precisionInspectionStatus == '1' ||record.precisionInspectionStatus == '2' ||record.precisionInspectionStatus == '3' ||record.precisionInspectionStatus == '4')" @click="handlePrecisionCheckOrder(record)" >绮惧害妫�楠�</a> <a-divider - v-if="record.status === '5'|| record.status === '8'" + v-if="record.status === '5'&& record.isNotStoveCategoryFlag == false && record.precisionParameters == '1' && (record.precisionInspectionStatus == '0' ||record.precisionInspectionStatus == '1' ||record.precisionInspectionStatus == '2' ||record.precisionInspectionStatus == '3' ||record.precisionInspectionStatus == '4')" + type="vertical" + /> + <a + v-if="record.status === '5' && record.isNotStoveCategoryFlag == true && (record.stoveExemptStatus == '0' ||record.stoveExemptStatus == '1' ||record.stoveExemptStatus == '2')" + @click="handleStoveDetection(record)" + >鐐夌被妫�娴�</a> + <a-divider + v-if="record.status === '5'&& record.isNotStoveCategoryFlag == true && (record.stoveExemptStatus == '0' ||record.stoveExemptStatus == '1' ||record.stoveExemptStatus == '2')" + type="vertical" + /> + <a + v-if="record.status === '5' && record.isNotStoveCategoryFlag == false && record.precisionParameters == '0'" + @click="handleTechnologyStatus(record)" + >鎶�鏈姸鎬侀壌瀹�</a> + <a-divider + v-if="record.status === '5'&& record.isNotStoveCategoryFlag == false && record.precisionParameters == '0' " type="vertical" /> <a-dropdown> @@ -283,7 +299,7 @@ slot-scope="text, record" > <a - v-if="record.status === '3' || record.status === '4' ||record.status === '5' ||record.status === '7' ||record.status === '8'" + v-if="record.status === '3' || record.status === '4' ||record.status === '5' ||record.status === '7' " class="lot" @click="handleOrderExe(record)" >{{record.num}}</a> @@ -309,6 +325,10 @@ ref="EquipmentPrecisionCheckOrderModal" @ok="modalFormOk" ></equipment-precision-check-order-modal> + <stove-category-modal + ref="StoveCategoryModal" + @ok="modalFormOk" + ></stove-category-modal> <maintenance-order-assign-modal ref="MaintenanceOrderAssignModal" @ok="modalFormOk" @@ -317,6 +337,10 @@ ref="DailyMaintenanceOrderExeDrawer" @ok="modalFormOk" ></daily-maintenance-order-exe-drawer> + <equipment-technology-status-modal + ref="EquipmentTechnologyStatusModal" + @ok="modalFormOk" + ></equipment-technology-status-modal> </a-card> </template> @@ -328,9 +352,11 @@ import MaintenanceOrderModal from './modules/dailyMaintenanceOrder/MaintenanceOrderModal' import FinishDevolutionModal from './modules/dailyMaintenanceOrder/FinishDevolutionModal' import MaintenanceOrderChangeModal from './modules/dailyMaintenanceOrder/MaintenanceOrderChangeModal' -import EquipmentPrecisionCheckOrderModal from './modules/dailyMaintenanceOrder/EquipmentPrecisionCheckOrderModal' +import EquipmentPrecisionCheckOrderModal from './modules/daily3MaintenanceOrder/EquipmentPrecisionCheckOrderModal' +import StoveCategoryModal from './modules/daily3MaintenanceOrder/StoveCategoryModal' import MaintenanceOrderAssignModal from './modules/dailyMaintenanceOrder/MaintenanceOrderAssignModal' -import DailyMaintenanceOrderExeDrawer from './modules/dailyMaintenanceOrder/DailyMaintenanceOrderExeDrawer' +import DailyMaintenanceOrderExeDrawer from './modules/daily3MaintenanceOrder/DailyMaintenanceOrderExeDrawer' +import EquipmentTechnologyStatusModal from './modules/daily3MaintenanceOrder/EquipmentTechnologyStatusModal' import { getAction, postAction, requestPut } from '@/api/manage' export default { @@ -342,11 +368,14 @@ MaintenanceOrderAssignModal, EquipmentPrecisionCheckOrderModal, DailyMaintenanceOrderExeDrawer, - MaintenanceOrderChangeModal + MaintenanceOrderChangeModal, + StoveCategoryModal, + EquipmentTechnologyStatusModal }, data() { return { - description: '鏃ュ父淇濆吇宸ュ崟', + description: '涓夌骇淇濆吇宸ュ崟', + queryParam: { maintenanceType: '3' }, // 琛ㄥご columns: [ { @@ -360,15 +389,15 @@ } }, { - title: '鐘舵��', - align: "center", - dataIndex: 'statusName' - }, - { title: '淇濆吇宸ュ崟鍙�', align: "center", dataIndex: 'num', scopedSlots: { customRender: 'num' } + }, + { + title: '鐘舵��', + align: "center", + dataIndex: 'statusName' }, { title: '淇濆吇鍛ㄦ湡', @@ -476,7 +505,7 @@ } ], url: { - list: "/eam/dailyMaintenanceOrder/getDailyMaintenanceOrderList", + list: "/eam/dailyMaintenanceOrder/getDailyMaintenanceOrder3List", delete: "/eam/dailyMaintenanceOrder/delete", deleteBatch: "/eam/dailyMaintenanceOrder/deleteBatch", exportXlsUrl: "/eam/dailyMaintenanceOrder/exportXls", @@ -573,10 +602,21 @@ this.$refs.EquipmentPrecisionCheckOrderModal.disableSubmit = false; }, - handleOrderChange: function (record) { + handleTechnologyStatus: function (record) { + this.$refs.EquipmentTechnologyStatusModal.edit(record); + this.$refs.EquipmentTechnologyStatusModal.title = "鎶�鏈姸鎬佺紪杈�"; + this.$refs.EquipmentTechnologyStatusModal.disableSubmit = false; + }, + handleStoveDetection: function (record) { + this.$refs.StoveCategoryModal.edit(record); + this.$refs.StoveCategoryModal.title = "娓╁害鍧囧寑鎬ф娴嬫潯浠剁‘璁よ〃"; + this.$refs.StoveCategoryModal.disableSubmit = false; + }, + + handleOrderChange: function (record) { this.$refs.MaintenanceOrderChangeModal.edit(record); - this.$refs.MaintenanceOrderChangeModal.title = "鐢熶骇璁惧淇濆吇璁″垝鍙樻洿鐢宠鍗�"; + this.$refs.MaintenanceOrderChangeModal.title = "娓╁害鍧囧寑鎬ф娴嬫潯浠剁‘璁よ〃"; this.$refs.MaintenanceOrderChangeModal.disableSubmit = false; }, diff --git a/src/views/eam/DailyInspectionOrderList.vue b/src/views/eam/DailyInspectionOrderList.vue index d630e3a..c9ffbdc 100644 --- a/src/views/eam/DailyInspectionOrderList.vue +++ b/src/views/eam/DailyInspectionOrderList.vue @@ -1,7 +1,7 @@ <template> <a-card :bordered="false" - title="鏃ュ父鐐规宸ュ崟" + title="鏃ヤ繚鍛ㄤ繚宸ュ崟" > <!-- 鏌ヨ鍖哄煙 --> <div class="table-page-search-wrapper"> diff --git a/src/views/eam/DailyInspectionStandardList.vue b/src/views/eam/DailyInspectionStandardList.vue index 1f7cf59..0cb2c33 100644 --- a/src/views/eam/DailyInspectionStandardList.vue +++ b/src/views/eam/DailyInspectionStandardList.vue @@ -1,6 +1,6 @@ <template> <a-card - title="鏃ュ父鐐规" + title="鏃ヤ繚鍛ㄤ繚鏍囧噯" :bordered='false' > <div class='table-page-search-wrapper'> diff --git a/src/views/eam/DailyMaintenanceOrderList.vue b/src/views/eam/DailyMaintenanceOrderList.vue index 9b77df9..0174fad 100644 --- a/src/views/eam/DailyMaintenanceOrderList.vue +++ b/src/views/eam/DailyMaintenanceOrderList.vue @@ -1,7 +1,7 @@ <template> <a-card :bordered="false" - title="鏃ュ父淇濆吇宸ュ崟" + title="浜岀骇淇濆吇宸ュ崟" > <!-- 鏌ヨ鍖哄煙 --> <div class="table-page-search-wrapper"> @@ -315,7 +315,8 @@ }, data() { return { - description: '鏃ュ父淇濆吇宸ュ崟', + description: '浜岀骇淇濆吇宸ュ崟', + queryParam: { maintenanceType: '2' }, // 琛ㄥご columns: [ { @@ -329,16 +330,21 @@ } }, { - title: '鐘舵��', - align: "center", - dataIndex: 'statusName' - }, - { title: '淇濆吇宸ュ崟鍙�', align: "center", dataIndex: 'num', scopedSlots: { customRender: 'num' } }, + { + title: '鐘舵��', + align: "center", + dataIndex: 'statusName' + }, + // { + // title: '淇濆吇绫诲瀷', + // align: "center", + // dataIndex: 'maintenanceTypeName', + // }, { title: '淇濆吇鍛ㄦ湡', align: "center", @@ -491,7 +497,7 @@ }, handlePrintInfo(record) { - let href = `${window._CONFIG['domianURL']}/jmreport/view/857408393168490496?id=`+record.id; //缃戠珯閾炬帴 + let href = `${window._CONFIG['domianURL']}/jmreport/view/857408393168490496?id=` + record.id; //缃戠珯閾炬帴 window.open(href, "_blank"); }, @@ -627,7 +633,7 @@ font-weight: bold; } .yellow { - color: yellow; + color: rgba(255, 255, 0, 0.443); font-weight: bold; } .fontweight { diff --git a/src/views/eam/DailyMaintenanceStandardList.vue b/src/views/eam/DailyMaintenanceStandardList.vue index 5692a18..30e82f1 100644 --- a/src/views/eam/DailyMaintenanceStandardList.vue +++ b/src/views/eam/DailyMaintenanceStandardList.vue @@ -1,6 +1,6 @@ <template> <a-card - title="鏃ュ父淇濆吇鏍囧噯" + title="鍛ㄦ湡鎬т繚鍏绘爣鍑�" :bordered='false' > <div class='table-page-search-wrapper'> diff --git a/src/views/eam/modules/daily3MaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue b/src/views/eam/modules/daily3MaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue new file mode 100644 index 0000000..0070563 --- /dev/null +++ b/src/views/eam/modules/daily3MaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue @@ -0,0 +1,748 @@ +<template> + <a-drawer + :title="title" + :width="drawerWidth" + :visible="visible" + @close="handleCancel" + :confirmLoading="confirmLoading" + :maskClosable="maskClosable" + > + <a-card :style="getBackground()"> + <template> + <a-card> + <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}"> + <a-row :style="{textAlign:'left'}"> + <a-button + :style="{marginRight: '8px'}" + @click="handleSW" + :disabled=SWbuttonDistable + type="primary" + v-has="'dailyMaintenanceOrder:SW'" + >寮�宸�</a-button> + <a-button + :style="{marginRight: '8px'}" + @click="handleReport" + :disabled="buttonDistable" + type="primary" + v-has="'dailyMaintenanceOrder:report'" + >鎶ュ伐</a-button> + <a-button + :style="{marginRight: '8px'}" + @click="handleReset" + :disabled="revocationDistable" + type="primary" + v-has="'dailyMaintenanceOrder:reset'" + >鎾ら攢</a-button> + </a-row> + </div> + <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}"> + <a-row :gutter="24"> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="鐘舵��" + class="hightColor" + > + <span + v-if="this.model != null" + class="hightColor" + >{{ this.model.statusName }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="{span:8}" + :wrapperCol="{span:16}" + label="淇濆吇宸ュ崟鍙�" + class="hightColor" + > + <span + v-if="this.model != null" + class="hightColor" + >{{ this.model.num }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="浣跨敤閮ㄩ棬" + class="hightColor" + > + <span + v-if="this.model != null" + class="hightColor" + >{{ this.model.departName }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + <a-col :span="6"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="璐d换鐝粍" + class="hightColor" + > + <span + v-if="this.model != null" + class="hight" + >{{ this.model.teamName }}</span> + <span + v-else + class="frozenRowClass" + >-</span> + </a-form-item> + </a-col> + </a-row> + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-item + label="闂鍙婂鐞嗘帾鏂芥弿杩�" + :labelCol="{span:3}" + :wrapperCol="{span:18}" + class="hightColor" + > + <a-textarea + allowClear + :disabled="this.model.status!='4'" + :placeholder="'璇疯緭鍏ラ棶棰樺強澶勭悊鎺柦鎻忚堪'" + v-model="model.description" + /> + </a-form-item> + </a-col> + </a-row> + </div> + + <a-tabs + type="card" + defaultActiveKey="1" + > + <a-tab-pane + tab='淇濆吇鏄庣粏' + key="1" + class="hightColor" + > + + <div> + <a-table + ref="table" + size="middle" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :loading="loading" + @change="handleTableChange" + :pagination="ipagination" + > + <!-- :scroll="{ x: 'calc(1200px + 50%)', y: 900 }" --> + <!-- :scroll="{x:true}" --> + <template + v-for="col in columns" + :slot="col.dataIndex" + slot-scope='text, record, index' + > + <div :key="col.dataIndex"> + <span + v-if=" col.dataIndex == 'photo' && !text" + style="font-size: 12px;font-style: italic;" + >鏃犲浘鐗�</span> + <img + v-if="col.dataIndex == 'photo' && text" + :src="getImgView(text)" + :preview="record.maintenanceStandardDetailId" + height="25px" + alt="" + style="max-width:80px;font-size: 12px;font-style: italic;" + /> + <!-- 绀烘剰鍥� 寮�濮� --> + <!-- <Tooltip + placement="top" + title="棰勮鍥剧墖" + > + <img + v-if=" col.dataIndex == 'photo' && record.sketchPhoto.path && (record.sketchPhoto.format.toLowerCase()=='jpg'||record.sketchPhoto.format.toLowerCase()=='bmp'||record.sketchPhoto.format.toLowerCase()=='png'||record.sketchPhoto.format.toLowerCase()=='jpeg'||record.sketchPhoto.format.toLowerCase()=='gif')" + width="30" + height="14" + border="1" + draggable="false" + preview="1" + :preview-text="''" + :src="record.sketchPhoto.src" + /> + </Tooltip> + + <a + v-if=" col.dataIndex == 'photo' && record.sketchPhoto.path && record.sketchPhoto.format.toLowerCase()=='pdf'" + href="javascript:;" + @click="viewP(record.sketchPhoto)" + > + 棰勮 + </a> --> + + <a-input + :value="text" + v-if="col.dataIndex == 'maintenanceOrderDetailUda1'" + @change="(e)=>handleChange(e, record.key, col, index)" + /> + </div> + </template> + </a-table> + <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}"> + <a-row :style="{textAlign:'right'}"> + <a-button + :style="{marginRight: '8px'}" + @click="handleCancel" + > + 鍙栨秷 + </a-button> + <a-button + @click="handleOk()" + type="primary" + :disabled="this.model.status!='4'" + :loading="confirmLoading" + >淇濆瓨</a-button> + </a-row> + <!-- v-has="'dailyMaintenanceOrder:actualWorkHoursSave'" --> + <!-- :disabled="false" --> + </div> + </div> + </a-tab-pane> + + <a-tab-pane + tab='璁″垝鐢ㄦ枡' + key="2" + > + <div + class="table-operator" + style="margin:-16px" + > + <maintenance-standard-planning-material :maintenanceStandardId='maintenanceStandardId' /> + </div> + </a-tab-pane> + <a-tab-pane + tab='鍗遍櫓闃叉帶' + key="3" + > + <div + class="table-operator" + style="margin:-16px" + > + <maintenance-standard-safety-requirement :maintenanceStandardId='maintenanceStandardId' /> + </div> + </a-tab-pane> + <a-tab-pane + tab='浣滀笟鎸囧涔�' + key="4" + > + <div + class="table-operator" + style="margin:-16px" + > + <maintenance-standard-work-instruction :maintenanceStandardId='maintenanceStandardId' /> + </div> + </a-tab-pane> + <a-tab-pane + tab='瀹為檯鐢ㄦ枡' + key="5" + > + <div + class="table-operator" + style="margin:-16px" + > + <actual-material-edit-table + :dailyMaintenanceOrderId="this.model.id" + :dailyMaintenanceOrderStatus="this.model.status" + :equipmentId="this.model.equipmentId" + ></actual-material-edit-table> + </div> + </a-tab-pane> + <a-tab-pane + tab='瀹為檯宸ユ椂' + key="6" + > + <div + class="table-operator" + style="margin:-16px" + > + <actual-work-hours-edit-table + :dailyMaintenanceOrderId="this.model.id" + :dailyMaintenanceOrderStatus="this.model.status" + :equipmentId="this.model.equipmentId" + :teamId="this.model.teamId" + ></actual-work-hours-edit-table> + </div> + </a-tab-pane> + </a-tabs> + </a-card> + </template> + </a-card> + + <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}"> + <a-row :style="{textAlign:'right'}"> + <a-button + :style="{marginRight: '8px'}" + @click="handleCancel" + > + 鍙栨秷 + </a-button> + <a-button + :style="{marginRight: '8px'}" + @click="handleTS" + :disabled="buttonDistable" + type="primary" + v-if="false" + >鏆傚瓨</a-button> + <a-button + @click="handleOk" + :disabled="buttonDistable" + type="primary" + v-if="false" + >淇濆瓨</a-button> + </a-row> + </div> + </a-drawer> +</template> + +<script> +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import { requestPut, getAction, downFile, postAction } from '@/api/manage' +import Tooltip from 'ant-design-vue/es/tooltip' + +import { preview } from 'vue-photo-preview' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import Vue from 'vue' +import PdfView from '@views/common/PdfView' +import { getFileAccessHttpUrl } from '@/api/manage'; + +import MaintenanceStandardPlanningMaterial from '../dailyMaintenanceOrder/MaintenanceStandardPlanningMaterial' +import MaintenanceStandardSafetyRequirement from '../dailyMaintenanceOrder/MaintenanceStandardSafetyRequirement' +import MaintenanceStandardWorkInstruction from '../dailyMaintenanceOrder/MaintenanceStandardWorkInstruction' +import ActualMaterialEditTable from '../dailyMaintenanceOrder/ActualMaterialEditTable.vue' +import ActualWorkHoursEditTable from '../dailyMaintenanceOrder/ActualWorkHoursEditTable.vue' + +export default { + name: 'DailyMaintenanceOrderExeDrawer', + mixins: [JeecgListMixin], + components: { + PdfView, + preview, + Tooltip, + MaintenanceStandardPlanningMaterial, + MaintenanceStandardSafetyRequirement, + MaintenanceStandardWorkInstruction, + ActualMaterialEditTable, + ActualWorkHoursEditTable + }, + data() { + return { + title: "鏃ュ父淇濆吇宸ュ崟鎵ц", + visible: false, + maskClosable: true, + confirmLoading: false, + drawerWidth: "100%", + buttonDistable: false, + SWbuttonDistable: false, + revocationDistable: false, + currentNodeSelect: '', + maintenanceStandardId: '-1', + loading: false, + dataSource: [], + model: {}, + form: this.$form.createForm(this), + labelCol: { + xs: { span: 24 }, + sm: { span: 6 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 }, + }, + validatorRules: { + // description: { + // rules: [ + // { required: true, message: '璇疯緭鍏ユ弿杩�!' }, + // ] + // } + }, + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + align: 'center', + width: 60, + customRender: function (t, r, index) { + return parseInt(index) + 1 + } + + }, + { + title: '閮ㄤ綅', + align: 'center', + dataIndex: 'location', + }, + // class: "notshow" + { + title: '绀烘剰鍥�', + align: 'center', + dataIndex: 'photo', + scopedSlots: { customRender: 'photo' }, + }, + // class: "notshow" + { + title: '淇濆吇椤圭洰', + align: 'center', + dataIndex: 'maintenanceProjectNum', + }, + { + title: '淇濆吇鏍囧噯', + align: 'center', + dataIndex: 'standard', + }, + // { + // title: '鏂规硶', + // align: 'center', + // dataIndex: 'maintenanceMethodName', + // }, + // { + // title: '宸ュ叿', + // align: 'center', + // dataIndex: 'maintenanceTool', + // }, + { + title: '瀹夊叏瑕佹眰', + align: 'center', + dataIndex: 'maintenanceRequire', + }, + { + title: '宸ユ椂瀹氶锛堝皬鏃讹級', + align: 'center', + dataIndex: 'workingHourQuota', + }, + { + title: '淇濆吇鍛ㄦ湡', + align: 'center', + dataIndex: 'maintenanceCycleName', + }, + { + title: '缁翠繚涓撲笟', + align: 'center', + dataIndex: 'maintenanceSpecialtyName', + }, + { + title: '淇濆吇浜�', + align: 'center', + dataIndex: 'maintenanceOrderDetailUda1', + width: 200, + scopedSlots: { customRender: 'maintenanceOrderDetailUda1' }, + }, + ], + url: { + list: "/eam/dailyMaintenanceOrderDetail/getDailyMaintenanceOrderDetailList", + urlDownload: window._CONFIG['staticDomainURL'], + download: '/sys/upload/downloadFile', + editStatus: "/eam/dailyMaintenanceOrder/editStatus", + revocation: "/eam/dailyMaintenanceOrder/revocation3M", + report: "/eam/dailyMaintenanceOrder/report3M", + edit: "/eam/dailyMaintenanceOrderDetail/edit" + }, + } + }, + mounted() { + this.$bus.$on('closeDrawer', (data) => { + this.visible = false; + }) + }, + + methods: { + + handleShow(record) { + this.model = Object.assign({}, record); + this.maintenanceStandardId = record.maintenanceStandardId + this.dataSource = [] + this.visible = true; + this.queryParam.dailyMaintenanceOrderId = record.id + this.loadData1(1) + }, + + loadData1(arg) { + if (!this.url.list) { + this.$message.error("璇疯缃畊rl.list灞炴��!") + return + } + //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭 + if (arg === 1) { + this.ipagination.current = 1; + } + var params = this.getQueryParams();//鏌ヨ鏉′欢 + this.loading = true; + getAction(this.url.list, params).then((res) => { + if (res.success) { + // for (let i = 0; i < res.result.records.length; i++) { + // let r = res.result.records[i].sketchPhoto; + // r.src = this.getSrc(res.result.records[i].sketchPhoto); + // } + //update-begin---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ + this.dataSource = res.result.records || res.result; + if (res.result.total) { + this.ipagination.total = res.result.total; + } else { + this.ipagination.total = 0; + } + //update-end---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.loading = false + }) + }, + + modalFormOk() { + //娓呯┖鍒楄〃閫変腑 + this.onClearSelected() + }, + loadData() { + }, + getBackground() { + return "background-color:rgba(127, 127, 127,0.08)"; + }, + handleCancel() { + this.$emit('ok'); + this.alterFlag = new Date(); + this.close() + }, + close() { + this.visible = false; + }, + //鏆傚瓨 + handleTS() { + + }, + //寮�宸� + handleSW() { + const that = this; + that.confirmLoading = true; + this.$confirm({ + title: '淇濆吇宸ュ崟寮�宸�', + content: '鎻愮ず锛氬紑宸ュ悗鏃犳硶鎾ゅ洖锛岃璋ㄦ厧鎿嶄綔锛�', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + requestPut(that.url.editStatus, { id: that.model.id, status: '4' }).then((res) => { + if (res.success) { + that.model.status = '4' + that.$message.success("宸ュ崟寮�宸ユ垚鍔燂紒") + that.buttonDistable = false + that.revocationDistable = true + that.SWbuttonDistable = true + } else { + that.$message.warning("宸ュ崟寮�宸ュけ璐ワ紒") + } + }).finally(() => { + that.confirmLoading = false; + // that.close(); + }) + }, + }) + }, + //鎶ュ伐 + handleReport() { + const that = this; + that.confirmLoading = true; + this.$confirm({ + title: '淇濆吇宸ュ崟鎶ュ伐', + content: '鎻愮ず锛氭姤宸ュ悗淇濆吇瀹屽伐锛岃璋ㄦ厧鎿嶄綔锛�', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + requestPut(that.url.report, { id: that.model.id, status: '5', description: that.model.description }).then((res) => { + if (res.success) { + that.model.status = '5' + that.$message.success(res.message) + that.buttonDistable = false + that.revocationDistable = true + that.SWbuttonDistable = true + that.$emit('ok'); + that.alterFlag = new Date(); + that.close(); + } else { + that.$message.warning(res.message) + } + }).finally(() => { + that.confirmLoading = false; + // + }) + }, + }) + }, + //鎾ら攢 + handleReset() { + const that = this; + that.confirmLoading = true; + this.$confirm({ + title: '瀹屽伐鎾ら攢', + content: '鎻愮ず锛氬畬宸ユ挙閿�鍚庡彲缁х画鎶ュ伐鎿嶄綔锛�', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + requestPut(that.url.revocation, { id: that.model.id, status: '4' }).then((res) => { + if (res.success) { + that.model.status = '4' + that.$message.success(res.message) + that.buttonDistable = false + that.revocationDistable = true + that.SWbuttonDistable = true + } else { + that.$message.warning(res.message) + } + }).finally(() => { + that.confirmLoading = false; + // that.close(); + }) + }, + }) + }, + //淇濆瓨 + handleOk() { + const that = this + this.loading = true; + this.form.validateFields((err, values) => { + if (!err) { + that.confirmLoading = true + let formData = {} + formData.dailyMaintenanceOrderDetails = that.dataSource; + let obj = obj = postAction(this.url.edit, formData) + obj.then((res) => { + if (res.success) { + that.$message.success(res.message) + that.$emit('ok') + } else { + that.$message.warning(res.message) + } + }).finally(() => { + that.confirmLoading = false + that.loadData1(); + this.loading = false; + }) + } + }) + }, + + handleChange(value, key, column, index) { + let that = this; + const temp = [...that.dataSource]; + const target = temp[index]; + if (target) { + target[column.dataIndex] = value; + if ('maintenanceOrderDetailUda1' == column.dataIndex) { + target['maintenanceOrderDetailUda1'] = value.target.value; + } + that.dataSource = temp; + } + }, + + view(record) { + this.$refs.pdfview.showPdf(record.src); + }, + + handleDownload(record) { + downFile(this.url.download, { id: record.upload.id }).then((res) => { + if (!res) { + this.$message.warning('鏂囦欢涓嬭浇澶辫触') + return + } else { + let fileName = record.upload.name; + if (typeof window.navigator.msSaveBlob !== 'undefined') { + window.navigator.msSaveBlob(new Blob([res]), fileName); + } else { + let url = window.URL.createObjectURL(new Blob([res])); + let link = document.createElement('a'); + link.style.display = 'none'; + link.href = url; + link.setAttribute('download', fileName); + document.body.appendChild(link); + link.click() + document.body.removeChild(link) //涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + window.URL.revokeObjectURL(url) //閲婃斁鎺塨lob瀵硅薄 + } + } + }) + }, + + getSrc(record) { + if (!record.path) { + return ''; + } + //鏈湴锛歭ocal\Minio锛歮inio\闃块噷浜戯細alioss + if (record.uploadType == 'local') { + + let ssoLoginFlag = Vue.ls.get("ssoLoginFlag"); + let deployMode = Vue.ls.get("deployMode"); + + if (ssoLoginFlag && deployMode == "container") { + var baseProject = Vue.ls.get("baseProject"); + console.log("baseProject==>" + baseProject) + + var hostname = window.location.protocol + "//" + window.location.host; + var url = hostname + '/' + baseProject + '/sys/common/static'; + return getFileAccessHttpUrl(record.path + record.encodeName, url, window._CONFIG['hyperTextTransfer']) + } else { + //鏍规嵁鍙戝竷鐘舵�佷慨鏀筯ttps 鎴� http + return getFileAccessHttpUrl(record.path + record.encodeName, this.url.urlDownload, window._CONFIG['hyperTextTransfer']) + } + + } else if (record.uploadType == 'alioss') { + + const OSS = require('ali-oss') + const client = new OSS({ + // region浠ユ澀宸炰负渚嬶紙oss-cn-hangzhou锛夛紝鍏朵粬region鎸夊疄闄呮儏鍐靛~鍐欍�� + region: window._CONFIG['region'], + // 闃块噷浜戜富璐﹀彿AccessKey鎷ユ湁鎵�鏈堿PI鐨勮闂潈闄愶紝椋庨櫓寰堥珮銆傚己鐑堝缓璁偍鍒涘缓骞朵娇鐢≧AM璐﹀彿杩涜API璁块棶鎴栨棩甯歌繍缁达紝璇风櫥褰昍AM鎺у埗鍙板垱寤篟AM璐﹀彿銆� + accessKeyId: window._CONFIG['accessKeyId'], + accessKeySecret: window._CONFIG['accessKeySecret'], + bucket: window._CONFIG['bucket'], + }) + // object-key琛ㄧず浠嶰SS涓嬭浇鏂囦欢鏃堕渶瑕佹寚瀹氬寘鍚枃浠跺悗缂�鍦ㄥ唴鐨勫畬鏁磋矾寰勶紝渚嬪abc/efg/123.jpg銆� + return client.signatureUrl(record.path) + } + }, + }, + +} +</script> + +<style scoped> +@import '~@assets/less/common.less'; +.hightColor { + height: 10%; + font-weight: bold; + font-size: 20px; + color: #1b1e1e; +} +.frozenRowClass { + color: #c9c9c9; +} +.fontweight { + font-weight: bold; +} +.hight { + color: #f5222d; +} +/deep/ .red { + color: red; +} +</style> \ No newline at end of file diff --git a/src/views/eam/modules/dailyMaintenanceOrder/EquipmentPrecisionCheckOrderModal.vue b/src/views/eam/modules/daily3MaintenanceOrder/EquipmentPrecisionCheckOrderModal.vue similarity index 99% rename from src/views/eam/modules/dailyMaintenanceOrder/EquipmentPrecisionCheckOrderModal.vue rename to src/views/eam/modules/daily3MaintenanceOrder/EquipmentPrecisionCheckOrderModal.vue index c2743c5..f865e11 100644 --- a/src/views/eam/modules/dailyMaintenanceOrder/EquipmentPrecisionCheckOrderModal.vue +++ b/src/views/eam/modules/daily3MaintenanceOrder/EquipmentPrecisionCheckOrderModal.vue @@ -456,6 +456,7 @@ if (res.success) { this.dataSource = res.result[0].precisionInspectionDetails this.model = Object.assign({}, res.result[0]); + debugger } }) }, diff --git a/src/views/eam/modules/daily3MaintenanceOrder/EquipmentTechnologyStatusModal.vue b/src/views/eam/modules/daily3MaintenanceOrder/EquipmentTechnologyStatusModal.vue new file mode 100644 index 0000000..e862851 --- /dev/null +++ b/src/views/eam/modules/daily3MaintenanceOrder/EquipmentTechnologyStatusModal.vue @@ -0,0 +1,229 @@ +<template> + <a-modal + :title="title" + :width="650" + :visible="visible" + :maskClosable="false" + :confirmLoading="confirmLoading" + :okButtonProps="{ props: {disabled: disableSubmit} }" + @ok="handleOk" + @cancel="handleCancel" + cancelText="鍏抽棴" + > + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-item + label="缁熶竴缂栧彿" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-input + allow-clear + :disabled="true" + :placeholder="disableSubmit?'':'璇疯緭鍏ョ粺涓�缂栧彿'" + v-decorator="['equipmentNum', validatorRules.equipmentNum ]" + /> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item + label="璁惧鍚嶇О" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-input + allow-clear + :disabled="true" + :placeholder="disableSubmit?'':'璇疯緭鍏ヨ澶囧悕绉�'" + v-decorator="['equipmentName', validatorRules.equipmentName ]" + /> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item + label="鍨嬪彿" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-input + allow-clear + :disabled="true" + :placeholder="disableSubmit?'':'璇疯緭鍏ュ瀷鍙�'" + v-decorator="['equipmentModel', validatorRules.equipmentModel ]" + /> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-item + label="瑙勬牸" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-input + allow-clear + :disabled="true" + :placeholder="disableSubmit?'':'璇疯緭鍏ヨ鏍�'" + v-decorator="['specification', validatorRules.specification ]" + /> + </a-form-item> + </a-col> + <a-col :span="24"> + <a-form-model-item + label="鎶�鏈姸鎬�" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="technologyStatus" + > + <j-dict-select-tag + allow-clear + placeholder="璇烽�夋嫨鎶�鏈姸鎬�" + :triggerChange="true" + dictCode="technology_status" + v-decorator="['technologyStatus', validatorRules.technologyStatus ]" + /> + </a-form-model-item> + </a-col> + </a-row> + </a-form> + </a-spin> + + <template slot="footer"> + <a-button + :style="{marginRight: '8px'}" + @click="handleCancel" + > + 鍏抽棴 + </a-button> + <a-button + :disabled="disableSubmit || confirmLoading" + :loading="confirmLoading" + @click="handleOk" + type="primary" + >淇濆瓨</a-button> + <!-- icon="save" --> + </template> + + </a-modal> +</template> + +<script> +import pick from 'lodash.pick' +import { postAction, requestPut } from '@/api/manage' +import { duplicateCheck } from '@/api/api' + +export default { + name: 'EquipmentTechnologyStatusModal', + data() { + return { + title: "鎿嶄綔", + visible: false, + codeDisable: true, + disableSubmit: false, + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 19 }, + }, + confirmLoading: false, + form: this.$form.createForm(this), + validatorRules: { + technologyStatus: { + rules: [ + { required: true, message: '璇疯緭鍏ラ�夋嫨鎶�鏈姸鎬�!' }, + ] + }, + + }, + url: { + edit: "/eam/dailyMaintenanceOrder/editTechnologyStatus" + }, + //鏂板銆佺紪杈戙�佸垹闄ゃ�佹壒閲忓垹闄ゆ搷浣滄敼鍙樻暟鎹悗鍒锋柊鍏宠仈鐨勭粍浠剁殑鐩戝惉灞炴�� + alterFlag: "" + } + }, + created() { + }, + methods: { + + edit(record) { + this.form.resetFields(); + this.model = Object.assign({}, record); + this.visible = true; + this.disableSubmit = false; + this.$nextTick(() => { + this.form.setFieldsValue(pick(this.model, 'equipmentNum', 'equipmentName', 'equipmentModel', 'specification', 'technologyStatus')) + }); + if (record.id) { + this.codeDisable = true; + } else { + this.codeDisable = false; + } + }, + + close() { + this.$emit('close'); + this.visible = false; + }, + + handleOk() { + const that = this; + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.form.validateFields((err, values) => { + if (!err) { + that.confirmLoading = true; + let formData = Object.assign(this.model, values); + let obj; + if (!this.model.id) { + obj = postAction(this.url.add, formData); + } else { + obj = requestPut(this.url.edit, { id: this.model.equipmentId, technologyStatus: this.model.technologyStatus, maintenanceOrderId: this.model.id }); + } + obj.then((res) => { + if (res.success) { + that.$message.success(res.message); + that.$emit('ok'); + that.alterFlag = new Date(); + } else { + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + that.close(); + }) + } + }) + }, + + handleCancel() { + this.close() + }, + }, +} +</script> + +<style scoped> +.ant-btn { + padding: 0 10px; + margin-left: 3px; +} + +.ant-form-item-control { + line-height: 0px; +} + +/** 涓昏〃鍗曡闂磋窛 */ +.ant-form .ant-form-item { + margin-bottom: 10px; +} + +/** Tab椤甸潰琛岄棿璺� */ +.ant-tabs-content .ant-form-item { + margin-bottom: 0px; +} +</style> \ No newline at end of file diff --git a/src/views/eam/modules/daily3MaintenanceOrder/StoveCategoryModal.vue b/src/views/eam/modules/daily3MaintenanceOrder/StoveCategoryModal.vue new file mode 100644 index 0000000..b8006ed --- /dev/null +++ b/src/views/eam/modules/daily3MaintenanceOrder/StoveCategoryModal.vue @@ -0,0 +1,1000 @@ +<template> + <a-modal + :width="1000" + :visible="visible" + :maskClosable="false" + @ok="handleOk" + cancelText="鍏抽棴" + @cancel="handleCancel" + :confirmLoading="confirmLoading" + > + + <!-- :title="title" --> + <!-- <a-spin :spinning="confirmLoading"> --> + <!-- <a-form :form="form"> --> + <a-divider + orientation="center" + style="font-size: large;font-style: normal;font-size: 30px;color: #66aeed;" + > 娓╁害鍧囧寑鎬ф娴嬫潯浠剁‘璁よ〃 </a-divider> + + <!-- <div :style="{height: '115px',float: 'left',width: '100%',border: '1px solid #e9e9e9',padding: '50px 20px',background: '#fff',}"> --> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 20px;" + > 鍦ㄤ笁淇濆疄鏂借繃绋嬩腑锛岃繘琛屼簡缁翠慨鎴栨洿鎹笖绗﹀悎浠ヤ笅鏉℃涔嬩竴鑰呭繀椤昏繘琛岀倝娓╁潎鍖�鎬ф娴嬪苟瀵逛笅鍒楁潯娆捐繘琛屾墦鈭氱‘璁ゃ��</span> + <!-- </div> --> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >搴忓彿</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >缁翠慨鎴栨洿鎹㈤」鐩�</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >鏄�/鍚�</span> + </div> + </div> + + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >1</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >澧炲姞鏈�楂樺伐浣滄俯搴︽垨闄嶄綆鏈�浣庡伐浣滄俯搴�</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_1 == '1'" + @change="handleSwitch(model.result_1)" + /> + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >2</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >鐐夊瓙娓╁害鍧囧寑鎬у彉鏇翠负鏇村皬鐨勬俯搴﹀亸宸姹�</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_2 == '1'" + @change="handle2Switch(model.result_2)" + /> + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >3</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >浣跨敤涓嶅悓鐨勫姞鐑粍浠舵垨鍔犵儹缁勪欢鐨勭被鍨嬫垨浣嶇疆鍙樺寲</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_3 == '1'" + @change="handle3Switch(model.result_3)" + /> + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >4</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >鐑寰幆璁惧鐨勬皵娴佹柟寮�/閫熺巼鍙樺寲鐨勩�傚:鎸℃澘浣嶇疆銆侀鎵囬�熷害銆侀鎵囨暟閲忕瓑绛夊彉鍖�</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_4 == '1'" + @change="handle4Switch(model.result_4)" + /> + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >5</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >鑰愮儹灞傚帤搴︾殑鏀瑰彉鎴栦娇鐢ㄤ笉鍚岀儹鎬ц兘鐨勬柊鍨嬭�愮儹鏉愭枡</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_5 == '1'" + @change="handle5Switch(model.result_5)" + /> + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >6</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >鐪熺┖鐐夊姞鐑閲嶆柊璁捐鎴栨潗鏂欐敼鍙�</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_6 == '1'" + @change="handle6Switch(model.result_6)" + /> + + </div> + </div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >7</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >鎺у埗浼犳劅鍣ㄤ綅缃垨绫诲瀷鍙戠敓鏀瑰彉</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_7 == '1'" + @change="handle7Switch(model.result_7)" + /> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >8</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >娓╁害鎺у埗绯荤粺銆佹帶鍒舵柟寮忔垨鍙傛暟鍙戠敓鏀瑰彉</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_8 == '1'" + @change="handle8Switch(model.result_8)" + /> + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >9</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >鐕冩皵鐐夌噧鐑у帇姘旇瀹氬�肩浉瀵逛簬鍘熷璁惧畾鍊煎彂鐢熸敼鍙�</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_9 == '1'" + @change="handle9Switch(model.result_9)" + /> + + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >10</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >宸ヤ綔鍖轰綅缃垨澶у皬鏀瑰彉</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_10 == '1'" + @change="handle10Switch(model.result_10)" + /> + + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >11</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >閲囩敤鍘熸湁瑙勬牸鍜屽瀷鍙风殑鏉愭枡銆佸湪鍘熸湁浣嶇疆涓婃洿鎹㈠姞鐑郴缁�</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_11 == '1'" + @change="handle11Switch(model.result_11)" + /> + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >12</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >浣跨敤鐩稿悓鎴栫浉浼间紶鐑壒鎬х殑鏉愭枡鏇存崲鍘熸湁鑰愮儹鏉愭枡</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_12 == '1'" + @change="handle12Switch(model.result_12)" + /> + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >13</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >缁翠慨鐑寰幆璁惧锛屽叾姘旀祦鏂瑰紡/閫熺巼涓庡師鏉ヤ竴鑷寸殑銆傚:鎸℃澘浣嶇疆銆侀鎵囬�熷害銆侀鎵囨暟閲忕瓑</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_13 == '1'" + @change="handle13Switch(model.result_13)" + /> + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >14</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >鎸夎瀹氱殑浣嶇疆鏇存崲鍚岀被鍨嬫帶鍒朵紶鎰熷櫒</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_14 == '1'" + @change="handle14Switch(model.result_14)" + /> + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >15</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >鎸夊師鏉ョ殑鍨嬪彿銆佸弬鏁版洿鎹㈡俯搴︽帶鍒朵华琛�</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_15 == '1'" + @change="handle15Switch(model.result_15)" + /> + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >16</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >璁惧鐨勫畨瑁呬綅缃鏀瑰彉</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_16 == '1'" + @change="handle16Switch(model.result_16)" + /> + + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >17</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >鏇存崲鍔犵儹绯荤粺杩炴帴浠舵垨閰嶄欢</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_17 == '1'" + @change="handle17Switch(model.result_17)" + /> + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >18</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >浣跨敤杩囩▼涓紝鐐夊瓙涓婂叾瀹冧紶鎰熷櫒(鐩戞祴銆佽秴娓╂垨璁板綍)鐨勮鏁拌秴鍑哄潎鍖�鎬ц姹傝寖鍥达紝涓斾笌鍧囧寑鎬ф湁鍏�</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_18 == '1'" + @change="handle18Switch(model.result_18)" + /> + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >19</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >鐐夐棬閮ㄥ垎缁翠慨</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_19 == '1'" + @change="handle19Switch(model.result_19)" + /> + </div> + </div> + <div> + <div :style="{height: '45px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >20</span> + </div> + <div :style="{height: '45px',float: 'left',width: '80%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >鍔犵儹鐐夊仠鐢ㄤ笁涓湀浠ヤ笂锛屽啀娆′娇鐢ㄥ墠</span> + </div> + <div :style="{height: '45px',float: 'right',width: '10%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_20 == '1'" + @change="handle20Switch(model.result_20)" + /> + </div> + </div> + <div> + <div :style="{height: '130px',float: 'left',width: '10%',border: '1px solid #e9e9e9',padding: '20px 20px',background: '#fff',}"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + >纭</span> + </div> + <div :style="{height: '130px',float: 'left',width: '90%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}"> + <a-row :gutter="24"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + > 1銆佺粡瀵硅澶囪繘琛屼笁淇濆強瀵逛笂杩伴」鐩繘琛岀‘璁わ紝鏃犻渶杩涜娓╁害鍧囧寑鎬ф娴� </span> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_21 == '1'" + @change="handle21Switch(model.result_21)" + /> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + > 銆�</span> + </a-row> + <a-row :gutter="24"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + > 2銆佺粡瀵圭 </span> + <a-input-number + v-model="model.sort" + :min=0 + :max=20 + /> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + > 椤硅繘琛岀淮淇垨鏇存崲(鏀瑰彉)绛夛紝闇�杩涜娓╁害鍧囧寑鎬ф娴� </span> + <a-switch + checked-children="鏄�" + un-checked-children="鍚�" + :checked="model.result_22 == '1'" + @change="handle22Switch(model.result_22)" + /> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + > 銆�</span> + </a-row> + <a-row :gutter="24"> + <a-col :span="12"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + > 缁翠慨瀹や富浠伙細 </span> + <span v-if="this.model != null">{{ this.model.repairDirectorUserName }}</span> + <span v-else>-</span> + </a-col> + <a-col :span="12"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + > 淇濆吇浜哄憳锛� </span> + <span v-if="this.model != null">{{ this.model.maintenanceUserName }}</span> + <span v-else>-</span> + </a-col> + </a-row> + <a-row :gutter="24"> + <a-col :span="12"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + > 浠〃宸ワ細 </span> + <span v-if="this.model != null">{{ this.model.meterUserName }}</span> + <span v-else>-</span> + </a-col> + <a-col :span="12"> + <span + class="ant-descriptions-title" + style="font-size: large;font-style: normal;font-size: 15px;" + > 鏃ユ湡锛� </span> + <span v-if="this.model != null">{{ this.model.updateTime }}</span> + <span v-else>-</span> + </a-col> + </a-row> + + </div> + </div> + <!-- </a-form> --> + <!-- </a-spin> --> + + <template slot="footer"> + <a-button + :style="{marginRight: '8px'}" + @click="handleCancel()" + > + 鍏抽棴 + </a-button> + + <a-button + @click="handleOk()" + type="primary" + :loading="confirmLoading" + :disabled="disableSubmit || confirmLoading" + >纭畾</a-button> + </template> + </a-modal> + +</template> + +<script> +import { getAction, postAction, requestPut } from '@/api/manage' +import pick from 'lodash.pick' +import JMultiSelectTag from '@/components/dict/JMultiSelectTag' +import Tooltip from 'ant-design-vue/es/tooltip' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import { getFileAccessHttpUrl } from '@/api/manage'; + +export default { + name: "StoveCategoryModal", + mixins: [JeecgListMixin], + components: { + JMultiSelectTag, + Tooltip, + }, + data() { + return { + title: "鎿嶄綔", + visible: false, + disableSubmit: false, + codeDisable: true, + dataSource: [], + model: {}, + departs: [], + labelCol: { + xs: { span: 24 }, + sm: { span: 6 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 }, + }, + confirmLoading: false, + form: this.$form.createForm(this), + validatorRules: { + num: { + rules: [ + { required: true, message: '璇疯緭鍏ヤ繚鍏诲伐鍗曠紪鐮�!' }, + ] + }, + }, + url: { + add: "/eam/maintenanceStoveExempt/maintenanceStoveExempt", + getStoveCategory: "/eam/maintenanceStoveExempt/getStoveCategory", + list: "/eam/dailyMaintenanceOrder/getMaintenanceCycleByStandardId", + }, + + } + }, + + methods: { + + edit(record) { + let that = this; + + this.form.resetFields(); + this.model = Object.assign({}, record); + this.getStoveCategory() + this.visible = true; + that.$nextTick(() => { + // that.form.setFieldsValue(pick(that.model, 'num', 'teamId', 'remark')); + }); + + }, + + + close() { + this.$emit('close'); + this.visible = false; + }, + + handleCancel() { + this.close(); + }, + + handleOk() { + + const that = this; + // 瑙﹀彂琛ㄥ崟楠岃瘉 + that.form.validateFields((err, values) => { + if (!err) { + this.$confirm({ + title: '娓╁害鍧囧寑鎬ф娴嬫潯浠剁‘璁�', + content: '鎻愮ず锛氳璋ㄦ厧鎿嶄綔锛�', + okText: '纭', + cancelText: '鍙栨秷', + onOk() { + let formData = Object.assign(that.model, values); + that.confirmLoading = true; + postAction(that.url.add, formData).then((res) => { + if (res.success) { + that.$message.success(res.message); + that.$emit('ok', new Date()); + } else { + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + that.close(); + }) + }, + }) + } + }) + }, + + handleDelete(text, record, index) { + this.dataSource.splice(index, 1); + }, + + getStoveCategory() { + getAction(this.url.getStoveCategory, { maintenanceOrderId: this.model.id }).then((res) => { + if (res.success) { + this.model = Object.assign({}, res.result[0]); + } + }) + }, + + handleSwitch(result_1) { + if ('0' == result_1) { + this.model.result_1 = '1' + } else { + this.model.result_1 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle2Switch(result_2) { + if ('0' == result_2) { + this.model.result_2 = '1' + } else { + this.model.result_2 = '0' + } + this.model = Object.assign({}, this.model); + }, + + // handle2Switch(result2) { + // if ('0' == result2) { + // this.model.result2 = '1' + // } else { + // this.model.result2 = '0' + // } + // this.model = Object.assign({}, this.model); + // }, + + handle3Switch(result_3) { + if ('0' == result_3) { + this.model.result_3 = '1' + } else { + this.model.result_3 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle4Switch(result_4) { + if ('0' == result_4) { + this.model.result_4 = '1' + } else { + this.model.result_4 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle5Switch(result_5) { + if ('0' == result_5) { + this.model.result_5 = '1' + } else { + this.model.result_5 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle6Switch(result_6) { + if ('0' == result_6) { + this.model.result_6 = '1' + } else { + this.model.result_6 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle7Switch(result_7) { + if ('0' == result_7) { + this.model.result_7 = '1' + } else { + this.model.result_7 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle8Switch(result_8) { + if ('0' == result_8) { + this.model.result_8 = '1' + } else { + this.model.result_8 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle9Switch(result_9) { + if ('0' == result_9) { + this.model.result_9 = '1' + } else { + this.model.result_9 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle10Switch(result_10) { + if ('0' == result_10) { + this.model.result_10 = '1' + } else { + this.model.result_10 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle11Switch(result_11) { + if ('0' == result_11) { + this.model.result_11 = '1' + } else { + this.model.result_11 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle12Switch(result_12) { + if ('0' == result_12) { + this.model.result_12 = '1' + } else { + this.model.result_12 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle13Switch(result_13) { + if ('0' == result_13) { + this.model.result_13 = '1' + } else { + this.model.result_13 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle14Switch(result_14) { + if ('0' == result_14) { + this.model.result_14 = '1' + } else { + this.model.result_14 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle15Switch(result_15) { + if ('0' == result_15) { + this.model.result_15 = '1' + } else { + this.model.result_15 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle16Switch(result_16) { + if ('0' == result_16) { + this.model.result_16 = '1' + } else { + this.model.result_16 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle17Switch(result_17) { + if ('0' == result_17) { + this.model.result_17 = '1' + } else { + this.model.result_17 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle18Switch(result_18) { + if ('0' == result_18) { + this.model.result_18 = '1' + } else { + this.model.result_18 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle19Switch(result_19) { + if ('0' == result_19) { + this.model.result_19 = '1' + } else { + this.model.result_19 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle20Switch(result_20) { + if ('0' == result_20) { + this.model.result_20 = '1' + } else { + this.model.result_20 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle21Switch(result_21) { + if ('0' == result_21) { + this.model.result_21 = '1' + } else { + this.model.result_21 = '0' + } + this.model = Object.assign({}, this.model); + }, + + handle22Switch(result_22) { + if ('0' == result_22) { + this.model.result_22 = '1' + } else { + this.model.result_22 = '0' + } + this.model = Object.assign({}, this.model); + }, + + + // onChangeJudgmentResult(e) { + // this.model.judgmentResult = e.target.value + // }, + + // handleChange(value, key, column, index) { + // let that = this; + // const temp = [...that.dataSource]; + // const target = temp.filter(item => key === item.key)[index]; + // if (target) { + // if ('actualMeasure' == column.dataIndex) { + // target['actualMeasure'] = value.target.value; + // } + // //鏄剧ず甯﹁繃鏉ョ殑鏁版嵁 + // that.dataSource = temp; + // } + // }, + + }, +} +</script> + +<style lang="less" scoped> +/deep/ .frozenRowClass { + color: #c9c9c9; +} +.fontweight { + font-weight: bold; +} +.ant-btn { + padding: 0 10px; + margin-left: 3px; +} + +.ant-form-item-control { + line-height: 0px; +} + +/** 涓昏〃鍗曡闂磋窛 */ +.ant-form .ant-form-item { + margin-bottom: 10px; +} + +/** Tab椤甸潰琛岄棿璺� */ +.ant-tabs-content .ant-form-item { + margin-bottom: 0px; +} +.hightColor { + height: 10%; + font-weight: bold; + font-size: 20px; + color: #1b1e1e; +} +.frozenRowClass { + color: #c9c9c9; +} +.fontweight { + font-weight: bold; +} +.hight { + color: #f5222d; +} +/deep/ .red { + color: red; +} + +.line { + width: 1px; + height: 300px; + background-color: #000; + border: none; + float: left; +} +</style> \ No newline at end of file diff --git a/src/views/eam/modules/dailyMaintenanceOrder/ActualWorkHoursEditTable.vue b/src/views/eam/modules/dailyMaintenanceOrder/ActualWorkHoursEditTable.vue index edcf120..c59e9c3 100644 --- a/src/views/eam/modules/dailyMaintenanceOrder/ActualWorkHoursEditTable.vue +++ b/src/views/eam/modules/dailyMaintenanceOrder/ActualWorkHoursEditTable.vue @@ -175,7 +175,7 @@ dataIndex: 'username', align: "center", scopedSlots: { customRender: 'username' }, - className: 'red', + // className: 'red', width: 250, }, { @@ -188,7 +188,7 @@ title: '*瀹為檯宸ユ椂', dataIndex: 'actualWorkingHourQuota', align: "center", - className: 'red', + // className: 'red', scopedSlots: { customRender: 'actualWorkingHourQuota' }, width: 250, }, diff --git a/src/views/system/DepartList.vue b/src/views/system/DepartList.vue index c9446ce..fee36ce 100644 --- a/src/views/system/DepartList.vue +++ b/src/views/system/DepartList.vue @@ -1,51 +1,105 @@ <template xmlns:background-color="http://www.w3.org/1999/xhtml"> <a-row :gutter="10"> - <a-col :md="12" :sm="24"> + <a-col + :md="12" + :sm="24" + > <a-card :bordered="false"> <!-- 鎸夐挳鎿嶄綔鍖哄煙 --> <a-row style="margin-left: 14px"> - <a-button @click="handleAdd(1)" type="primary">娣诲姞閮ㄩ棬</a-button> - <a-button @click="handleAdd(2)" type="primary">娣诲姞涓嬬骇</a-button> - <a-button type="primary" icon="download" @click="handleExportXls('閮ㄩ棬淇℃伅')">瀵煎嚭</a-button> - <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> - <a-button type="primary" icon="import">瀵煎叆</a-button> + <a-button + @click="handleAdd(1)" + type="primary" + >娣诲姞閮ㄩ棬</a-button> + <a-button + @click="handleAdd(2)" + type="primary" + >娣诲姞涓嬬骇</a-button> + <a-button + type="primary" + icon="download" + @click="handleExportXls('閮ㄩ棬淇℃伅')" + >瀵煎嚭</a-button> + <a-upload + name="file" + :showUploadList="false" + :multiple="false" + :headers="tokenHeader" + :action="importExcelUrl" + @change="handleImportExcel" + > + <a-button + type="primary" + icon="import" + >瀵煎叆</a-button> </a-upload> - <a-button title="鍒犻櫎澶氭潯鏁版嵁" @click="batchDel" type="default">鎵归噺鍒犻櫎</a-button> + <a-button + title="鍒犻櫎澶氭潯鏁版嵁" + @click="batchDel" + type="default" + >鎵归噺鍒犻櫎</a-button> <!--<a-button @click="refresh" type="default" icon="reload" :loading="loading">鍒锋柊</a-button>--> </a-row> <div style="background: #fff;padding-left:16px;height: 100%; margin-top: 5px"> - <a-alert type="info" :showIcon="true"> + <a-alert + type="info" + :showIcon="true" + > <div slot="message"> 褰撳墠閫夋嫨锛�<span v-if="this.currSelected.title">{{ getCurrSelectedTitle() }}</span> - <a v-if="this.currSelected.title" style="margin-left: 10px" @click="onClearSelected">鍙栨秷閫夋嫨</a> + <a + v-if="this.currSelected.title" + style="margin-left: 10px" + @click="onClearSelected" + >鍙栨秷閫夋嫨</a> </div> </a-alert> - <a-input-search @search="onSearch" style="width:100%;margin-top: 10px" placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�"/> + <a-input-search + @search="onSearch" + style="width:100%;margin-top: 10px" + placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" + /> <!-- 鏍�--> - <a-col :md="10" :sm="24"> + <a-col + :md="10" + :sm="24" + > <template> - <a-dropdown :trigger="[this.dropTrigger]" @visibleChange="dropStatus"> - <span style="user-select: none"> - <a-tree - checkable - multiple - @select="onSelect" - @check="onCheck" - @rightClick="rightHandle" - :selectedKeys="selectedKeys" - :checkedKeys="checkedKeys" - :treeData="departTree" - :checkStrictly="checkStrictly" - :expandedKeys="iExpandedKeys" - :autoExpandParent="autoExpandParent" - @expand="onExpand"/> + <a-dropdown + :trigger="[this.dropTrigger]" + @visibleChange="dropStatus" + > + <span style="user-select: none"> + <a-tree + checkable + multiple + @select="onSelect" + @check="onCheck" + @rightClick="rightHandle" + :selectedKeys="selectedKeys" + :checkedKeys="checkedKeys" + :treeData="departTree" + :checkStrictly="checkStrictly" + :expandedKeys="iExpandedKeys" + :autoExpandParent="autoExpandParent" + @expand="onExpand" + /> </span> <!--鏂板鍙抽敭鐐瑰嚮浜嬩欢,鍜屽鍔犳坊鍔犲拰鍒犻櫎鍔熻兘--> <a-menu slot="overlay"> - <a-menu-item @click="handleAdd(3)" key="1">娣诲姞</a-menu-item> - <a-menu-item @click="handleDelete" key="2">鍒犻櫎</a-menu-item> - <a-menu-item @click="closeDrop" key="3">鍙栨秷</a-menu-item> + <a-menu-item + @click="handleAdd(3)" + key="1" + >娣诲姞</a-menu-item> + <a-menu-item + @click="handleDelete" + key="2" + >鍒犻櫎</a-menu-item> + <a-menu-item + @click="closeDrop" + key="3" + >鍙栨秷</a-menu-item> </a-menu> </a-dropdown> </template> @@ -54,14 +108,35 @@ </a-card> <!---- author:os_chengtgen -- date:20190827 -- for:鍒囨崲鐖跺瓙鍕鹃�夋ā寮� =======------> <div class="drawer-bootom-button"> - <a-dropdown :trigger="['click']" placement="topCenter"> + <a-dropdown + :trigger="['click']" + placement="topCenter" + > <a-menu slot="overlay"> - <a-menu-item key="1" @click="switchCheckStrictly(1)">鐖跺瓙鍏宠仈</a-menu-item> - <a-menu-item key="2" @click="switchCheckStrictly(2)">鍙栨秷鍏宠仈</a-menu-item> - <a-menu-item key="3" @click="checkALL">鍏ㄩ儴鍕鹃��</a-menu-item> - <a-menu-item key="4" @click="cancelCheckALL">鍙栨秷鍏ㄩ��</a-menu-item> - <a-menu-item key="5" @click="expandAll">灞曞紑鎵�鏈�</a-menu-item> - <a-menu-item key="6" @click="closeAll">鍚堝苟鎵�鏈�</a-menu-item> + <a-menu-item + key="1" + @click="switchCheckStrictly(1)" + >鐖跺瓙鍏宠仈</a-menu-item> + <a-menu-item + key="2" + @click="switchCheckStrictly(2)" + >鍙栨秷鍏宠仈</a-menu-item> + <a-menu-item + key="3" + @click="checkALL" + >鍏ㄩ儴鍕鹃��</a-menu-item> + <a-menu-item + key="4" + @click="cancelCheckALL" + >鍙栨秷鍏ㄩ��</a-menu-item> + <a-menu-item + key="5" + @click="expandAll" + >灞曞紑鎵�鏈�</a-menu-item> + <a-menu-item + key="6" + @click="closeAll" + >鍚堝苟鎵�鏈�</a-menu-item> </a-menu> <a-button> 鏍戞搷浣� <a-icon type="up" /> @@ -70,589 +145,684 @@ </div> <!---- author:os_chengtgen -- date:20190827 -- for:鍒囨崲鐖跺瓙鍕鹃�夋ā寮� =======------> </a-col> - <a-col :md="12" :sm="24"> + <a-col + :md="12" + :sm="24" + > <a-tabs defaultActiveKey="1"> - <a-tab-pane tab="鍩烘湰淇℃伅" key="1" > - <a-card :bordered="false" v-if="selectedKeys.length>0"> - <a-form-model ref="form" :model="model" :rules="validatorRules"> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departName" label="鏈烘瀯鍚嶇О"> - <a-input placeholder="璇疯緭鍏ユ満鏋�/閮ㄩ棬鍚嶇О" v-model="model.departName" /> + <a-tab-pane + tab="鍩烘湰淇℃伅" + key="1" + > + <a-card + :bordered="false" + v-if="selectedKeys.length>0" + > + <a-form-model + ref="form" + :model="model" + :rules="validatorRules" + > + <a-form-model-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + prop="departName" + label="鏈烘瀯鍚嶇О" + > + <a-input + placeholder="璇疯緭鍏ユ満鏋�/閮ㄩ棬鍚嶇О" + v-model="model.departName" + /> </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="涓婄骇閮ㄩ棬"> + <a-form-model-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="浣跨敤閮ㄩ棬缂栫爜" + prop="useDepartNum" + > + <a-input + id="useDepartNum" + placeholder="璇疯緭鍏ヤ娇鐢ㄩ儴闂ㄧ紪鐮�" + v-model="model.useDepartNum" + /> + </a-form-model-item> + <a-form-model-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="缁翠慨閮ㄩ棬缂栫爜" + prop="repairDepartNum" + > + <a-input + id="repairDepartNum" + placeholder="璇疯緭鍏ョ淮淇儴闂ㄧ紪鐮�" + v-model="model.repairDepartNum" + /> + </a-form-model-item> + <a-form-model-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="涓婄骇閮ㄩ棬" + > <a-tree-select style="width:100%" :dropdownStyle="{maxHeight:'200px',overflow:'auto'}" :treeData="treeData" :disabled="disable" v-model="model.parentId" - placeholder="鏃�"> + placeholder="鏃�" + > </a-tree-select> </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="鎺掑簭"> + <a-form-model-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="鎺掑簭" + > <a-input-number v-model="model.departOrder" /> </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="澶囨敞"> - <a-textarea placeholder="璇疯緭鍏ュ娉�" v-model="model.memo"/> + <a-form-model-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="澶囨敞" + > + <a-textarea + placeholder="璇疯緭鍏ュ娉�" + v-model="model.memo" + /> </a-form-model-item> </a-form-model> <div class="anty-form-btn"> - <a-button @click="emptyCurrForm" type="default" htmlType="button" icon="sync">閲嶇疆</a-button> - <a-button @click="submitCurrForm" type="primary" htmlType="button" icon="form">淇濆瓨</a-button> + <a-button + @click="emptyCurrForm" + type="default" + htmlType="button" + icon="sync" + >閲嶇疆</a-button> + <a-button + @click="submitCurrForm" + type="primary" + htmlType="button" + icon="form" + >淇濆瓨</a-button> </div> </a-card> - <a-card v-else > + <a-card v-else> <a-empty> <span slot="description"> 璇峰厛閫夋嫨涓�涓儴闂�! </span> </a-empty> </a-card> </a-tab-pane> - <a-tab-pane tab="閮ㄩ棬鏉冮檺" key="2" forceRender> + <a-tab-pane + tab="閮ㄩ棬鏉冮檺" + key="2" + forceRender + > <!--<depart-auth-modal ref="departAuth"/>--> <depart-m-auth-modal ref="departMAuth"></depart-m-auth-modal> </a-tab-pane> - <a-tab-pane v-if="isDepartType == 0" tab="璁惧鍒楄〃" key="3" forceRender> - <depart-auth-modal ref="departAuth"/> + <a-tab-pane + v-if="isDepartType == 0" + tab="璁惧鍒楄〃" + key="3" + forceRender + > + <depart-auth-modal ref="departAuth" /> + </a-tab-pane> + + <a-tab-pane + v-if="isDepartType == 0" + tab="鐝粍鍒楄〃" + key="4" + forceRender + > + <depart-team ref="departTeam" /> </a-tab-pane> </a-tabs> </a-col> - <depart-modal ref="departModal" @ok="loadTree"></depart-modal> + <depart-modal + ref="departModal" + @ok="loadTree" + ></depart-modal> </a-row> </template> <script> - import {mapActions} from 'vuex' - import DepartMModal from './modules/DepartModal' - import DepartModal from './modules/DepartList/DepartModal' - import {queryDepartTreeList, searchByKeywords, deleteByDepartId} from '@/api/api' - import {httpAction, deleteAction} from '@/api/manage' - import {JeecgListMixin} from '@/mixins/JeecgListMixin' - import DepartAuthModal from './modules/DepartList/DepartAuthModal' - import DepartMAuthModal from './modules/DepartAuthModal' +import { mapActions } from 'vuex' +import DepartMModal from './modules/DepartModal' +import DepartModal from './modules/DepartList/DepartModal' +import { queryDepartTreeList, searchByKeywords, deleteByDepartId } from '@/api/api' +import { httpAction, deleteAction } from '@/api/manage' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import DepartAuthModal from './modules/DepartList/DepartAuthModal' +import DepartMAuthModal from './modules/DepartAuthModal' +import DepartTeam from './modules/DepartList/DepartTeam' - // 琛ㄥご - const columns = [ - { - title: '鏈烘瀯鍚嶇О', - dataIndex: 'departName' - }, - { - title: '鏈烘瀯绫诲瀷', - align: 'center', - dataIndex: 'orgType' - }, - { - title: '鏈烘瀯缂栫爜', - dataIndex: 'orgCode', - }, - { - title: '鎵嬫満鍙�', - dataIndex: 'mobile' - }, - { - title: '浼犵湡', - dataIndex: 'fax' - }, - { - title: '鍦板潃', - dataIndex: 'address' - }, - { - title: '鎺掑簭', - align: 'center', - dataIndex: 'departOrder' - }, - { - title: '鎿嶄綔', - align: 'center', - dataIndex: 'action', - scopedSlots: {customRender: 'action'} +// 琛ㄥご +const columns = [ + { + title: '鏈烘瀯鍚嶇О', + dataIndex: 'departName' + }, + { + title: '鏈烘瀯绫诲瀷', + align: 'center', + dataIndex: 'orgType' + }, + { + title: '鏈烘瀯缂栫爜', + dataIndex: 'orgCode', + }, + { + title: '鎵嬫満鍙�', + dataIndex: 'mobile' + }, + { + title: '浼犵湡', + dataIndex: 'fax' + }, + { + title: '鍦板潃', + dataIndex: 'address' + }, + { + title: '鎺掑簭', + align: 'center', + dataIndex: 'departOrder' + }, + { + title: '鎿嶄綔', + align: 'center', + dataIndex: 'action', + scopedSlots: { customRender: 'action' } + } +] +export default { + name: 'DepartList', + mixins: [JeecgListMixin], + components: { + DepartAuthModal, + DepartModal, + DepartMModal, + DepartMAuthModal, + DepartTeam + }, + data() { + return { + isDepartType: "", + iExpandedKeys: [], + loading: false, + autoExpandParent: true, + currFlowId: '', + currFlowName: '', + disable: true, + treeData: [], + visible: false, + departTree: [], + rightClickSelectedKey: '', + rightClickSelectedOrgCode: '', + hiding: true, + model: {}, + dropTrigger: '', + depart: {}, + columns: columns, + disableSubmit: false, + checkedKeys: [], + selectedKeys: [], + autoIncr: 1, + currSelected: {}, + allTreeKeys: [], + checkStrictly: true, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 } + }, + graphDatasource: { + nodes: [], + edges: [] + }, + validatorRules: { + departName: [{ required: true, message: '璇疯緭鍏ユ満鏋�/閮ㄩ棬鍚嶇О!' }], + orgCode: [{ required: true, message: '璇疯緭鍏ユ満鏋勭紪鐮�!' }], + orgCategory: [{ required: true, message: '璇疯緭鍏ユ満鏋勭被鍨�!' }], + mobile: [{ validator: this.validateMobile }] + }, + url: { + delete: '/sys/sysDepart/delete', + edit: '/sys/sysDepart/edit', + deleteBatch: '/sys/sysDepart/deleteBatch', + exportXlsUrl: "sys/sysDepart/exportXls", + importExcelUrl: "sys/sysDepart/importExcel", + }, + orgCategoryDisabled: false, } - ] - export default { - name: 'DepartList', - mixins: [JeecgListMixin], - components: { - DepartAuthModal, - DepartModal, - DepartMModal, - DepartMAuthModal - }, - data() { - return { - isDepartType:"", - iExpandedKeys: [], - loading: false, - autoExpandParent: true, - currFlowId: '', - currFlowName: '', - disable: true, - treeData: [], - visible: false, - departTree: [], - rightClickSelectedKey: '', - rightClickSelectedOrgCode: '', - hiding: true, - model: {}, - dropTrigger: '', - depart: {}, - columns: columns, - disableSubmit: false, - checkedKeys: [], - selectedKeys: [], - autoIncr: 1, - currSelected: {}, - allTreeKeys:[], - checkStrictly: true, - labelCol: { - xs: {span: 24}, - sm: {span: 5} - }, - wrapperCol: { - xs: {span: 24}, - sm: {span: 16} - }, - graphDatasource: { - nodes: [], - edges: [] - }, - validatorRules: { - departName: [{required: true, message: '璇疯緭鍏ユ満鏋�/閮ㄩ棬鍚嶇О!'}], - orgCode: [{required: true, message: '璇疯緭鍏ユ満鏋勭紪鐮�!'}], - orgCategory:[{required: true, message: '璇疯緭鍏ユ満鏋勭被鍨�!'}], - mobile:[{validator: this.validateMobile}] - }, - url: { - delete: '/sys/sysDepart/delete', - edit: '/sys/sysDepart/edit', - deleteBatch: '/sys/sysDepart/deleteBatch', - exportXlsUrl: "sys/sysDepart/exportXls", - importExcelUrl: "sys/sysDepart/importExcel", - }, - orgCategoryDisabled:false, - } - }, - computed: { - importExcelUrl: function () { - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; - } - }, - methods: { - ...mapActions(['QueryDepartTree']), - queryTreeData() { - this.QueryDepartTree().then(res => { - if (res.success) { - this.isDepartType = res.result[0].value - } else { - // this.$message.warn(res.message) - this.$notification.warning({ - message:'娑堟伅', - description:res.message - }); - } - }).finally(() =>{ - }) - }, - loadData() { - this.refresh(); - }, - loadTree() { - var that = this - that.treeData = [] - that.departTree = [] - queryDepartTreeList().then((res) => { - if (res.success) { - //閮ㄩ棬鍏ㄩ�夊悗锛屽啀娣诲姞閮ㄩ棬锛岄�変腑鏁伴噺澧炲 - this.allTreeKeys = []; - for (let i = 0; i < res.result.length; i++) { - let temp = res.result[i] - that.treeData.push(temp) - that.departTree.push(temp) - that.setThisExpandedKeys(temp) - that.getAllKeys(temp); - // console.log(temp.id) - } - this.loading = false - } - }) - }, - setThisExpandedKeys(node) { - if (node.children && node.children.length > 0) { - this.iExpandedKeys.push(node.key) - for (let a = 0; a < node.children.length; a++) { - this.setThisExpandedKeys(node.children[a]) - } - } - }, - refresh() { - this.loading = true - this.loadTree() - }, - // 鍙抽敭鎿嶄綔鏂规硶 - rightHandle(node) { - this.dropTrigger = 'contextmenu' - console.log(node.node.eventKey) - this.rightClickSelectedKey = node.node.eventKey - this.rightClickSelectedOrgCode = node.node.dataRef.orgCode - }, - onExpand(expandedKeys) { - console.log('onExpand', expandedKeys) - this.iExpandedKeys = expandedKeys - this.autoExpandParent = false - }, - backFlowList() { - this.$router.back(-1) - }, - // 鍙抽敭鐐瑰嚮涓嬫媺妗嗘敼鍙樹簨浠� - dropStatus(visible) { - if (visible == false) { - this.dropTrigger = '' - } - }, - // 鍙抽敭涓嬫媺鍏抽棴涓嬫媺妗� - closeDrop() { - this.dropTrigger = '' - }, - addRootNode() { - this.$refs.nodeModal.add(this.currFlowId, '') - }, - batchDel: function () { - if (this.checkedKeys.length <= 0) { - // this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒') + }, + computed: { + importExcelUrl: function () { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + } + }, + methods: { + ...mapActions(['QueryDepartTree']), + queryTreeData() { + this.QueryDepartTree().then(res => { + if (res.success) { + this.isDepartType = res.result[0].value + } else { + // this.$message.warn(res.message) this.$notification.warning({ - message:'娑堟伅', - description:"璇烽�夋嫨涓�鏉¤褰�" + message: '娑堟伅', + description: res.message }); - } else { - var ids = '' - for (var a = 0; a < this.checkedKeys.length; a++) { - ids += this.checkedKeys[a] + ',' + } + }).finally(() => { + }) + }, + loadData() { + this.refresh(); + }, + loadTree() { + var that = this + that.treeData = [] + that.departTree = [] + queryDepartTreeList().then((res) => { + if (res.success) { + //閮ㄩ棬鍏ㄩ�夊悗锛屽啀娣诲姞閮ㄩ棬锛岄�変腑鏁伴噺澧炲 + this.allTreeKeys = []; + for (let i = 0; i < res.result.length; i++) { + let temp = res.result[i] + that.treeData.push(temp) + that.departTree.push(temp) + that.setThisExpandedKeys(temp) + that.getAllKeys(temp); + // console.log(temp.id) } - var that = this - this.$confirm({ - title: '纭鍒犻櫎', - content: '纭畾瑕佸垹闄ゆ墍閫変腑鐨� ' + this.checkedKeys.length + ' 鏉℃暟鎹紝浠ュ強瀛愯妭鐐规暟鎹悧?', - onOk: function () { - deleteAction(that.url.deleteBatch, {ids: ids}).then((res) => { - if (res.success) { - // that.$message.success(res.message) - that.$notification.warning({ - message:'娑堟伅', - description:res.message - }); - that.loadTree() - that.onClearSelected() - } else { - // that.$message.warning(res.message) - that.$notification.warning({ - message:'娑堟伅', - description:res.message - }); - } - }) - } - }) + this.loading = false } - }, - onSearch(value) { - let that = this - if (value) { - searchByKeywords({keyWord: value}).then((res) => { - if (res.success) { - that.departTree = [] - for (let i = 0; i < res.result.length; i++) { - let temp = res.result[i] - that.departTree.push(temp) - } - } else { - // that.$message.warning(res.message) - that.$notification.warning({ - message:'娑堟伅', - description:res.message - }); - } - }) - } else { - that.loadTree() + }) + }, + setThisExpandedKeys(node) { + if (node.children && node.children.length > 0) { + this.iExpandedKeys.push(node.key) + for (let a = 0; a < node.children.length; a++) { + this.setThisExpandedKeys(node.children[a]) } - - }, - nodeModalOk() { - this.loadTree() - }, - nodeModalClose() { - }, - hide() { - console.log(111) - this.visible = false - }, - onCheck(checkedKeys, info) { - console.log('onCheck', checkedKeys, info) - this.hiding = false - //---- author:os_chengtgen -- date:20190827 -- for:鍒囨崲鐖跺瓙鍕鹃�夋ā寮� =======------ - if(this.checkStrictly){ - this.checkedKeys = checkedKeys.checked; - }else{ - this.checkedKeys = checkedKeys + } + }, + refresh() { + this.loading = true + this.loadTree() + }, + // 鍙抽敭鎿嶄綔鏂规硶 + rightHandle(node) { + this.dropTrigger = 'contextmenu' + console.log(node.node.eventKey) + this.rightClickSelectedKey = node.node.eventKey + this.rightClickSelectedOrgCode = node.node.dataRef.orgCode + }, + onExpand(expandedKeys) { + console.log('onExpand', expandedKeys) + this.iExpandedKeys = expandedKeys + this.autoExpandParent = false + }, + backFlowList() { + this.$router.back(-1) + }, + // 鍙抽敭鐐瑰嚮涓嬫媺妗嗘敼鍙樹簨浠� + dropStatus(visible) { + if (visible == false) { + this.dropTrigger = '' + } + }, + // 鍙抽敭涓嬫媺鍏抽棴涓嬫媺妗� + closeDrop() { + this.dropTrigger = '' + }, + addRootNode() { + this.$refs.nodeModal.add(this.currFlowId, '') + }, + batchDel: function () { + if (this.checkedKeys.length <= 0) { + // this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒') + this.$notification.warning({ + message: '娑堟伅', + description: "璇烽�夋嫨涓�鏉¤褰�" + }); + } else { + var ids = '' + for (var a = 0; a < this.checkedKeys.length; a++) { + ids += this.checkedKeys[a] + ',' } - //---- author:os_chengtgen -- date:20190827 -- for:鍒囨崲鐖跺瓙鍕鹃�夋ā寮� =======------ - }, - onSelect(selectedKeys, e) { - console.log('selected', selectedKeys, e) - this.hiding = false - let record = e.node.dataRef - console.log('onSelect-record', record) - this.currSelected = Object.assign({}, record) - this.model = this.currSelected - this.selectedKeys = [record.key] - this.model.parentId = record.parentId - this.setValuesToForm(record) - if(this.isDepartType == 0){ - this.$refs.departAuth.show(record.id); - } - - this.$refs.departMAuth.show(record.id) - - }, - // 瑙﹀彂onSelect浜嬩欢鏃�,涓洪儴闂ㄦ爲鍙充晶鐨刦orm琛ㄥ崟璧嬪�� - setValuesToForm(record) { - if(record.orgCategory == '1'){ - this.orgCategoryDisabled = true; - }else{ - this.orgCategoryDisabled = false; - } - }, - getCurrSelectedTitle() { - return !this.currSelected.title ? '' : this.currSelected.title - }, - onClearSelected() { - this.hiding = true - this.checkedKeys = [] - this.currSelected = {} - this.selectedKeys = [] - if(this.isDepartType == 0){ - this.$refs.departAuth.departId = '' - - } - this.$refs.departMAuth.departId = '' - }, - handleNodeTypeChange(val) { - this.currSelected.nodeType = val - }, - notifyTriggerTypeChange(value) { - this.currSelected.notifyTriggerType = value - }, - receiptTriggerTypeChange(value) { - this.currSelected.receiptTriggerType = value - }, - submitCurrForm() { - this.$refs.form.validate(valid => { - if (valid) { - if (!this.currSelected.id) { - // this.$message.warning('璇风偣鍑婚�夋嫨瑕佷慨鏀归儴闂�!') - this.$notification.warning({ - message:'娑堟伅', - description:"璇风偣鍑婚�夋嫨瑕佷慨鏀归儴闂�" - }); - return - } - - httpAction(this.url.edit, this.currSelected, 'put').then((res) => { - if (res.success) { - // this.$message.success('淇濆瓨鎴愬姛!') - this.$notification.warning({ - message:'娑堟伅', - description:"淇濆瓨鎴愬姛" - }); - this.loadTree() - } else { - // this.$message.error(res.message) - this.$notification.warning({ - message:'娑堟伅', - description:res.message - }); - } - }) - } - }) - }, - emptyCurrForm() { - this.$refs.form.resetFields(); - this.model={} - }, - nodeSettingFormSubmit() { - this.$refs.form.validate(valid => { - if (valid) { - console.log('Received values of form: ', this.model) - } - }) - }, - openSelect() { - this.$refs.sysDirectiveModal.show() - }, - handleAdd(num) { - if (num == 1) { - this.$refs.departModal.add() - this.$refs.departModal.title = '鏂板' - } else if (num == 2) { - console.log(this.currSelected) - let key = this.currSelected.key - if (!key) { - this.$message.warning('璇峰厛鐐瑰嚮閫変腑涓婄骇閮ㄩ棬锛�') - return false - } - this.$refs.departModal.add(this.selectedKeys) - this.$refs.departModal.title = '鏂板' - } else { - this.$refs.departModal.add(this.rightClickSelectedKey) - this.$refs.departModal.title = '鏂板' - } - }, - handleDelete() { var that = this this.$confirm({ title: '纭鍒犻櫎', - content: '纭畾瑕佸垹闄ゆ閮ㄩ棬浠ュ強瀛愯妭鐐规暟鎹悧?', + content: '纭畾瑕佸垹闄ゆ墍閫変腑鐨� ' + this.checkedKeys.length + ' 鏉℃暟鎹紝浠ュ強瀛愯妭鐐规暟鎹悧?', onOk: function () { - deleteByDepartId({id: that.rightClickSelectedKey}).then((resp) => { - if (resp.success) { - //鍒犻櫎鎴愬姛鍚庯紝鍘婚櫎宸查�変腑涓殑鏁版嵁 - that.checkedKeys.splice(that.checkedKeys.findIndex(key => key === that.rightClickSelectedKey), 1); - that.$message.success('鍒犻櫎鎴愬姛!') + deleteAction(that.url.deleteBatch, { ids: ids }).then((res) => { + if (res.success) { + // that.$message.success(res.message) + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }); that.loadTree() - //鍒犻櫎鍚庡悓姝ユ竻绌哄彸渚у熀鏈俊鎭唴瀹� - let orgCode=that.model.orgCode; - if(orgCode && orgCode === that.rightClickSelectedOrgCode){ - that.onClearSelected() - } + that.onClearSelected() } else { - that.$message.warning('鍒犻櫎澶辫触!') + // that.$message.warning(res.message) + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }); } }) } }) - }, - selectDirectiveOk(record) { - console.log('閫変腑鎸囦护鏁版嵁', record) - this.nodeSettingForm.setFieldsValue({directiveCode: record.directiveCode}) - this.currSelected.sysCode = record.sysCode - }, - getFlowGraphData(node) { - this.graphDatasource.nodes.push({ - id: node.id, - text: node.flowNodeName + } + }, + onSearch(value) { + let that = this + if (value) { + searchByKeywords({ keyWord: value }).then((res) => { + if (res.success) { + that.departTree = [] + for (let i = 0; i < res.result.length; i++) { + let temp = res.result[i] + that.departTree.push(temp) + } + } else { + // that.$message.warning(res.message) + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }); + } }) - if (node.children.length > 0) { - for (let a = 0; a < node.children.length; a++) { - let temp = node.children[a] - this.graphDatasource.edges.push({ - source: node.id, - target: temp.id - }) - this.getFlowGraphData(temp) - } - } - }, + } else { + that.loadTree() + } + + }, + nodeModalOk() { + this.loadTree() + }, + nodeModalClose() { + }, + hide() { + console.log(111) + this.visible = false + }, + onCheck(checkedKeys, info) { + console.log('onCheck', checkedKeys, info) + this.hiding = false //---- author:os_chengtgen -- date:20190827 -- for:鍒囨崲鐖跺瓙鍕鹃�夋ā寮� =======------ - expandAll () { - this.iExpandedKeys = this.allTreeKeys - }, - closeAll () { - this.iExpandedKeys = [] - }, - checkALL () { - this.checkStriccheckStrictlytly = false - this.checkedKeys = this.allTreeKeys - }, - cancelCheckALL () { - //this.checkedKeys = this.defaultCheckedKeys - this.checkedKeys = [] - }, - switchCheckStrictly (v) { - if(v==1){ - this.checkStrictly = false - }else if(v==2){ - this.checkStrictly = true - } - }, - getAllKeys(node) { - // console.log('node',node); - this.allTreeKeys.push(node.key) - if (node.children && node.children.length > 0) { - for (let a = 0; a < node.children.length; a++) { - this.getAllKeys(node.children[a]) - } - } + if (this.checkStrictly) { + this.checkedKeys = checkedKeys.checked; + } else { + this.checkedKeys = checkedKeys } //---- author:os_chengtgen -- date:20190827 -- for:鍒囨崲鐖跺瓙鍕鹃�夋ā寮� =======------ + }, + onSelect(selectedKeys, e) { + console.log('selected', selectedKeys, e) + this.hiding = false + let record = e.node.dataRef + console.log('onSelect-record', record) + this.currSelected = Object.assign({}, record) + this.model = this.currSelected + this.selectedKeys = [record.key] + this.model.parentId = record.parentId + this.setValuesToForm(record) + if (this.isDepartType == 0) { + this.$refs.departAuth.show(record.id); + this.$refs.departTeam.show(record.id); + } + + this.$refs.departMAuth.show(record.id) }, - created() { - this.queryTreeData() - this.currFlowId = this.$route.params.id - this.currFlowName = this.$route.params.name - // this.loadTree() + // 瑙﹀彂onSelect浜嬩欢鏃�,涓洪儴闂ㄦ爲鍙充晶鐨刦orm琛ㄥ崟璧嬪�� + setValuesToForm(record) { + if (record.orgCategory == '1') { + this.orgCategoryDisabled = true; + } else { + this.orgCategoryDisabled = false; + } }, + getCurrSelectedTitle() { + return !this.currSelected.title ? '' : this.currSelected.title + }, + onClearSelected() { + this.hiding = true + this.checkedKeys = [] + this.currSelected = {} + this.selectedKeys = [] + if (this.isDepartType == 0) { + this.$refs.departAuth.departId = '' + this.$refs.departTeam.departId = '' + } + this.$refs.departMAuth.departId = '' + }, + handleNodeTypeChange(val) { + this.currSelected.nodeType = val + }, + notifyTriggerTypeChange(value) { + this.currSelected.notifyTriggerType = value + }, + receiptTriggerTypeChange(value) { + this.currSelected.receiptTriggerType = value + }, + submitCurrForm() { + this.$refs.form.validate(valid => { + if (valid) { + if (!this.currSelected.id) { + // this.$message.warning('璇风偣鍑婚�夋嫨瑕佷慨鏀归儴闂�!') + this.$notification.warning({ + message: '娑堟伅', + description: "璇风偣鍑婚�夋嫨瑕佷慨鏀归儴闂�" + }); + return + } - } + httpAction(this.url.edit, this.currSelected, 'put').then((res) => { + if (res.success) { + // this.$message.success('淇濆瓨鎴愬姛!') + this.$notification.warning({ + message: '娑堟伅', + description: "淇濆瓨鎴愬姛" + }); + this.loadTree() + } else { + // this.$message.error(res.message) + this.$notification.warning({ + message: '娑堟伅', + description: res.message + }); + } + }) + } + }) + }, + emptyCurrForm() { + this.$refs.form.resetFields(); + this.model = {} + }, + nodeSettingFormSubmit() { + this.$refs.form.validate(valid => { + if (valid) { + console.log('Received values of form: ', this.model) + } + }) + }, + openSelect() { + this.$refs.sysDirectiveModal.show() + }, + handleAdd(num) { + if (num == 1) { + this.$refs.departModal.add() + this.$refs.departModal.title = '鏂板' + } else if (num == 2) { + console.log(this.currSelected) + let key = this.currSelected.key + if (!key) { + this.$message.warning('璇峰厛鐐瑰嚮閫変腑涓婄骇閮ㄩ棬锛�') + return false + } + this.$refs.departModal.add(this.selectedKeys) + this.$refs.departModal.title = '鏂板' + } else { + this.$refs.departModal.add(this.rightClickSelectedKey) + this.$refs.departModal.title = '鏂板' + } + }, + handleDelete() { + var that = this + this.$confirm({ + title: '纭鍒犻櫎', + content: '纭畾瑕佸垹闄ゆ閮ㄩ棬浠ュ強瀛愯妭鐐规暟鎹悧?', + onOk: function () { + deleteByDepartId({ id: that.rightClickSelectedKey }).then((resp) => { + if (resp.success) { + //鍒犻櫎鎴愬姛鍚庯紝鍘婚櫎宸查�変腑涓殑鏁版嵁 + that.checkedKeys.splice(that.checkedKeys.findIndex(key => key === that.rightClickSelectedKey), 1); + that.$message.success('鍒犻櫎鎴愬姛!') + that.loadTree() + //鍒犻櫎鍚庡悓姝ユ竻绌哄彸渚у熀鏈俊鎭唴瀹� + let orgCode = that.model.orgCode; + if (orgCode && orgCode === that.rightClickSelectedOrgCode) { + that.onClearSelected() + } + } else { + that.$message.warning('鍒犻櫎澶辫触!') + } + }) + } + }) + }, + selectDirectiveOk(record) { + console.log('閫変腑鎸囦护鏁版嵁', record) + this.nodeSettingForm.setFieldsValue({ directiveCode: record.directiveCode }) + this.currSelected.sysCode = record.sysCode + }, + getFlowGraphData(node) { + this.graphDatasource.nodes.push({ + id: node.id, + text: node.flowNodeName + }) + if (node.children.length > 0) { + for (let a = 0; a < node.children.length; a++) { + let temp = node.children[a] + this.graphDatasource.edges.push({ + source: node.id, + target: temp.id + }) + this.getFlowGraphData(temp) + } + } + }, + //---- author:os_chengtgen -- date:20190827 -- for:鍒囨崲鐖跺瓙鍕鹃�夋ā寮� =======------ + expandAll() { + this.iExpandedKeys = this.allTreeKeys + }, + closeAll() { + this.iExpandedKeys = [] + }, + checkALL() { + this.checkStriccheckStrictlytly = false + this.checkedKeys = this.allTreeKeys + }, + cancelCheckALL() { + //this.checkedKeys = this.defaultCheckedKeys + this.checkedKeys = [] + }, + switchCheckStrictly(v) { + if (v == 1) { + this.checkStrictly = false + } else if (v == 2) { + this.checkStrictly = true + } + }, + getAllKeys(node) { + // console.log('node',node); + this.allTreeKeys.push(node.key) + if (node.children && node.children.length > 0) { + for (let a = 0; a < node.children.length; a++) { + this.getAllKeys(node.children[a]) + } + } + } + //---- author:os_chengtgen -- date:20190827 -- for:鍒囨崲鐖跺瓙鍕鹃�夋ā寮� =======------ + + }, + created() { + this.queryTreeData() + this.currFlowId = this.$route.params.id + this.currFlowName = this.$route.params.name + // this.loadTree() + }, + +} </script> <style scoped> - .ant-card-body .table-operator { - margin: 15px; - } +.ant-card-body .table-operator { + margin: 15px; +} - .anty-form-btn { - width: 100%; - text-align: center; - } +.anty-form-btn { + width: 100%; + text-align: center; +} - .anty-form-btn button { - margin: 0 5px; - } +.anty-form-btn button { + margin: 0 5px; +} - .anty-node-layout .ant-layout-header { - padding-right: 0 - } +.anty-node-layout .ant-layout-header { + padding-right: 0; +} - .header { - padding: 0 8px; - } +.header { + padding: 0 8px; +} - .header button { - margin: 0 3px - } +.header button { + margin: 0 3px; +} - .ant-modal-cust-warp { - height: 100% - } +.ant-modal-cust-warp { + height: 100%; +} - .ant-modal-cust-warp .ant-modal-body { - height: calc(100% - 110px) !important; - overflow-y: auto - } +.ant-modal-cust-warp .ant-modal-body { + height: calc(100% - 110px) !important; + overflow-y: auto; +} - .ant-modal-cust-warp .ant-modal-content { - height: 90% !important; - overflow-y: hidden - } +.ant-modal-cust-warp .ant-modal-content { + height: 90% !important; + overflow-y: hidden; +} - #app .desktop { - height: auto !important; - } +#app .desktop { + height: auto !important; +} - /** Button鎸夐挳闂磋窛 */ - .ant-btn { - margin-left: 3px - } +/** Button鎸夐挳闂磋窛 */ +.ant-btn { + margin-left: 3px; +} - .drawer-bootom-button { - /*position: absolute;*/ - bottom: 0; - width: 100%; - border-top: 1px solid #e8e8e8; - padding: 10px 16px; - text-align: left; - left: 0; - background: #fff; - border-radius: 0 0 2px 2px; - } +.drawer-bootom-button { + /*position: absolute;*/ + bottom: 0; + width: 100%; + border-top: 1px solid #e8e8e8; + padding: 10px 16px; + text-align: left; + left: 0; + background: #fff; + border-radius: 0 0 2px 2px; +} </style> \ No newline at end of file diff --git a/src/views/system/modules/DepartList/DepartAuthModal.vue b/src/views/system/modules/DepartList/DepartAuthModal.vue index a4d88ad..d3dd7ab 100644 --- a/src/views/system/modules/DepartList/DepartAuthModal.vue +++ b/src/views/system/modules/DepartList/DepartAuthModal.vue @@ -2,32 +2,56 @@ <a-card :bordered="false"> <template v-if="this.departId"> <div class="table-page-search-wrapper"> - <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-form + layout="inline" + @keyup.enter.native="searchQuery" + > <a-row :gutter="24"> - <a-col :md="6" :sm="12"> + <a-col :span="24 / 2 "> <a-form-item label="璁惧缂栧彿"> - <a-input placeholder="璇疯緭鍏ヨ澶囩紪鍙�" v-model="queryParam.equipmentId"></a-input> + <a-input + placeholder="璇疯緭鍏ヨ澶囩紪鍙�" + v-model="queryParam.equipmentId" + ></a-input> </a-form-item> </a-col> - <a-col :md="6" :sm="8"> - <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> - <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> + <a-col :span="24 / 2 "> + <a-button + type="primary" + @click="searchQuery" + icon="search" + >鏌ヨ</a-button> + <a-button + type="primary" + @click="searchReset" + icon="reload" + style="margin-left: 8px" + >閲嶇疆</a-button> </a-col> </a-row> </a-form> </div> - <div class="table-operator" style="border-top: 5px"> + <div + class="table-operator" + style="border-top: 5px" + > <a-dropdown v-if="selectedRowKeys.length > 0"> - <a-menu slot="overlay" @click="handleMenuClick"> + <a-menu + slot="overlay" + @click="handleMenuClick" + > <a-menu-item key="1"> - <a-icon type="delete" @click="batchDel"/> + <a-icon + type="delete" + @click="batchDel" + /> 鎵归噺绉婚櫎 </a-menu-item> </a-menu> <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔 - <a-icon type="down"/> + <a-icon type="down" /> </a-button> </a-dropdown> </div> @@ -42,22 +66,33 @@ :pagination="ipagination" :loading="loading" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" - @change="handleTableChange"> + @change="handleTableChange" + > <!--<template slot="avatarslot" slot-scope="text, record, index">--> - <!--<div class="anty-img-wrap">--> - <!--<a-avatar shape="square" :src="getAvatarView(record.avatar)" icon="user"/>--> - <!--</div>--> + <!--<div class="anty-img-wrap">--> + <!--<a-avatar shape="square" :src="getAvatarView(record.avatar)" icon="user"/>--> + <!--</div>--> <!--</template>--> - <span slot="action" slot-scope="text, record"> - <a-popconfirm title="纭畾绉婚櫎鍚�?" @confirm="() => handleDelete(record.id)"> - <a>绉婚櫎</a> - </a-popconfirm> + <span + slot="action" + slot-scope="text, record" + > + <a-popconfirm + title="纭畾绉婚櫎鍚�?" + @confirm="() => handleDelete(record.id)" + > + <a>绉婚櫎</a> + </a-popconfirm> </span> </a-table> </template> - <a-card v-else :bordered="false" style="height:200px"> + <a-card + v-else + :bordered="false" + style="height:200px" + > <a-empty> <span slot="description"> 璇峰厛閫夋嫨涓�涓儴闂�! </span> </a-empty> @@ -66,268 +101,265 @@ </template> <script> - import {queryTreeListForRole,queryDepartPermission,saveDepartPermission} from '@/api/api' - import DepartDataruleModal from './DepartDataruleModal' - import {JeecgListMixin} from '@/mixins/JeecgListMixin' - import { getAction,postAction } from '@/api/manage' - import { filterObj } from '@/utils/util' - import qs from 'qs' - export default { - name: 'DepartAuthModal', - mixins: [JeecgListMixin], - components: { DepartDataruleModal }, - data(){ - return { - queryParam:{}, - columns: [ - { - title: '#', - dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; - } - }, - { - title: '璁惧缂栧彿', - align: "center", - dataIndex: 'equipmentId', - width: 120, - // sorter: true - }, - { - title: '璁惧鍚嶇О', - align: "center", - width: 150, - dataIndex: 'equipmentName', - }, - { - title: '璁惧绫诲瀷', - align: "center", - width: 120, - dataIndex: 'equipmentType', - // scopedSlots: {customRender: "avatarslot"} - }, - - { - title: '椹卞姩绫诲瀷', - align: "center", - width: 80, - dataIndex: 'driveType', - // sorter: true - }, - - { - title: '鎿嶄綔', - dataIndex: 'action', - scopedSlots: {customRender: 'action'}, - align: "center", - width: 120 +import { queryTreeListForRole, queryDepartPermission, saveDepartPermission } from '@/api/api' +import DepartDataruleModal from './DepartDataruleModal' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import { getAction, postAction } from '@/api/manage' +import { filterObj } from '@/utils/util' +import qs from 'qs' +export default { + name: 'DepartAuthModal', + mixins: [JeecgListMixin], + components: { DepartDataruleModal }, + data() { + return { + queryParam: {}, + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: "center", + customRender: function (t, r, index) { + return parseInt(index) + 1; } + }, + { + title: '璁惧缂栧彿', + align: "center", + dataIndex: 'equipmentId', + width: 120, + // sorter: true + }, + { + title: '璁惧鍚嶇О', + align: "center", + width: 150, + dataIndex: 'equipmentName', + }, + { + title: '璁惧绫诲瀷', + align: "center", + width: 120, + dataIndex: 'equipmentType', + // scopedSlots: {customRender: "avatarslot"} + }, - ], - disableMixinCreated:true, - departId:"", - title:"閮ㄩ棬鏉冮檺閰嶇疆", - visible: false, - loading: false, - url:{ - list:'/mdc/mdcEquipment/equipmentListByDepart', - removeEquipmentForDepart:'/mdc/mdcEquipment/removeEquipmentForDepart', - serachEquipment:'/mdc/mdcEquipment/equipmentListByDepart', - removeEquipmentsForDepart:"/mdc/mdcEquipment/removeEquipmentsForDepart" + { + title: '椹卞姩绫诲瀷', + align: "center", + width: 80, + dataIndex: 'driveType', + // sorter: true + }, + + { + title: '鎿嶄綔', + dataIndex: 'action', + scopedSlots: { customRender: 'action' }, + align: "center", + width: 120 + } + + ], + disableMixinCreated: true, + departId: "", + title: "閮ㄩ棬鏉冮檺閰嶇疆", + visible: false, + loading: false, + url: { + list: '/mdc/mdcEquipment/equipmentListByDepart', + removeEquipmentForDepart: '/mdc/mdcEquipment/removeEquipmentForDepart', + serachEquipment: '/mdc/mdcEquipment/equipmentListByDepart', + removeEquipmentsForDepart: "/mdc/mdcEquipment/removeEquipmentsForDepart" + } + } + }, + methods: { + + show(departId) { + this.departId = departId + this.loadData(); + }, + close() { + this.reset() + this.$emit('close'); + this.visible = false; + }, + searchReset() { + this.queryParam = {} + this.loadData(); + }, + searchQuery() { + var id = this.queryParam.equipmentId + this.loading = true; + var params = this.getQueryParams();//鏌ヨ鏉′欢 + + params.pageNo = this.ipagination.current; + params.pageSize = this.ipagination.pageSize; + getAction(this.url.serachEquipment, { equipmentId: this.queryParam.equipmentId, departId: this.departId, pageNo: params.pageNo, pageSize: params.pageSize }).then((res) => { + if (res.success) { + // console.log(res) + //update-begin---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ + this.dataSource = res.result.records || res.result; + if (res.result.total) { + this.ipagination.total = res.result.total; + } else { + this.ipagination.total = 0; + } + //update-end---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.loading = false + }) + }, + handleTableChange(pagination, filters, sorter) { + //鍒嗛〉銆佹帓搴忋�佺瓫閫夊彉鍖栨椂瑙﹀彂 + //TODO 绛涢�� + // console.log(pagination) + if (Object.keys(sorter).length > 0) { + this.isorter.column = sorter.field; + this.isorter.order = "ascend" == sorter.order ? "asc" : "desc" + } + this.ipagination = pagination; + this.loadData(); + }, + loadData() { + //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭 + // if (arg === 1) { + // this.ipagination.current = 1; + // } + var params = this.getQueryParams();//鏌ヨ鏉′欢 + + params.pageNo = this.ipagination.current; + params.pageSize = this.ipagination.pageSize; + this.loading = true; + getAction(this.url.list, params).then((res) => { + if (res.success) { + // console.log(res) + //update-begin---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ + this.dataSource = res.result.records || res.result; + if (res.result.total) { + this.ipagination.total = res.result.total; + } else { + this.ipagination.total = 0; + } + //update-end---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ + } else { + // this.$message.warning(res.message) + this.$notification.warning({ + message: '娑堟伅', + description: res.message + }); + } + }).finally(() => { + this.loading = false + }) + }, + getQueryParams() { + //鑾峰彇鏌ヨ鏉′欢 + let sqp = {} + if (this.superQueryParams) { + sqp['superQueryParams'] = encodeURI(this.superQueryParams) + sqp['superQueryMatchType'] = this.superQueryMatchType + } + var param = Object.assign(sqp, this.queryParam, this.isorter, this.filters); + param.field = this.getQueryField(); + param.pageNo = this.ipagination.current; + param.pageSize = this.ipagination.pageSize; + param.departId = this.departId; + //鑾峰彇鐢ㄦ埛瀹氬埗鐨勫弬鏁板睘鎬� + if (this.getCustomQueryParams) { + param = this.getCustomQueryParams(param); + if (!param) { + return false; } } + + return filterObj(param); }, - methods: { + handleDelete(equipmentId) { - show(departId){ - this.departId=departId - this.loadData(); - }, - close () { - this.reset() - this.$emit('close'); - this.visible = false; - }, - searchReset() { - this.queryParam = {} - this.loadData(); - }, - searchQuery() { - var id = this.queryParam.equipmentId - this.loading = true; - var params = this.getQueryParams();//鏌ヨ鏉′欢 - - params.pageNo = this.ipagination.current; - params.pageSize = this.ipagination.pageSize; - getAction(this.url.serachEquipment,{equipmentId:this.queryParam.equipmentId,departId:this.departId,pageNo:params.pageNo,pageSize:params.pageSize}).then((res)=>{ - if (res.success) { - // console.log(res) - //update-begin---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ - this.dataSource = res.result.records||res.result; - if(res.result.total) - { - this.ipagination.total = res.result.total; - }else{ - this.ipagination.total = 0; - } - //update-end---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ - }else{ - this.$message.warning(res.message) - } - }).finally(() => { - this.loading = false - }) - }, - handleTableChange(pagination, filters, sorter) { - //鍒嗛〉銆佹帓搴忋�佺瓫閫夊彉鍖栨椂瑙﹀彂 - //TODO 绛涢�� - // console.log(pagination) - if (Object.keys(sorter).length > 0) { - this.isorter.column = sorter.field; - this.isorter.order = "ascend" == sorter.order ? "asc" : "desc" - } - this.ipagination = pagination; - this.loadData(); - }, - loadData(){ - //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭 - // if (arg === 1) { - // this.ipagination.current = 1; - // } - var params = this.getQueryParams();//鏌ヨ鏉′欢 - - params.pageNo = this.ipagination.current; - params.pageSize = this.ipagination.pageSize; - this.loading = true; - getAction(this.url.list,params).then((res)=>{ - if (res.success) { - // console.log(res) - //update-begin---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ - this.dataSource = res.result.records||res.result; - if(res.result.total) - { - this.ipagination.total = res.result.total; - }else{ - this.ipagination.total = 0; - } - //update-end---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ - }else{ - // this.$message.warning(res.message) - this.$notification.warning({ - message:'娑堟伅', - description:res.message - }); - } - }).finally(() => { - this.loading = false - }) - }, - getQueryParams() { - //鑾峰彇鏌ヨ鏉′欢 - let sqp = {} - if(this.superQueryParams){ - sqp['superQueryParams']=encodeURI(this.superQueryParams) - sqp['superQueryMatchType'] = this.superQueryMatchType - } - var param = Object.assign(sqp, this.queryParam, this.isorter ,this.filters); - param.field = this.getQueryField(); - param.pageNo = this.ipagination.current; - param.pageSize = this.ipagination.pageSize; - param.departId = this.departId; - //鑾峰彇鐢ㄦ埛瀹氬埗鐨勫弬鏁板睘鎬� - if (this.getCustomQueryParams) { - param = this.getCustomQueryParams(param); - if(!param){ - return false; - } - } - - return filterObj(param); - }, - handleDelete(equipmentId){ - - postAction(this.url.removeEquipmentForDepart,qs.stringify({departId:this.departId,equipmentId:equipmentId})).then((res)=>{ - if (res.success) { - // this.$message.warning(res.message) - this.$notification.success({ - message:'娑堟伅', - description:res.message - }); - - this.loadData(this.departId); - }else{ - // this.$message.warning(res.message) - this.$notification.warning({ - message:'娑堟伅', - description:res.message - }); - - } - }).finally(() => { - - }) - }, - handleMenuClick(e) { - if (e.key == 1) { - this.batchDel(); - } - }, - batchDel: function () { - if(!this.url.removeEquipmentsForDepart){ - this.$message.error("璇疯缃畊rl.removeEquipmentsForDepart灞炴��!") - return - } - if (this.selectedRowKeys.length <= 0) { - // this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒'); - this.$notification.warning({ - message:'娑堟伅', - description:"璇烽�夋嫨涓�鏉¤褰�" + postAction(this.url.removeEquipmentForDepart, qs.stringify({ departId: this.departId, equipmentId: equipmentId })).then((res) => { + if (res.success) { + // this.$message.warning(res.message) + this.$notification.success({ + message: '娑堟伅', + description: res.message }); - return; + + this.loadData(this.departId); } else { - var ids = ""; - for (var a = 0; a < this.selectedRowKeys.length; a++) { - ids += this.selectedRowKeys[a] + ","; - } - var that = this; - this.$confirm({ - title: "纭鍒犻櫎", - content: "鏄惁鍒犻櫎閫変腑鏁版嵁?", - onOk: function () { - that.loading = true; - postAction(that.url.removeEquipmentsForDepart,qs.stringify({departId:that.departId,equipmentIds:ids})).then((res) => { - if (res.success) { - //閲嶆柊璁$畻鍒嗛〉闂 - that.reCalculatePage(that.selectedRowKeys.length) - // that.$message.success(res.message); - that.$notification.success({ - message:'娑堟伅', - description:res.message - }); - that.loadData(that.departId); - that.onClearSelected(); - } else { - // that.$message.warning(res.message); - that.$notification.warning({ - message:'娑堟伅', - description:res.message - }); - } - }).finally(() => { - that.loading = false; - }); - } + // this.$message.warning(res.message) + this.$notification.warning({ + message: '娑堟伅', + description: res.message }); + } - }, + }).finally(() => { + + }) }, - } + handleMenuClick(e) { + if (e.key == 1) { + this.batchDel(); + } + }, + batchDel: function () { + if (!this.url.removeEquipmentsForDepart) { + this.$message.error("璇疯缃畊rl.removeEquipmentsForDepart灞炴��!") + return + } + if (this.selectedRowKeys.length <= 0) { + // this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒'); + this.$notification.warning({ + message: '娑堟伅', + description: "璇烽�夋嫨涓�鏉¤褰�" + }); + return; + } else { + var ids = ""; + for (var a = 0; a < this.selectedRowKeys.length; a++) { + ids += this.selectedRowKeys[a] + ","; + } + var that = this; + this.$confirm({ + title: "纭鍒犻櫎", + content: "鏄惁鍒犻櫎閫変腑鏁版嵁?", + onOk: function () { + that.loading = true; + postAction(that.url.removeEquipmentsForDepart, qs.stringify({ departId: that.departId, equipmentIds: ids })).then((res) => { + if (res.success) { + //閲嶆柊璁$畻鍒嗛〉闂 + that.reCalculatePage(that.selectedRowKeys.length) + // that.$message.success(res.message); + that.$notification.success({ + message: '娑堟伅', + description: res.message + }); + that.loadData(that.departId); + that.onClearSelected(); + } else { + // that.$message.warning(res.message); + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }); + } + }).finally(() => { + that.loading = false; + }); + } + }); + } + }, + }, +} </script> <style scoped> - </style> \ No newline at end of file diff --git a/src/views/system/modules/DepartList/DepartModal.vue b/src/views/system/modules/DepartList/DepartModal.vue index 697ec7c..67a1d0e 100644 --- a/src/views/system/modules/DepartList/DepartModal.vue +++ b/src/views/system/modules/DepartList/DepartModal.vue @@ -8,81 +8,131 @@ :okButtonProps="{ props: {disabled: disableSubmit} }" @ok="handleOk" @cancel="handleCancel" - cancelText="鍏抽棴"> + cancelText="鍏抽棴" + > <a-spin :spinning="confirmLoading"> - <a-form-model ref="form" :model="model" :rules="validatorRules"> + <a-form-model + ref="form" + :model="model" + :rules="validatorRules" + > <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="鏈烘瀯鍚嶇О" prop="departName" :hidden="false" - hasFeedback > - <a-input id="departName" placeholder="璇疯緭鍏ユ満鏋�/閮ㄩ棬鍚嶇О" v-model="model.departName"/> - </a-form-model-item> - <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" :hidden="seen" label="涓婄骇閮ㄩ棬" hasFeedback> - <a-tree-select - style="width:100%" - :dropdownStyle="{maxHeight:'200px',overflow:'auto'}" - :treeData="departTree" - v-model="model.parentId" - placeholder="璇烽�夋嫨涓婄骇閮ㄩ棬" - :disabled="condition"> - </a-tree-select> - </a-form-model-item> - <!--<a-form-model-item--> - <!--:labelCol="labelCol"--> - <!--:wrapperCol="wrapperCol"--> - <!--label="鏈烘瀯绫诲瀷">--> - <!--<template v-if="seen">--> - <!--<a-radio-group v-model="model.orgCategory" placeholder="璇烽�夋嫨鏈烘瀯绫诲瀷">--> - <!--<a-radio value="1">--> - <!--鍏徃--> - <!--</a-radio>--> - <!--</a-radio-group>--> - <!--</template>--> - <!--<template v-else>--> - <!--<a-radio-group v-model="model.orgCategory" placeholder="璇烽�夋嫨鏈烘瀯绫诲瀷">--> - <!--<a-radio value="2">--> - <!--閮ㄩ棬--> - <!--</a-radio>--> - <!--<a-radio value="3">--> - <!--宀椾綅--> - <!--</a-radio>--> - <!--</a-radio-group>--> - <!--</template>--> - <!--</a-form-model-item>--> - <!--<a-form-model-item--> - <!--:labelCol="labelCol"--> - <!--:wrapperCol="wrapperCol"--> - <!--prop="mobile"--> - <!--label="鐢佃瘽">--> - <!--<a-input placeholder="璇疯緭鍏ョ數璇�" v-model="model.mobile"/>--> - <!--</a-form-model-item>--> - <!--<a-form-model-item--> - <!--:labelCol="labelCol"--> - <!--:wrapperCol="wrapperCol"--> - <!--label="浼犵湡">--> - <!--<a-input placeholder="璇疯緭鍏ヤ紶鐪�" v-model="model.fax"/>--> - <!--</a-form-model-item>--> - <!--<a-form-model-item--> - <!--:labelCol="labelCol"--> - <!--:wrapperCol="wrapperCol"--> - <!--label="鍦板潃">--> - <!--<a-input placeholder="璇疯緭鍏ュ湴鍧�" v-model="model.address"/>--> - <!--</a-form-model-item>--> - <a-form-model-item - :labelCol="labelCol" - :wrapperCol="wrapperCol" - label="鎺掑簭"> - <a-input-number v-model="model.departOrder"/> + hasFeedback + > + <a-input + id="departName" + placeholder="璇疯緭鍏ユ満鏋�/閮ㄩ棬鍚嶇О" + v-model="model.departName" + /> </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" - label="澶囨敞"> - <a-textarea placeholder="璇疯緭鍏ュ娉�" v-model="model.memo"/> + label="浣跨敤閮ㄩ棬缂栫爜" + prop="useDepartNum" + :hidden="false" + hasFeedback + > + <a-input + id="useDepartNum" + placeholder="璇疯緭鍏ヤ娇鐢ㄩ儴闂ㄧ紪鐮�" + v-model="model.useDepartNum" + /> + </a-form-model-item> + <a-form-model-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="缁翠慨閮ㄩ棬缂栫爜" + prop="repairDepartNum" + :hidden="false" + hasFeedback + > + <a-input + id="repairDepartNum" + placeholder="璇疯緭鍏ョ淮淇儴闂ㄧ紪鐮�" + v-model="model.repairDepartNum" + /> + </a-form-model-item> + <a-form-model-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + :hidden="seen" + label="涓婄骇閮ㄩ棬" + hasFeedback + > + <a-tree-select + style="width:100%" + :dropdownStyle="{maxHeight:'200px',overflow:'auto'}" + :treeData="departTree" + v-model="model.parentId" + placeholder="璇烽�夋嫨涓婄骇閮ㄩ棬" + :disabled="condition" + > + </a-tree-select> + </a-form-model-item> + <!--<a-form-model-item--> + <!--:labelCol="labelCol"--> + <!--:wrapperCol="wrapperCol"--> + <!--label="鏈烘瀯绫诲瀷">--> + <!--<template v-if="seen">--> + <!--<a-radio-group v-model="model.orgCategory" placeholder="璇烽�夋嫨鏈烘瀯绫诲瀷">--> + <!--<a-radio value="1">--> + <!--鍏徃--> + <!--</a-radio>--> + <!--</a-radio-group>--> + <!--</template>--> + <!--<template v-else>--> + <!--<a-radio-group v-model="model.orgCategory" placeholder="璇烽�夋嫨鏈烘瀯绫诲瀷">--> + <!--<a-radio value="2">--> + <!--閮ㄩ棬--> + <!--</a-radio>--> + <!--<a-radio value="3">--> + <!--宀椾綅--> + <!--</a-radio>--> + <!--</a-radio-group>--> + <!--</template>--> + <!--</a-form-model-item>--> + <!--<a-form-model-item--> + <!--:labelCol="labelCol"--> + <!--:wrapperCol="wrapperCol"--> + <!--prop="mobile"--> + <!--label="鐢佃瘽">--> + <!--<a-input placeholder="璇疯緭鍏ョ數璇�" v-model="model.mobile"/>--> + <!--</a-form-model-item>--> + <!--<a-form-model-item--> + <!--:labelCol="labelCol"--> + <!--:wrapperCol="wrapperCol"--> + <!--label="浼犵湡">--> + <!--<a-input placeholder="璇疯緭鍏ヤ紶鐪�" v-model="model.fax"/>--> + <!--</a-form-model-item>--> + <!--<a-form-model-item--> + <!--:labelCol="labelCol"--> + <!--:wrapperCol="wrapperCol"--> + <!--label="鍦板潃">--> + <!--<a-input placeholder="璇疯緭鍏ュ湴鍧�" v-model="model.address"/>--> + <!--</a-form-model-item>--> + <a-form-model-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="鎺掑簭" + > + <a-input-number v-model="model.departOrder" /> + </a-form-model-item> + <a-form-model-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="澶囨敞" + > + <a-textarea + placeholder="璇疯緭鍏ュ娉�" + v-model="model.memo" + /> </a-form-model-item> </a-form-model> @@ -91,143 +141,144 @@ </template> <script> - import { httpAction } from '@/api/manage' - import { queryIdTree } from '@/api/api' - import pick from 'lodash.pick' - import ATextarea from 'ant-design-vue/es/input/TextArea' - export default { - name: "SysDepartModal", - components: { ATextarea }, - data () { - return { - departTree:[], - orgTypeData:[], - phoneWarning:'', - departName:"", - title:"鎿嶄綔", - seen:false, - visible: false, - condition:true, - disableSubmit:false, - model: {}, - defaultModel:{ - departOrder:0, - orgCategory:'1' - }, - menuhidden:false, - menuusing:true, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 }, - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 16 }, - }, +import { httpAction } from '@/api/manage' +import { queryIdTree } from '@/api/api' +import pick from 'lodash.pick' +import ATextarea from 'ant-design-vue/es/input/TextArea' +export default { + name: "SysDepartModal", + components: { ATextarea }, + data() { + return { + departTree: [], + orgTypeData: [], + phoneWarning: '', + departName: "", + title: "鎿嶄綔", + seen: false, + visible: false, + condition: true, + disableSubmit: false, + model: {}, + defaultModel: { + departOrder: 0, + orgCategory: '1' + }, + menuhidden: false, + menuusing: true, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 }, + }, - confirmLoading: false, - validatorRules:{ - departName:[{ required: true, message: '璇疯緭鍏ユ満鏋�/閮ㄩ棬鍚嶇О!' }], - // orgCode:[{ required: true, message: '璇疯緭鍏ユ満鏋勭紪鐮�!' }], - // mobile: [{validator:this.validateMobile}], - // orgCategory:[{required: true, message: '璇疯緭鍏ユ満鏋勭被鍨�!'}] - }, - url: { - add: "/sys/sysDepart/add", - }, - dictDisabled:true, + confirmLoading: false, + validatorRules: { + departName: [{ required: true, message: '璇疯緭鍏ユ満鏋�/閮ㄩ棬鍚嶇О!' }], + useDepartNum: [{ required: false, message: '璇疯緭鍏ヤ娇鐢ㄩ儴闂ㄧ紪鐮�!' }], + repairDepartNum: [{ required: false, message: '璇疯緭鍏ョ淮淇儴闂ㄧ紪鐮�!' }], + // orgCode:[{ required: true, message: '璇疯緭鍏ユ満鏋勭紪鐮�!' }], + // mobile: [{validator:this.validateMobile}], + // orgCategory:[{required: true, message: '璇疯緭鍏ユ満鏋勭被鍨�!'}] + }, + url: { + add: "/sys/sysDepart/add", + }, + dictDisabled: true, + } + }, + created() { + }, + methods: { + loadTreeData() { + var that = this; + queryIdTree().then((res) => { + if (res.success) { + that.departTree = []; + for (let i = 0; i < res.result.length; i++) { + let temp = res.result[i]; + that.departTree.push(temp); + } + } + + }) + }, + add(depart) { + if (depart) { + this.seen = false; + this.dictDisabled = false; + } else { + this.seen = true; + this.dictDisabled = true; + } + this.edit(depart); + }, + edit(record) { + this.visible = true; + this.model = Object.assign({}, this.defaultModel, record) + this.loadTreeData(); + this.model.parentId = record != null ? record.toString() : null; + if (this.seen) { + this.model.orgCategory = '1'; + } else { + this.model.orgCategory = '2'; } }, - created () { + close() { + this.$emit('close'); + this.disableSubmit = false; + this.visible = false; + this.$refs.form.resetFields(); }, - methods: { - loadTreeData(){ - var that = this; - queryIdTree().then((res)=>{ - if(res.success){ - that.departTree = []; - for (let i = 0; i < res.result.length; i++) { - let temp = res.result[i]; - that.departTree.push(temp); + handleOk() { + const that = this; + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.$refs.form.validate(valid => { + if (valid) { + that.confirmLoading = true; + httpAction(this.url.add, this.model, "post").then((res) => { + if (res.success) { + // that.$message.success(res.message); + that.$notification.success({ + message: '娑堟伅', + description: res.message + }); + that.loadTreeData(); + that.$emit('ok'); + } else { + // that.$message.warning(res.message); + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }); } - } + }).finally(() => { + that.confirmLoading = false; + that.close(); + }) - }) - }, - add (depart) { - if(depart){ - this.seen = false; - this.dictDisabled = false; - }else{ - this.seen = true; - this.dictDisabled = true; + } else { + return false; } - this.edit(depart); - }, - edit (record) { - this.visible = true; - this.model = Object.assign({}, this.defaultModel, record) - this.loadTreeData(); - this.model.parentId = record!=null?record.toString():null; - if(this.seen){ - this.model.orgCategory = '1'; - }else{ - this.model.orgCategory = '2'; - } - }, - close () { - this.$emit('close'); - this.disableSubmit = false; - this.visible = false; - this.$refs.form.resetFields(); - }, - handleOk () { - const that = this; - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.$refs.form.validate(valid => { - if (valid) { - that.confirmLoading = true; - httpAction(this.url.add,this.model,"post").then((res)=>{ - if(res.success){ - // that.$message.success(res.message); - that.$notification.success({ - message:'娑堟伅', - description:res.message - }); - that.loadTreeData(); - that.$emit('ok'); - }else{ - // that.$message.warning(res.message); - that.$notification.warning({ - message:'娑堟伅', - description:res.message - }); - } - }).finally(() => { - that.confirmLoading = false; - that.close(); - }) - - }else{ - return false; - } - }) - }, - handleCancel () { - this.close() - }, - validateMobile(rule,value,callback){ - if (!value || new RegExp(/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/).test(value)){ - callback(); - }else{ - callback("鎮ㄧ殑鎵嬫満鍙风爜鏍煎紡涓嶆纭�!"); - } - + }) + }, + handleCancel() { + this.close() + }, + validateMobile(rule, value, callback) { + if (!value || new RegExp(/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/).test(value)) { + callback(); + } else { + callback("鎮ㄧ殑鎵嬫満鍙风爜鏍煎紡涓嶆纭�!"); } + } } +} </script> <style scoped> - </style> \ No newline at end of file diff --git a/src/views/system/modules/DepartList/DepartTeam.vue b/src/views/system/modules/DepartList/DepartTeam.vue new file mode 100644 index 0000000..0d10d45 --- /dev/null +++ b/src/views/system/modules/DepartList/DepartTeam.vue @@ -0,0 +1,394 @@ +<template> + <a-card :bordered="false"> + <template v-if="this.departId"> + <div class="table-page-search-wrapper"> + <a-form + layout="inline" + @keyup.enter.native="searchQuery" + > + <a-row :gutter="24"> + + <a-col :span="24 / 2 "> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="鐝粍缂栧彿" + > + <j-input + placeholder="璇疯緭鍏ョ彮缁勭紪鍙�" + v-model="queryParam.num" + ></j-input> + </a-form-item> + </a-col> + <a-col :span="24 / 2 "> + <a-button + type="primary" + @click="searchQuery" + icon="search" + >鏌ヨ</a-button> + <a-button + type="primary" + @click="searchReset" + icon="reload" + style="margin-left: 8px" + >閲嶇疆</a-button> + <a-button + type="primary" + @click="handleAdd" + icon="plus" + style="margin-left: 8px" + >鏂板</a-button> + </a-col> + </a-row> + </a-form> + </div> + <div + class="table-operator" + style="border-top: 5px" + > + <a-dropdown v-if="selectedRowKeys.length > 0"> + <a-menu + slot="overlay" + @click="handleMenuClick" + > + <a-menu-item key="1"> + <a-icon + type="delete" + @click="batchDel" + /> + 鎵归噺绉婚櫎 + </a-menu-item> + </a-menu> + <a-button style="margin-left: 8px"> + 鎵归噺鎿嶄綔 + <a-icon type="down" /> + </a-button> + </a-dropdown> + </div> + <a-table + ref="table" + bordered + size="middle" + rowKey="id" + :scroll="{x: 500}" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" + @change="handleTableChange" + > + + <!--<template slot="avatarslot" slot-scope="text, record, index">--> + <!--<div class="anty-img-wrap">--> + <!--<a-avatar shape="square" :src="getAvatarView(record.avatar)" icon="user"/>--> + <!--</div>--> + <!--</template>--> + <span + slot="name" + slot-scope="text" + > + <j-ellipsis + :value="text" + :length="7" + /> + </span> + + <span + slot="action" + slot-scope="text, record" + > + <a @click="handleEdit(record)">缂栬緫</a> + <a-divider type="vertical" /> + <a-popconfirm + title="纭畾绉婚櫎鍚�?" + @confirm="() => handleDelete(record.id)" + > + <a>绉婚櫎</a> + </a-popconfirm> + </span> + </a-table> + </template> + <a-card + v-else + :bordered="false" + style="height:200px" + > + <a-empty> + <span slot="description"> 璇峰厛閫夋嫨涓�涓儴闂�! </span> + </a-empty> + </a-card> + <team-modal + ref="modalForm" + @ok="modalFormOk" + :departId=this.departId + ></team-modal> + <!-- :nodeSelected="nodeSelected" --> + </a-card> +</template> + +<script> +import { queryTreeListForRole, queryDepartPermission, saveDepartPermission } from '@/api/api' +import DepartDataruleModal from './DepartDataruleModal' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import { getAction, postAction, deleteAction } from '@/api/manage' +import { filterObj } from '@/utils/util' +import JEllipsis from '@/components/jeecg/JEllipsis' +import qs from 'qs' +import TeamModal from './TeamModal' +export default { + name: 'DepartTeam', + mixins: [JeecgListMixin], + components: { DepartDataruleModal, TeamModal, JEllipsis }, + data() { + return { + queryParam: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 }, + }, + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: "center", + customRender: function (t, r, index) { + return parseInt(index) + 1; + } + }, + { + title: '閮ㄩ棬', + align: "center", + dataIndex: 'departId_dictText', + }, + { + title: '鐝粍缂栧彿', + align: "center", + dataIndex: 'num', + }, + { + title: '鐝粍鍚嶇О', + align: "center", + dataIndex: 'name', + scopedSlots: { customRender: 'name' }, + }, + { + title: '澶囨敞', + align: "center", + dataIndex: 'remark', + }, + + { + title: '鎿嶄綔', + dataIndex: 'action', + scopedSlots: { customRender: 'action' }, + align: "center", + width: 120 + } + + ], + disableMixinCreated: true, + departId: "", + title: "閮ㄩ棬鏉冮檺閰嶇疆", + visible: false, + loading: false, + hidden: true, + url: { + list: '/base/team/list', + remove: '/base/team/delete', + serachTeams: '/base/team/list', + deleteBatch: "/base/team/deleteBatch" + } + } + }, + methods: { + + show(departId) { + this.departId = departId + this.loadData(); + }, + close() { + this.reset() + this.$emit('close'); + this.visible = false; + }, + searchReset() { + this.queryParam = {} + this.loadData(); + }, + searchQuery() { + this.loading = true; + var params = this.getQueryParams();//鏌ヨ鏉′欢 + params.pageNo = this.ipagination.current; + params.pageSize = this.ipagination.pageSize; + getAction(this.url.serachTeams, params).then((res) => { + if (res.success) { + // console.log(res) + //update-begin---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ + this.dataSource = res.result.records || res.result; + if (res.result.total) { + this.ipagination.total = res.result.total; + } else { + this.ipagination.total = 0; + } + //update-end---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.loading = false + }) + }, + handleTableChange(pagination, filters, sorter) { + //鍒嗛〉銆佹帓搴忋�佺瓫閫夊彉鍖栨椂瑙﹀彂 + //TODO 绛涢�� + // console.log(pagination) + if (Object.keys(sorter).length > 0) { + this.isorter.column = sorter.field; + this.isorter.order = "ascend" == sorter.order ? "asc" : "desc" + } + this.ipagination = pagination; + this.loadData(); + }, + loadData() { + //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭 + // if (arg === 1) { + // this.ipagination.current = 1; + // } + var params = this.getQueryParams();//鏌ヨ鏉′欢 + + params.pageNo = this.ipagination.current; + params.pageSize = this.ipagination.pageSize; + this.loading = true; + getAction(this.url.list, params).then((res) => { + if (res.success) { + // console.log(res) + //update-begin---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ + this.dataSource = res.result.records || res.result; + if (res.result.total) { + this.ipagination.total = res.result.total; + } else { + this.ipagination.total = 0; + } + //update-end---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------ + } else { + // this.$message.warning(res.message) + this.$notification.warning({ + message: '娑堟伅', + description: res.message + }); + } + }).finally(() => { + this.loading = false + }) + }, + getQueryParams() { + //鑾峰彇鏌ヨ鏉′欢 + let sqp = {} + if (this.superQueryParams) { + sqp['superQueryParams'] = encodeURI(this.superQueryParams) + sqp['superQueryMatchType'] = this.superQueryMatchType + } + var param = Object.assign(sqp, this.queryParam, this.isorter, this.filters); + param.field = this.getQueryField(); + param.pageNo = this.ipagination.current; + param.pageSize = this.ipagination.pageSize; + param.departId = this.departId; + //鑾峰彇鐢ㄦ埛瀹氬埗鐨勫弬鏁板睘鎬� + if (this.getCustomQueryParams) { + param = this.getCustomQueryParams(param); + if (!param) { + return false; + } + } + + return filterObj(param); + }, + handleDelete(id) { + + deleteAction(this.url.remove, { id: id }).then((res) => { + if (res.success) { + // this.$message.warning(res.message) + this.$notification.success({ + message: '娑堟伅', + description: res.message + }); + + this.show(this.departId); + } else { + // this.$message.warning(res.message) + this.$notification.warning({ + message: '娑堟伅', + description: res.message + }); + + } + }).finally(() => { + + }) + }, + handleMenuClick(e) { + if (e.key == 1) { + this.batchDel(); + } + }, + batchDel: function () { + if (!this.url.deleteBatch) { + this.$message.error("璇疯缃畊rl.deleteBatch灞炴��!") + return + } + if (this.selectedRowKeys.length <= 0) { + // this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒'); + this.$notification.warning({ + message: '娑堟伅', + description: "璇烽�夋嫨涓�鏉¤褰�" + }); + return; + } else { + var ids = ""; + for (var a = 0; a < this.selectedRowKeys.length; a++) { + ids += this.selectedRowKeys[a] + ","; + } + var that = this; + this.$confirm({ + title: "纭鍒犻櫎", + content: "鏄惁鍒犻櫎閫変腑鏁版嵁?", + onOk: function () { + that.loading = true; + deleteAction(that.url.deleteBatch, { ids: ids }).then((res) => { + if (res.success) { + //閲嶆柊璁$畻鍒嗛〉闂 + that.reCalculatePage(that.selectedRowKeys.length) + // that.$message.success(res.message); + that.$notification.success({ + message: '娑堟伅', + description: res.message + }); + that.show(that.departId); + that.onClearSelected(); + } else { + // that.$message.warning(res.message); + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }); + } + }).finally(() => { + that.loading = false; + }); + } + }); + } + }, + }, +} +</script> + +<style scoped> +</style> \ No newline at end of file diff --git a/src/views/system/modules/DepartList/TeamModal.vue b/src/views/system/modules/DepartList/TeamModal.vue new file mode 100644 index 0000000..ab02ae5 --- /dev/null +++ b/src/views/system/modules/DepartList/TeamModal.vue @@ -0,0 +1,286 @@ +<template> + <a-modal + :title="title" + :width="800" + :visible="visible" + :confirmLoading="confirmLoading" + :okButtonProps="{ props: {disabled: disableSubmit} }" + @ok="handleOk" + @cancel="handleCancel" + cancelText="鍏抽棴" + > + + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-model-item + :labelCol="{span:4}" + :wrapperCol="{span:18}" + :hidden="seen" + label="涓婄骇閮ㄩ棬" + hasFeedback + > + <a-tree-select + style="width:100%" + :dropdownStyle="{maxHeight:'200px',overflow:'auto'}" + :treeData="departTree" + v-model="model.departId" + placeholder="璇烽�夋嫨涓婄骇閮ㄩ棬" + :disabled="true" + > + </a-tree-select> + </a-form-model-item> + </a-col> + </a-row> + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-item + label="鐝粍缂栧彿" + :labelCol="{span:4}" + :wrapperCol="{span:18}" + > + <a-input + :readOnly="disableSubmit" + allow-clear + placeholder="璇疯緭鍏ョ彮缁勭紪鍙�" + v-decorator="['num', validatorRules.num ]" + /> + </a-form-item> + </a-col> + </a-row> + + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-item + label="鐝粍鍚嶇О" + :labelCol="{span:4}" + :wrapperCol="{span:18}" + > + <a-input + :readOnly="disableSubmit" + allow-clear + placeholder="璇疯緭鍏ョ彮缁勫悕绉�" + v-decorator="['name', validatorRules.name ]" + /> + </a-form-item> + </a-col> + </a-row> + + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-item + :labelCol="{span:4}" + :wrapperCol="{span:18}" + label="澶囨敞" + > + <a-textarea + :readOnly="disableSubmit" + placeholder="璇疯緭鍏ュ娉�" + allow-clear + v-decorator="['remark', validatorRules.remark]" + /> + </a-form-item> + </a-col> + </a-row> + + </a-form> + </a-spin> + </a-modal> +</template> + +<script> +import pick from 'lodash.pick' +import { postAction, requestPut } from '@/api/manage' +import { duplicateCheck } from '@/api/api' +import { queryIdTree } from '@/api/api' + +export default { + name: 'TeamModal', + props: { + // nodeSelected: { + // type: Object, + // default: {} + // }, + departId: { + type: String, + default: "" + }, + }, + data() { + return { + title: "鎿嶄綔", + visible: false, + model: {}, + departTree: [], + labelCol: { + xs: { span: 24 }, + sm: { span: 6 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 }, + }, + confirmLoading: false, + form: this.$form.createForm(this), + validatorRules: { + num: { + rules: [ + { required: true, message: '璇疯緭鍏ョ彮缁勭紪鍙�!' }, + { min: 0, max: 30, message: '闀垮害涓嶈秴杩� 30 涓瓧绗�', trigger: 'blur' }, + { validator: this.validateNum }, + ] + }, + name: { + rules: [ + { required: true, message: '璇疯緭鍏ョ彮缁勫悕绉�!' }, + { min: 0, max: 64, message: '闀垮害涓嶈秴杩� 64 涓瓧绗�', trigger: 'blur' }, + { validator: this.validateName }, + ] + }, + remark: { + rules: [ + { min: 0, max: 100, message: '闀垮害涓嶈秴杩� 100 涓瓧绗�', trigger: 'blur' }, + ] + } + }, + url: { + add: "/base/team/add", + edit: "/base/team/edit" + }, + disableSubmit: false, + //鏂板銆佺紪杈戙�佸垹闄ゃ�佹壒閲忓垹闄ゆ搷浣滄敼鍙樻暟鎹悗鍒锋柊鍏宠仈鐨勭粍浠剁殑鐩戝惉灞炴�� + // alterFlag: "" + } + }, + created() { + }, + methods: { + add() { + this.edit({}); + }, + edit(record) { + this.loadTreeData(); + this.form.resetFields(); + this.model = Object.assign({}, record); + this.model.departId = this.departId + this.visible = true; + this.disableSubmit = false; + this.$nextTick(() => { + this.form.setFieldsValue(pick(this.model, 'num', 'name', 'remark')) + }); + }, + close() { + this.$emit('close'); + this.visible = false; + }, + handleOk() { + const that = this; + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.form.validateFields((err, values) => { + if (!err) { + that.confirmLoading = true; + let formData = Object.assign(this.model, values); + let obj; + if (!this.model.id) { + obj = postAction(this.url.add, formData); + } else { + obj = requestPut(this.url.edit, formData, { id: this.model.id }); + } + obj.then((res) => { + if (res.success) { + that.$message.success(res.message); + that.$emit('ok'); + that.alterFlag = new Date() + } else { + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + that.close(); + }) + } + }) + }, + + loadTreeData() { + var that = this; + queryIdTree().then((res) => { + if (res.success) { + that.departTree = []; + for (let i = 0; i < res.result.length; i++) { + let temp = res.result[i]; + that.departTree.push(temp); + } + } + + }) + }, + handleCancel() { + this.close() + }, + //楠岃瘉 缂栧彿 + validateNum(rule, value, callback) { + var params = { + tableName: 'mom_base_team', + fieldName: 'num', + fieldVal: value, + dataId: this.model.id, + //鏁版嵁搴撲腑瀛樺湪瀛楁del_flag骞朵娇鐢ㄨ瀛楁浣滀负鏈垹闄ょ瓥鐣ワ紝鐪熷垹闄わ細false 鍋囧垹闄わ細true + delFlag: 'true', + }; + duplicateCheck(params).then((res) => { + if (res.success) { + callback(); + } else { + callback("缂栧彿宸插瓨鍦�!"); + } + }) + }, + //楠岃瘉 鍚嶇О + validateName(rule, value, callback) { + var params = { + tableName: 'mom_base_team', + fieldName: 'name', + fieldVal: value, + dataId: this.model.id, + //鏁版嵁搴撲腑瀛樺湪瀛楁del_flag骞朵娇鐢ㄨ瀛楁浣滀负鏈垹闄ょ瓥鐣ワ紝鐪熷垹闄わ細false 鍋囧垹闄わ細true + delFlag: 'true', + }; + duplicateCheck(params).then((res) => { + if (res.success) { + callback(); + } else { + callback("鍚嶇О宸插瓨鍦�!"); + } + }) + }, + }, + // watch: { + // alterFlag() { + // this.$bus.$emit('queryTreeData'); + // } + // } +} +</script> + +<style scoped> +.ant-btn { + padding: 0 10px; + margin-left: 3px; +} + +.ant-form-item-control { + line-height: 0px; +} + +/** 涓昏〃鍗曡闂磋窛 */ +.ant-form .ant-form-item { + margin-bottom: 10px; +} + +/** Tab椤甸潰琛岄棿璺� */ +.ant-tabs-content .ant-form-item { + margin-bottom: 0px; +} +</style> \ No newline at end of file -- Gitblit v1.9.3