1、隐藏首页,进入系统后跳转至设备监控页面
2、调整用户管理编辑及显示字段
3、增加设备车间管理页面
| | |
| | | } |
| | | /* æ»å¨æ¡ä¼å start */ |
| | | ::-webkit-scrollbar{ |
| | | width:8px; |
| | | width:0; |
| | | height:8px; |
| | | } |
| | | ::-webkit-scrollbar-track{ |
| | |
| | | // ç¹å»Logo跳转å°å |
| | | routerLinkTo: { |
| | | type: Object, |
| | | default: () => ({name: 'dashboard'}), |
| | | }, |
| | | default: () => ({ name: 'mdc-base-DeviceBaseInfo' }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <template> |
| | | <div> |
| | | <index-chart v-if="indexStyle==1"></index-chart> |
| | | <index-bdc v-if="indexStyle==2"></index-bdc> |
| | | <index-task v-if="indexStyle==3"></index-task> |
| | | <div style="width: 100%;text-align: right;margin-top: 20px"> |
| | | è¯·éæ©é¦é¡µæ ·å¼ï¼ |
| | | <a-radio-group v-model="indexStyle"> |
| | | <a-radio :value="1">ç»è®¡å¾è¡¨</a-radio> |
| | | <a-radio :value="2">ç»è®¡å¾è¡¨2</a-radio> |
| | | <a-radio :value="3">ä»»å¡è¡¨æ ¼</a-radio> |
| | | </a-radio-group> |
| | | </div> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import IndexChart from './IndexChart' |
| | | import IndexTask from "./IndexTask" |
| | | import IndexBdc from './IndexBdc' |
| | | |
| | | |
| | | export default { |
| | | name: "Analysis", |
| | | components: { |
| | | IndexChart, |
| | | IndexTask, |
| | | IndexBdc |
| | | |
| | | }, |
| | | data() { |
| | | return { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template xmlns:background-color="http://www.w3.org/1999/xhtml"> |
| | | <a-row :gutter="10"> |
| | | <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-upload> |
| | | <a-button @click="handleDelete" v-if="selectedKeys.length>0">å é¤</a-button> |
| | | <a-button title="å é¤å¤æ¡æ°æ®" @click="batchDel" v-if="checkedKeys.length>0">æ¹éå é¤</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"> |
| | | <div slot="message"> |
| | | å½åéæ©ï¼<span v-if="this.currSelected.title">{{ getCurrSelectedTitle() }}</span> |
| | | <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-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"/>--> |
| | | <!--</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>--> |
| | | <!--</a-dropdown>--> |
| | | <!--</template>--> |
| | | <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-col> |
| | | </div> |
| | | </a-card> |
| | | <!---- author:os_chengtgen -- date:20190827 -- for:忢ç¶åå¾éæ¨¡å¼ =======------> |
| | | <div class="drawer-bottom-button"> |
| | | <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> |
| | | <a-button> |
| | | æ æä½ |
| | | <a-icon type="up"/> |
| | | </a-button> |
| | | </a-dropdown> |
| | | </div> |
| | | <!---- author:os_chengtgen -- date:20190827 -- for:忢ç¶åå¾éæ¨¡å¼ =======------> |
| | | </a-col> |
| | | <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="productionCode" label="车é´ç¼å·"> |
| | | <a-input placeholder="请è¾å
¥äº§çº¿/车é´ç¼å·" v-model="model.productionCode"/> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionName" label="车é´åç§°"> |
| | | <a-input placeholder="请è¾å
¥äº§çº¿/车é´åç§°" v-model="model.productionName"/> |
| | | </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="æ "> |
| | | </a-tree-select> |
| | | </a-form-model-item> |
| | | <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="æåº"> |
| | | <a-input-number v-model="model.productionOrder"/> |
| | | </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> |
| | | <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> |
| | | </div> |
| | | </a-card> |
| | | <a-card v-else> |
| | | <a-empty> |
| | | <span slot="description"> 请å
éæ©ä¸ä¸ªè½¦é´! </span> |
| | | </a-empty> |
| | | </a-card> |
| | | </a-tab-pane> |
| | | <!--<a-tab-pane tab="é¨é¨æé" key="2" forceRender>--> |
| | | <!--<depart-auth-modal ref="departAuth"/>--> |
| | | <!--</a-tab-pane>--> |
| | | <a-tab-pane tab="设å¤å表" key="2" forceRender> |
| | | <!--<depart-auth-modal/>--> |
| | | <production-equipment ref="departAuth"></production-equipment> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | |
| | | </a-col> |
| | | <production-modal ref="departModal" @ok="loadTree"></production-modal> |
| | | </a-row> |
| | | </template> |
| | | <script> |
| | | import ProductionEquipment from './modules/ProductionManager/ProductionEquipment' |
| | | import { queryProductionTreeList, searchByKeywords, deleteByProduction } from '@/api/api' |
| | | import { httpAction, deleteAction } from '@/api/manage' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import ProductionModal from './modules/ProductionManager/ProductionModal' |
| | | |
| | | export default { |
| | | name: 'ProductionManager', |
| | | mixins: [JeecgListMixin], |
| | | components: { |
| | | ProductionEquipment, |
| | | ProductionModal |
| | | }, |
| | | data() { |
| | | return { |
| | | iExpandedKeys: [], |
| | | loading: false, |
| | | autoExpandParent: true, |
| | | currFlowId: '', |
| | | currFlowName: '', |
| | | disable: true, |
| | | treeData: [], |
| | | visible: false, |
| | | departTree: [], |
| | | rightClickSelectedKey: '', |
| | | rightClickSelectedOrgCode: '', |
| | | hiding: true, |
| | | model: {}, |
| | | dropTrigger: '', |
| | | depart: {}, |
| | | 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: { |
| | | productionName: [{ required: true, message: '请è¾å
¥äº§çº¿/车é´åç§°!' }] |
| | | }, |
| | | url: { |
| | | delete: '/mdc/mdcProduction/delete', |
| | | edit: '/mdc/mdcProduction/edit', |
| | | deleteBatch: '/mdc/mdcProduction/deleteBatch', |
| | | exportXlsUrl: '/mdc/mdcProduction/exportXls', |
| | | importExcelUrl: '/mdc/mdcProduction/importExcel' |
| | | }, |
| | | orgCategoryDisabled: false, |
| | | isIncludesNotLeaf: false |
| | | } |
| | | }, |
| | | computed: { |
| | | importExcelUrl: function() { |
| | | return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` |
| | | } |
| | | }, |
| | | methods: { |
| | | loadData() { |
| | | this.refresh() |
| | | }, |
| | | loadTree() { |
| | | var that = this |
| | | that.treeData = [] |
| | | that.departTree = [] |
| | | queryProductionTreeList().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({ event, node }) { |
| | | this.dropTrigger = 'contextmenu' |
| | | const record = node.dataRef |
| | | this.rightClickSelectedKey = record.id |
| | | this.rightClickSelected = record |
| | | this.rightClickSelectedOrgCode = record.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() { |
| | | console.log(this.checkedKeys) |
| | | this.isIncludesNotLeaf = false |
| | | this.includesNotLeaf(this.departTree) |
| | | console.log('isIncludesNotLeaf', this.isIncludesNotLeaf) |
| | | |
| | | // 为trueå表示éä¸é¡¹å
å«éå¶åç»ç¹ falseå表示éä¸é¡¹å为å¶åç»ç¹ |
| | | if (!this.isIncludesNotLeaf) { |
| | | 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] + ',' |
| | | } |
| | | 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.success({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | that.loadTree() |
| | | that.onClearSelected() |
| | | } else { |
| | | // that.$message.warning(res.message) |
| | | that.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | } else { |
| | | this.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: 'éä¸é¡¹å
å«å·²æè½½åèç¹è½¦é´' |
| | | }) |
| | | } |
| | | }, |
| | | includesNotLeaf(treeData) { |
| | | for (let i = 0; i < treeData.length; i++) { |
| | | if (!treeData[i].leaf) { |
| | | this.includesNotLeaf(treeData[i].children) |
| | | } |
| | | if (this.checkedKeys.includes(treeData[i].id) && !treeData[i].leaf) { |
| | | this.isIncludesNotLeaf = true |
| | | } |
| | | } |
| | | }, |
| | | 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() |
| | | } |
| | | |
| | | }, |
| | | 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 |
| | | } |
| | | //---- author:os_chengtgen -- date:20190827 -- for:忢ç¶åå¾éæ¨¡å¼ =======------ |
| | | }, |
| | | onSelect(selectedKeys, e) { |
| | | console.log('selected', selectedKeys, e) |
| | | this.hiding = false |
| | | this.deleteTrigger = 'leftClick' |
| | | 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) |
| | | this.$refs.departAuth.show(record.id) |
| | | }, |
| | | // 触åonSelectäºä»¶æ¶,为é¨é¨æ å³ä¾§çform表åèµå¼ |
| | | 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 = [] |
| | | this.$refs.departAuth.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.success({ |
| | | 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('请å
ç¹å»éä¸ä¸çº§è½¦é´ï¼') |
| | | this.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: '请å
ç¹å»éä¸ä¸çº§è½¦é´ï¼' |
| | | }) |
| | | 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 |
| | | if (this.currSelected.leaf) { |
| | | this.$confirm({ |
| | | title: '确认å é¤', |
| | | content: `ç¡®å®è¦å é¤ ${that.currSelected.productionName} å?`, |
| | | onOk: function() { |
| | | deleteByProduction({ id: that.currSelected.id }).then((resp) => { |
| | | if (resp.success) { |
| | | //å 餿ååï¼å»é¤å·²éä¸ä¸çæ°æ® |
| | | // that.checkedKeys.splice(that.checkedKeys.findIndex(key => key === that.rightClickSelectedKey), 1) |
| | | // that.$message.success('å 餿å!') |
| | | that.$notification.success({ |
| | | message: 'æ¶æ¯', |
| | | description: 'å 餿å' |
| | | }) |
| | | that.loadTree() |
| | | //å é¤å忥æ¸
空å³ä¾§åºæ¬ä¿¡æ¯å
容 |
| | | // let orgCode=that.model.orgCode; |
| | | // if(orgCode && orgCode === that.rightClickSelectedOrgCode){ |
| | | that.onClearSelected() |
| | | // } |
| | | } else { |
| | | // that.$message.warning('å é¤å¤±è´¥!') |
| | | that.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: 'å é¤å¤±è´¥' |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } else { |
| | | this.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: 'æ¤è½¦é´å·²æè½½åèç¹' |
| | | }) |
| | | } |
| | | console.log('deletedRecord', deletedRecord) |
| | | }, |
| | | 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.currFlowId = this.$route.params.id |
| | | this.currFlowName = this.$route.params.name |
| | | // this.loadTree() |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | .ant-card-body .table-operator { |
| | | margin: 15px; |
| | | } |
| | | |
| | | .anty-form-btn { |
| | | width: 100%; |
| | | text-align: center; |
| | | } |
| | | |
| | | .anty-form-btn button { |
| | | margin: 0 5px; |
| | | } |
| | | |
| | | .anty-node-layout .ant-layout-header { |
| | | padding-right: 0 |
| | | } |
| | | |
| | | .header { |
| | | padding: 0 8px; |
| | | } |
| | | |
| | | .header button { |
| | | margin: 0 3px |
| | | } |
| | | |
| | | .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-content { |
| | | height: 90% !important; |
| | | overflow-y: hidden |
| | | } |
| | | |
| | | /** Buttonæé®é´è· */ |
| | | .ant-btn { |
| | | margin-left: 3px |
| | | } |
| | | |
| | | .drawer-bottom-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> |
| | |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" |
| | | @change="handleTableChange"> |
| | | |
| | | <template slot="avatarslot" slot-scope="text, record, index"> |
| | | <template slot="avatarslot" slot-scope="text, record"> |
| | | <div class="anty-img-wrap"> |
| | | <a-avatar shape="square" :src="getAvatarView(record.avatar)" icon="user"/> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import UserModal from './modules/UserModal' |
| | | import PasswordModal from './modules/PasswordModal' |
| | | import {putAction,getFileAccessHttpUrl} from '@/api/manage'; |
| | |
| | | import UserRecycleBinModal from './modules/UserRecycleBinModal' |
| | | import JSuperQuery from '@/components/jeecg/JSuperQuery' |
| | | import JThirdAppButton from '@/components/jeecgbiz/thirdApp/JThirdAppButton' |
| | | import {mapActions} from 'vuex' |
| | | |
| | | export default { |
| | | name: "UserList", |
| | |
| | | { |
| | | title: '头å', |
| | | align: "center", |
| | | width: 120, |
| | | width: 80, |
| | | dataIndex: 'avatar', |
| | | scopedSlots: {customRender: "avatarslot"} |
| | | }, |
| | | |
| | | { |
| | | title: 'æ§å«', |
| | | align: "center", |
| | | width: 80, |
| | | dataIndex: 'sex_dictText', |
| | | sorter: true |
| | | }, |
| | | { |
| | | title: 'çæ¥', |
| | | align: "center", |
| | | width: 100, |
| | | dataIndex: 'birthday' |
| | | }, |
| | | { |
| | | title: 'ææºå·ç ', |
| | | align: "center", |
| | | width: 100, |
| | | dataIndex: 'phone' |
| | | }, |
| | | // { |
| | | // title: 'æ§å«', |
| | | // align: "center", |
| | | // width: 80, |
| | | // dataIndex: 'sex_dictText', |
| | | // sorter: true |
| | | // }, |
| | | // { |
| | | // title: 'çæ¥', |
| | | // align: "center", |
| | | // width: 100, |
| | | // dataIndex: 'birthday' |
| | | // }, |
| | | // { |
| | | // title: 'ææºå·ç ', |
| | | // align: "center", |
| | | // width: 100, |
| | | // dataIndex: 'phone' |
| | | // }, |
| | | { |
| | | title: 'é¨é¨', |
| | | align: "center", |
| | | width: 180, |
| | | width: 240, |
| | | dataIndex: 'orgCodeTxt' |
| | | }, |
| | | { |
| | | title: 'è´è´£é¨é¨', |
| | | title: '车é´', |
| | | align: "center", |
| | | width: 180, |
| | | dataIndex: 'departIds_dictText' |
| | | width: 240, |
| | | dataIndex: 'productionName', |
| | | ellipsis: true, |
| | | }, |
| | | { |
| | | title: 'ç¶æ', |
| | |
| | | { |
| | | title: 'æä½', |
| | | dataIndex: 'action', |
| | | scopedSlots: {customRender: 'action'}, |
| | | scopedSlots: { customRender: 'action' }, |
| | | align: "center", |
| | | width: 170 |
| | | } |
| | | width: 80 |
| | | }, |
| | | |
| | | |
| | | ], |
| | | isDepartType:'', |
| | | superQueryFieldList: [ |
| | | { type: 'input', value: 'username', text: 'ç¨æ·è´¦å·', }, |
| | | { type: 'input', value: 'realname', text: 'ç¨æ·å§å', }, |
| | |
| | | return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; |
| | | } |
| | | }, |
| | | created() { |
| | | this.queryTreeData() |
| | | }, |
| | | methods: { |
| | | ...mapActions(['QueryDepartTree']), |
| | | queryTreeData() { |
| | | this.QueryDepartTree().then(res => { |
| | | if (res.success) { |
| | | this.isDepartType = res.result[0].value |
| | | if(this.isDepartType == -1){ |
| | | this.columns=[ |
| | | { |
| | | title: 'ç¨æ·è´¦å·', |
| | | align: "center", |
| | | dataIndex: 'username', |
| | | width: 120, |
| | | sorter: true |
| | | }, |
| | | { |
| | | title: 'ç¨æ·å§å', |
| | | align: "center", |
| | | width: 100, |
| | | dataIndex: 'realname', |
| | | }, |
| | | { |
| | | title: '头å', |
| | | align: "center", |
| | | width: 80, |
| | | dataIndex: 'avatar', |
| | | scopedSlots: {customRender: "avatarslot"} |
| | | }, |
| | | |
| | | // { |
| | | // title: 'æ§å«', |
| | | // align: "center", |
| | | // width: 80, |
| | | // dataIndex: 'sex_dictText', |
| | | // sorter: true |
| | | // }, |
| | | // { |
| | | // title: 'çæ¥', |
| | | // align: "center", |
| | | // width: 100, |
| | | // dataIndex: 'birthday' |
| | | // }, |
| | | // { |
| | | // title: 'ææºå·ç ', |
| | | // align: "center", |
| | | // width: 100, |
| | | // dataIndex: 'phone' |
| | | // }, |
| | | { |
| | | title: '车é´', |
| | | align: "center", |
| | | width: 240, |
| | | dataIndex: 'productionName', |
| | | ellipsis: true, |
| | | }, |
| | | { |
| | | title: 'ç¶æ', |
| | | align: "center", |
| | | width: 80, |
| | | dataIndex: 'status_dictText' |
| | | }, |
| | | { |
| | | title: 'æä½', |
| | | dataIndex: 'action', |
| | | scopedSlots: { customRender: 'action' }, |
| | | align: "center", |
| | | width: 80 |
| | | }, |
| | | |
| | | |
| | | ] |
| | | }else{ |
| | | this.columns= [ |
| | | { |
| | | title: 'ç¨æ·è´¦å·', |
| | | align: "center", |
| | | dataIndex: 'username', |
| | | width: 120, |
| | | sorter: true |
| | | }, |
| | | { |
| | | title: 'ç¨æ·å§å', |
| | | align: "center", |
| | | width: 100, |
| | | dataIndex: 'realname', |
| | | }, |
| | | { |
| | | title: '头å', |
| | | align: "center", |
| | | width: 80, |
| | | dataIndex: 'avatar', |
| | | scopedSlots: {customRender: "avatarslot"} |
| | | }, |
| | | |
| | | // { |
| | | // title: 'æ§å«', |
| | | // align: "center", |
| | | // width: 80, |
| | | // dataIndex: 'sex_dictText', |
| | | // sorter: true |
| | | // }, |
| | | // { |
| | | // title: 'çæ¥', |
| | | // align: "center", |
| | | // width: 100, |
| | | // dataIndex: 'birthday' |
| | | // }, |
| | | // { |
| | | // title: 'ææºå·ç ', |
| | | // align: "center", |
| | | // width: 100, |
| | | // dataIndex: 'phone' |
| | | // }, |
| | | { |
| | | title: 'é¨é¨', |
| | | align: "center", |
| | | width: 240, |
| | | dataIndex: 'orgCodeTxt' |
| | | }, |
| | | { |
| | | title: '车é´', |
| | | align: "center", |
| | | width: 240, |
| | | dataIndex: 'productionName', |
| | | ellipsis: true, |
| | | }, |
| | | { |
| | | title: 'çç»', |
| | | align: "center", |
| | | width: 240, |
| | | dataIndex: 'teamId_dictText' |
| | | }, |
| | | { |
| | | title: 'ç¶æ', |
| | | align: "center", |
| | | width: 80, |
| | | dataIndex: 'status_dictText' |
| | | }, |
| | | { |
| | | title: 'æä½', |
| | | dataIndex: 'action', |
| | | scopedSlots: { customRender: 'action' }, |
| | | align: "center", |
| | | width: 80 |
| | | } |
| | | |
| | | |
| | | ] |
| | | } |
| | | |
| | | } else { |
| | | // this.$message.warn(res.message) |
| | | this.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description:res.message |
| | | }); |
| | | } |
| | | }).finally(() =>{ |
| | | }) |
| | | }, |
| | | getAvatarView: function (avatar) { |
| | | return getFileAccessHttpUrl(avatar) |
| | | }, |
| | | |
| | | batchFrozen: function (status) { |
| | | if (this.selectedRowKeys.length <= 0) { |
| | | this.$message.warning('è¯·éæ©ä¸æ¡è®°å½ï¼'); |
| | | // this.$message.warning('è¯·éæ©ä¸æ¡è®°å½ï¼'); |
| | | this.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description:"è¯·éæ©ä¸æ¡è®°å½" |
| | | }); |
| | | return false; |
| | | } else { |
| | | let ids = ""; |
| | |
| | | } |
| | | frozenBatch({ids: id, status: status}).then((res) => { |
| | | if (res.success) { |
| | | that.$message.success(res.message); |
| | | that.$notification.success({ |
| | | message:'æ¶æ¯', |
| | | description:res.message |
| | | }); |
| | | that.loadData(); |
| | | } else { |
| | | that.$message.warning(res.message); |
| | | that.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description:res.message |
| | | }); |
| | | } |
| | | }); |
| | | }, |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-card :bordered="false"> |
| | | <template v-if="this.productionId"> |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | | <a-row :gutter="24"> |
| | | |
| | | <a-col :md="6" :sm="12"> |
| | | <a-form-item label="设å¤ç¼å·"> |
| | | <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> |
| | | </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="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-empty> |
| | | <span slot="description"> 请å
éæ©ä¸ä¸ªé¨é¨! </span> |
| | | </a-empty> |
| | | </a-card> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | import { filterObj } from '@/utils/util'; |
| | | import {queryTreeListForRole,queryDepartPermission,saveDepartPermission} from '@/api/api' |
| | | import {JeecgListMixin} from '@/mixins/JeecgListMixin' |
| | | import { getAction,postAction } from '@/api/manage' |
| | | import qs from 'qs' |
| | | export default { |
| | | name: 'ProductionEquipment', |
| | | mixins: [JeecgListMixin], |
| | | 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 |
| | | } |
| | | |
| | | ], |
| | | disableMixinCreated:true, |
| | | productionId:"", |
| | | title:"é¨é¨æéé
ç½®", |
| | | visible: false, |
| | | loading: false, |
| | | url:{ |
| | | list:'/mdc/mdcEquipment/equipmentListByProduction', |
| | | removeEquipmentForDepart:'/mdc/mdcEquipment/removeEquipmentForProduction', |
| | | serachEquipment:'/mdc/mdcEquipment/equipmentListByProduction', |
| | | removeEquipmentsForProduction:"/mdc/mdcEquipment/removeEquipmentsForProduction" |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | |
| | | show(productionId){ |
| | | this.productionId=productionId |
| | | 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,productionId:this.productionId,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) |
| | | this.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description: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.productionId = this.productionId; |
| | | //è·åç¨æ·å®å¶ç忰屿§ |
| | | if (this.getCustomQueryParams) { |
| | | param = this.getCustomQueryParams(param); |
| | | if(!param){ |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | return filterObj(param); |
| | | }, |
| | | handleDelete(equipmentId){ |
| | | |
| | | postAction(this.url.removeEquipmentForDepart,qs.stringify({productionId:this.productionId,equipmentId:equipmentId})).then((res)=>{ |
| | | if (res.success) { |
| | | this.$notification.success({ |
| | | message:'æ¶æ¯', |
| | | description:res.message |
| | | }); |
| | | this.loadData(this.productionId); |
| | | }else{ |
| | | this.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description:res.message |
| | | }); |
| | | } |
| | | }).finally(() => { |
| | | |
| | | }) |
| | | }, |
| | | handleMenuClick(e) { |
| | | if (e.key == 1) { |
| | | this.batchDel(); |
| | | } |
| | | }, |
| | | batchDel: function () { |
| | | if(!this.url.removeEquipmentsForProduction){ |
| | | this.$message.error("请设置url.removeEquipmentsForProduction屿§!") |
| | | 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.removeEquipmentsForProduction,qs.stringify({productionId:that.productionId,equipmentIds:ids})).then((res) => { |
| | | if (res.success) { |
| | | //éæ°è®¡ç®å页é®é¢ |
| | | that.reCalculatePage(that.selectedRowKeys.length) |
| | | // that.$message.success(res.message); |
| | | this.$notification.success({ |
| | | message:'æ¶æ¯', |
| | | description:res.message |
| | | }); |
| | | that.loadData(that.productionId); |
| | | that.onClearSelected(); |
| | | } else { |
| | | // that.$message.warning(res.message); |
| | | this.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description:res.message |
| | | }); |
| | | } |
| | | }).finally(() => { |
| | | that.loading = false; |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | :title="title" |
| | | :width="800" |
| | | :ok=false |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | :okButtonProps="{ props: {disabled: disableSubmit} }" |
| | | @ok="handleOk" |
| | | @cancel="handleCancel" |
| | | cancelText="å
³é"> |
| | | |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules"> |
| | | <a-form-model-item |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | label="车é´ç¼ç " |
| | | prop="productionCode" |
| | | :hidden="false" |
| | | hasFeedback > |
| | | <a-input id="productionCode" placeholder="请è¾å
¥äº§çº¿/车é´ç¼å·" v-model="model.productionCode"/> |
| | | </a-form-model-item> |
| | | <a-form-model-item |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | label="车é´åç§°" |
| | | prop="productionName" |
| | | :hidden="false" |
| | | hasFeedback > |
| | | <a-input id="departName" placeholder="请è¾å
¥äº§çº¿/车é´åç§°" v-model="model.productionName"/> |
| | | </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="æåº"> |
| | | <a-input-number v-model="model.productionOrder"/> |
| | | </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> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { httpAction } from '@/api/manage' |
| | | import { queryById } from '@/api/api' |
| | | import pick from 'lodash.pick' |
| | | import ATextarea from 'ant-design-vue/es/input/TextArea' |
| | | export default { |
| | | name: "ProductionModal", |
| | | components: { ATextarea }, |
| | | data () { |
| | | return { |
| | | departTree:[], |
| | | orgTypeData:[], |
| | | phoneWarning:'', |
| | | departName:"", |
| | | title:"æä½", |
| | | seen:false, |
| | | visible: false, |
| | | condition:true, |
| | | disableSubmit:false, |
| | | model: {}, |
| | | menuhidden:false, |
| | | menuusing:true, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 }, |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 }, |
| | | }, |
| | | |
| | | confirmLoading: false, |
| | | validatorRules:{ |
| | | productionName:[{ required: true, message: '请è¾å
¥äº§çº¿/车é´åç§°!' }], |
| | | }, |
| | | url: { |
| | | add: "/mdc/mdcProduction/add", |
| | | }, |
| | | dictDisabled:true, |
| | | } |
| | | }, |
| | | created () { |
| | | }, |
| | | methods: { |
| | | loadTreeData(){ |
| | | var that = this; |
| | | queryById().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; |
| | | }, |
| | | 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() |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | :title="title" |
| | | :visible="visible" |
| | | @ok="handleOk" |
| | | @cancel="handleCancel" |
| | | > |
| | | |
| | | <a-spin :spinning="loading"> |
| | | <!-- showLine --> |
| | | <a-form> |
| | | <a-form-item label="车é´å±çº§ï¼"> |
| | | <a-tree showLine ref="tree" :expandedKeys.sync="expandedKeys" |
| | | :treeData="treeDataSource" checkable @check="onCheck" v-model="checkedKeys" |
| | | @expand="onExpand"> |
| | | </a-tree> |
| | | </a-form-item> |
| | | </a-form> |
| | | |
| | | </a-spin> |
| | | |
| | | <template slot="footer"> |
| | | <div> |
| | | <a-dropdown |
| | | style="float: left" |
| | | :trigger="['click']" |
| | | placement="topCenter" |
| | | > |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item key="1" @click="expandAll">å±å¼ææ</a-menu-item> |
| | | <a-menu-item key="2" @click="closeAll">åå¹¶ææ</a-menu-item> |
| | | <a-menu-item key="3" @click="refreshTree">å·æ°</a-menu-item> |
| | | </a-menu> |
| | | <a-button> |
| | | æ æä½ |
| | | <a-icon type="up"/> |
| | | </a-button> |
| | | </a-dropdown> |
| | | <a-popconfirm title="ç¡®å®æ¾å¼ç¼è¾ï¼" @confirm="handleCancel" okText="ç¡®å®" cancelText="åæ¶"> |
| | | <a-button style="margin-right: .8rem">å
³é</a-button> |
| | | </a-popconfirm> |
| | | <a-button |
| | | @click="handleOk" |
| | | type="primary" |
| | | >ç¡®å® |
| | | </a-button> |
| | | </div> |
| | | </template> |
| | | |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getAction, |
| | | postAction, |
| | | deleteAction |
| | | } from '@/api/manage' |
| | | import BaseTree from '@/views/mdc/common/BaseTree' |
| | | import DepartTree from '@/views/mdc/base/modules/DepartList/DepartListTree/DepartTree' |
| | | |
| | | export default { |
| | | name: 'SelectDeviceModal', |
| | | components: { |
| | | BaseTree, DepartTree |
| | | }, |
| | | props: { |
| | | editDisable: { |
| | | type: Boolean, |
| | | default() { |
| | | return true |
| | | } |
| | | }, |
| | | title: { |
| | | type: String |
| | | }, |
| | | selectedProduction: { |
| | | type: String |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | treeDataSource: [], |
| | | expandedKeys: [], |
| | | checkedKeys: [], |
| | | url: { |
| | | getDeviceTree: '/mdc/mdcEquipment/loadTreeListByProductionIds' |
| | | }, |
| | | selectedWorkshopIds: '', |
| | | dataList: [], |
| | | allTreeKeys: [], |
| | | visible: false, |
| | | dataSource: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.closeAll() |
| | | }, |
| | | methods: { |
| | | onExpand(expandedKeys) { |
| | | this.expandedKeys = expandedKeys |
| | | this.autoExpandParent = false |
| | | }, |
| | | queryTreeData(value) { |
| | | this.loading = true |
| | | this.selectedWorkshopIds = value |
| | | getAction(this.url.getDeviceTree, { ids: value }) |
| | | .then(res => { |
| | | if (res.success) { |
| | | this.dataList = [] |
| | | this.allTreeKeys = [] |
| | | this.getTreeDataSouce(res.result) |
| | | this.treeDataSource = res.result |
| | | this.generateList(this.treeDataSource) |
| | | this.expandedKeys = this.allTreeKeys |
| | | } else { |
| | | this.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }) |
| | | .catch(err => { |
| | | this.$notification.error({ |
| | | message: 'æ¶æ¯', |
| | | description: err.message |
| | | }) |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | |
| | | generateList(data) { |
| | | for (let i = 0; i < data.length; i++) { |
| | | const node = data[i] |
| | | const key = node.key |
| | | const title = node.title |
| | | this.dataList.push({ |
| | | key, |
| | | title: title |
| | | }) |
| | | this.allTreeKeys.push(key) |
| | | if (node.children) { |
| | | this.generateList(node.children) |
| | | } |
| | | } |
| | | }, |
| | | |
| | | getTreeDataSouce(data) { |
| | | data.forEach(item => { |
| | | if (item.children && item.children.length > 0) { |
| | | this.getTreeDataSouce(item.children) |
| | | } |
| | | item.key = item.equipmentId ? item.equipmentId : item.key |
| | | item.value = item.equipmentId ? item.equipmentId : item.value |
| | | }) |
| | | }, |
| | | expandAll() { |
| | | this.expandedKeys = this.allTreeKeys |
| | | }, |
| | | closeAll() { |
| | | this.expandedKeys = ['-1'] |
| | | }, |
| | | refreshTree() { |
| | | this.queryTreeData(this.selectedWorkshopIds) |
| | | }, |
| | | onCheck(value, obj) { |
| | | this.checkedKeys = value |
| | | this.deviceNodes = obj.checkedNodes.filter(item => item.data.props.equipmentId).map(item => item.data.props.equipmentId) |
| | | }, |
| | | handleCancel() { |
| | | this.visible = false |
| | | }, |
| | | handleOk() { |
| | | this.$emit('selectFinished', this.deviceNodes) |
| | | this.visible = false |
| | | } |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less" scoped> |
| | | /deep/ .ant-modal { |
| | | /*transform-origin: 337px 50px;*/ |
| | | } |
| | | |
| | | .ant-card-body .table-operator { |
| | | margin-bottom: 18px; |
| | | } |
| | | |
| | | .ant-table-tbody .ant-table-row td { |
| | | padding-top: 15px; |
| | | padding-bottom: 15px; |
| | | } |
| | | |
| | | .anty-row-operator button { |
| | | margin: 0 5px |
| | | } |
| | | |
| | | .ant-btn-danger { |
| | | background-color: #ffffff |
| | | } |
| | | |
| | | .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-content { |
| | | height: 90% !important; |
| | | overflow-y: hidden |
| | | } |
| | | |
| | | .drawer-bottom-button { |
| | | position: absolute; |
| | | bottom: 0; |
| | | width: 100%; |
| | | border-top: 1px solid #e8e8e8; |
| | | padding: 10px 16px; |
| | | text-align: right; |
| | | left: 0; |
| | | background: #fff; |
| | | border-radius: 0 0 2px 2px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <a-drawer |
| | | :title="title" |
| | | :maskClosable="true" |
| | | :width="drawerWidth" |
| | | placement="right" |
| | | :closable="true" |
| | | @close="handleCancel" |
| | | :visible="visible" |
| | | style="height: 100%;"> |
| | | :title="title" |
| | | :maskClosable="true" |
| | | :width="drawerWidth" |
| | | placement="right" |
| | | :closable="true" |
| | | @close="handleCancel" |
| | | :visible="visible" |
| | | style="height: 100%;overflow: auto;padding-bottom: 53px;" |
| | | > |
| | | |
| | | <template slot="title"> |
| | | <div style="width: 100%;"> |
| | | <span>{{ title }}</span> |
| | | <span style="display:inline-block;width:calc(100% - 51px);padding-right:10px;text-align: right"> |
| | | <a-button @click="toggleScreen" icon="appstore" style="height:20px;width:20px;border:0px"></a-button> |
| | | <a-button |
| | | @click="toggleScreen" |
| | | icon="appstore" |
| | | style="height:20px;width:20px;border:0px" |
| | | ></a-button> |
| | | </span> |
| | | </div> |
| | | |
| | | </template> |
| | | |
| | | <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 label="ç¨æ·è´¦å·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="username"> |
| | | <a-input placeholder="请è¾å
¥ç¨æ·è´¦å·" v-model="model.username" :readOnly="!!model.id"/> |
| | | <a-form-model-item |
| | | label="ç¨æ·è´¦å·" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="username" |
| | | > |
| | | <a-input |
| | | placeholder="请è¾å
¥ç¨æ·è´¦å·" |
| | | v-model="model.username" |
| | | :readOnly="!!model.id" |
| | | /> |
| | | </a-form-model-item> |
| | | |
| | | <template v-if="!model.id"> |
| | | <a-form-model-item label="ç»å½å¯ç " :labelCol="labelCol" :wrapperCol="wrapperCol" prop="password" > |
| | | <a-input type="password" placeholder="请è¾å
¥ç»å½å¯ç " v-model="model.password" /> |
| | | <a-form-model-item |
| | | label="ç»å½å¯ç " |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="password" |
| | | > |
| | | <a-input |
| | | type="password" |
| | | placeholder="请è¾å
¥ç»å½å¯ç " |
| | | v-model="model.password" |
| | | /> |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="确认å¯ç " :labelCol="labelCol" :wrapperCol="wrapperCol" prop="confirmpassword" > |
| | | <a-input type="password" @blur="handleConfirmBlur" placeholder="è¯·éæ°è¾å
¥ç»å½å¯ç " v-model="model.confirmpassword"/> |
| | | <a-form-model-item |
| | | label="确认å¯ç " |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="confirmpassword" |
| | | > |
| | | <a-input |
| | | type="password" |
| | | @blur="handleConfirmBlur" |
| | | placeholder="è¯·éæ°è¾å
¥ç»å½å¯ç " |
| | | v-model="model.confirmpassword" |
| | | /> |
| | | </a-form-model-item> |
| | | </template> |
| | | |
| | | <a-form-model-item label="ç¨æ·å§å" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="realname"> |
| | | <a-input placeholder="请è¾å
¥ç¨æ·å§å" v-model="model.realname" /> |
| | | <a-form-model-item |
| | | label="ç¨æ·å§å" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="realname" |
| | | > |
| | | <a-input |
| | | placeholder="请è¾å
¥ç¨æ·å§å" |
| | | v-model="model.realname" |
| | | /> |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="å·¥å·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workNo"> |
| | | <a-input placeholder="请è¾å
¥å·¥å·" v-model="model.workNo" /> |
| | | <a-form-model-item |
| | | label="å·¥å·" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="workNo" |
| | | > |
| | | <a-input |
| | | placeholder="请è¾å
¥å·¥å·" |
| | | v-model="model.workNo" |
| | | /> |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="ææºå·ç " :labelCol="labelCol" :wrapperCol="wrapperCol" prop="phone"> |
| | | <a-input placeholder="请è¾å
¥ææºå·ç " v-model="model.phone" /> |
| | | </a-form-model-item> |
| | | <!--<a-form-model-item label="èå¡" :labelCol="labelCol" :wrapperCol="wrapperCol">--> |
| | | <!--<j-select-position placeholder="è¯·éæ©èå¡" :multiple="false" v-model="model.post"/>--> |
| | | <!--</a-form-model-item>--> |
| | | |
| | | <a-form-model-item label="èå¡" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <j-select-position placeholder="è¯·éæ©èå¡" :multiple="false" v-model="model.post"/> |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="è§è²åé
" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!roleDisabled" > |
| | | <a-form-model-item |
| | | label="è§è²åé
" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | v-show="!roleDisabled" |
| | | > |
| | | <j-multi-select-tag |
| | | :disabled="disableSubmit" |
| | | v-model="model.selectedroles" |
| | | :options="rolesOptions" |
| | | placeholder="è¯·éæ©è§è²"> |
| | | :disabled="disableSubmit" |
| | | v-model="model.selectedroles" |
| | | :options="rolesOptions" |
| | | placeholder="è¯·éæ©è§è²" |
| | | > |
| | | </j-multi-select-tag> |
| | | </a-form-model-item> |
| | | |
| | | <!--é¨é¨åé
--> |
| | | <a-form-model-item label="é¨é¨åé
" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!departDisabled"> |
| | | <j-select-depart v-model="model.selecteddeparts" :multi="true" @back="backDepartInfo" :backDepart="true" :treeOpera="true">></j-select-depart> |
| | | <a-form-model-item |
| | | v-if="isDepartType== 0" |
| | | label="é¨é¨åé
" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | v-show="!departDisabled" |
| | | > |
| | | <j-select-depart |
| | | v-model="model.selecteddeparts" |
| | | :multi="true" |
| | | @back="backDepartInfo" |
| | | :backDepart="true" |
| | | :treeOpera="true" |
| | | >> |
| | | </j-select-depart> |
| | | </a-form-model-item> |
| | | |
| | | <!--ç§æ·åé
--> |
| | | <a-form-model-item label="ç§æ·åé
" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!departDisabled"> |
| | | <j-multi-select-tag |
| | | :disabled="disableSubmit" |
| | | v-model="model.relTenantIds" |
| | | :options="tenantsOptions" |
| | | placeholder="è¯·éæ©ç§æ·"> |
| | | </j-multi-select-tag> |
| | | <!--车é´åé
--> |
| | | <a-form-model-item |
| | | label="车é´åé
" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | v-show="!productionDisabled" |
| | | > |
| | | <j-select-production |
| | | v-model="model.selectedProduction" |
| | | :multi="true" |
| | | @back="backProductionInfo" |
| | | :backProduction="true" |
| | | :treeProductOpera="true" |
| | | ></j-select-production> |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="身份" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <a-radio-group v-model="model.userIdentity" @change="identityChange"> |
| | | <a-radio :value="1">æ®éç¨æ·</a-radio> |
| | | <a-radio :value="2">ä¸çº§</a-radio> |
| | | <a-form-model-item |
| | | label="éæ©è®¾å¤" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | v-show="!productionDisabled" |
| | | > |
| | | <a-input-search :readOnly="true" v-model="model.equipmentIds" @search="deviceSearch" enter-button |
| | | placeholder="è¯·éæ©è®¾å¤" :disabled="!model.selectedProduction"/> |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="é¦é¡µæé" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <a-radio-group v-model="model.userType" :defaultValue="0"> |
| | | <a-radio :value="4">å
¬å¸çº§</a-radio> |
| | | <a-radio :value="3">车é´çº§</a-radio> |
| | | <a-radio :value="2">工段级</a-radio> |
| | | <a-radio :value="1">æä½å·¥</a-radio> |
| | | <a-radio :value="0">æ </a-radio> |
| | | </a-radio-group> |
| | | </a-form-model-item> |
| | | <a-form-model-item label="è´è´£é¨é¨" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="departIdShow==true"> |
| | | |
| | | <a-form-model-item |
| | | label="çç»åé
" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="teamId" |
| | | > |
| | | <j-dict-select-tag |
| | | v-model="model.teamId" |
| | | :triggerChange="true" |
| | | dictCode="mom_base_team,name,id,del_flag = 0" |
| | | placeholder="请维æ¤çç»" |
| | | ></j-dict-select-tag> |
| | | </a-form-model-item> |
| | | <a-form-model-item |
| | | label="ä¸å¿åé
" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="areaId" |
| | | > |
| | | <j-dict-select-tag |
| | | v-model="model.areaId" |
| | | :triggerChange="true" |
| | | dictCode="mom_base_area,name,id,del_flag = 0" |
| | | placeholder="请维æ¤ä¸å¿" |
| | | ></j-dict-select-tag> |
| | | </a-form-model-item> |
| | | <a-form-model-item |
| | | label="è´è´£é¨é¨" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | v-if="departIdShow==true" |
| | | > |
| | | <j-multi-select-tag |
| | | :disabled="disableSubmit" |
| | | v-model="model.departIds" |
| | | :options="nextDepartOptions" |
| | | placeholder="è¯·éæ©è´è´£é¨é¨"> |
| | | :disabled="disableSubmit" |
| | | v-model="model.departIds" |
| | | :options="nextDepartOptions" |
| | | placeholder="è¯·éæ©è´è´£é¨é¨" |
| | | > |
| | | </j-multi-select-tag> |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="头å" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <j-image-upload class="avatar-uploader" text="ä¸ä¼ " v-model="model.avatar" ></j-image-upload> |
| | | </a-form-model-item> |
| | | <!--<a-form-model-item--> |
| | | <!--label="头å"--> |
| | | <!--:labelCol="labelCol"--> |
| | | <!--:wrapperCol="wrapperCol"--> |
| | | <!-->--> |
| | | <!--<j-image-upload--> |
| | | <!--class="avatar-uploader"--> |
| | | <!--text="ä¸ä¼ "--> |
| | | <!--v-model="model.avatar"--> |
| | | <!--></j-image-upload>--> |
| | | <!--</a-form-model-item>--> |
| | | |
| | | <a-form-model-item label="çæ¥" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <a-date-picker |
| | | style="width: 100%" |
| | | placeholder="è¯·éæ©çæ¥" |
| | | v-model="model.birthday" |
| | | :format="dateFormat" |
| | | :getCalendarContainer="node => node.parentNode"/> |
| | | </a-form-model-item> |
| | | <!--<a-form-model-item--> |
| | | <!--label="çæ¥"--> |
| | | <!--:labelCol="labelCol"--> |
| | | <!--:wrapperCol="wrapperCol"--> |
| | | <!-->--> |
| | | <!--<a-date-picker--> |
| | | <!--style="width: 100%"--> |
| | | <!--placeholder="è¯·éæ©çæ¥"--> |
| | | <!--v-model="model.birthday"--> |
| | | <!--:format="dateFormat"--> |
| | | <!--:getCalendarContainer="node => node.parentNode"--> |
| | | <!--/>--> |
| | | <!--</a-form-model-item>--> |
| | | |
| | | <a-form-model-item label="æ§å«" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <a-select v-model="model.sex" placeholder="è¯·éæ©æ§å«" :getPopupContainer= "(target) => target.parentNode"> |
| | | <a-select-option :value="1">ç·</a-select-option> |
| | | <a-select-option :value="2">女</a-select-option> |
| | | </a-select> |
| | | </a-form-model-item> |
| | | <!--<a-form-model-item--> |
| | | <!--label="æ§å«"--> |
| | | <!--:labelCol="labelCol"--> |
| | | <!--:wrapperCol="wrapperCol"--> |
| | | <!-->--> |
| | | <!--<a-select--> |
| | | <!--v-model="model.sex"--> |
| | | <!--placeholder="è¯·éæ©æ§å«"--> |
| | | <!--:getPopupContainer="(target) => target.parentNode"--> |
| | | <!-->--> |
| | | <!--<a-select-option :value="1">ç·</a-select-option>--> |
| | | <!--<a-select-option :value="2">女</a-select-option>--> |
| | | <!--</a-select>--> |
| | | <!--</a-form-model-item>--> |
| | | |
| | | <a-form-model-item label="é®ç®±" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="email"> |
| | | <a-input placeholder="请è¾å
¥é®ç®±" v-model="model.email" /> |
| | | </a-form-model-item> |
| | | <!--<a-form-model-item--> |
| | | <!--label="é®ç®±"--> |
| | | <!--:labelCol="labelCol"--> |
| | | <!--:wrapperCol="wrapperCol"--> |
| | | <!--prop="email"--> |
| | | <!-->--> |
| | | <!--<a-input--> |
| | | <!--placeholder="请è¾å
¥é®ç®±"--> |
| | | <!--v-model="model.email"--> |
| | | <!--/>--> |
| | | <!--</a-form-model-item>--> |
| | | |
| | | <a-form-model-item label="座æº" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="telephone"> |
| | | <a-input placeholder="请è¾å
¥åº§æº" v-model="model.telephone" /> |
| | | </a-form-model-item> |
| | | <!--<a-form-model-item--> |
| | | <!--label="ææºå·ç "--> |
| | | <!--:labelCol="labelCol"--> |
| | | <!--:wrapperCol="wrapperCol"--> |
| | | <!--prop="phone"--> |
| | | <!-->--> |
| | | <!--<a-input--> |
| | | <!--placeholder="请è¾å
¥ææºå·ç "--> |
| | | <!--v-model="model.phone"--> |
| | | <!--/>--> |
| | | <!--</a-form-model-item>--> |
| | | |
| | | <a-form-model-item label="工使µå¼æ" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <j-dict-select-tag v-model="model.activitiSync" placeholder="è¯·éæ©æ¯å¦åæ¥å·¥ä½æµå¼æ" :type="'radio'" dictCode="activiti_sync"/> |
| | | </a-form-model-item> |
| | | <!--<a-form-model-item--> |
| | | <!--label="座æº"--> |
| | | <!--:labelCol="labelCol"--> |
| | | <!--:wrapperCol="wrapperCol"--> |
| | | <!--prop="telephone"--> |
| | | <!-->--> |
| | | <!--<a-input--> |
| | | <!--placeholder="请è¾å
¥åº§æº"--> |
| | | <!--v-model="model.telephone"--> |
| | | <!--/>--> |
| | | <!--</a-form-model-item>--> |
| | | <!--<a-form-model-item label="工使µå¼æ" :labelCol="labelCol" :wrapperCol="wrapperCol">--> |
| | | <!--<j-dict-select-tag v-model="model.activitiSync" placeholder="è¯·éæ©æ¯å¦åæ¥å·¥ä½æµå¼æ" :type="'radio'" dictCode="activiti_sync"/>--> |
| | | <!--</a-form-model-item>--> |
| | | |
| | | </a-form-model> |
| | | </a-spin> |
| | | |
| | | |
| | | <div class="drawer-bootom-button" v-show="!disableSubmit"> |
| | | <a-popconfirm title="ç¡®å®æ¾å¼ç¼è¾ï¼" @confirm="handleCancel" okText="ç¡®å®" cancelText="åæ¶"> |
| | | <div |
| | | class="drawer-bottom-button" |
| | | v-show="!disableSubmit" |
| | | > |
| | | <a-popconfirm |
| | | title="ç¡®å®æ¾å¼ç¼è¾ï¼" |
| | | @confirm="handleCancel" |
| | | okText="ç¡®å®" |
| | | cancelText="åæ¶" |
| | | > |
| | | <a-button style="margin-right: .8rem">åæ¶</a-button> |
| | | </a-popconfirm> |
| | | <a-button @click="handleSubmit" type="primary" :loading="confirmLoading">æäº¤</a-button> |
| | | <a-button |
| | | @click="handleSubmit" |
| | | type="primary" |
| | | :loading="confirmLoading" |
| | | >æäº¤ |
| | | </a-button> |
| | | </div> |
| | | |
| | | <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | </a-drawer> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import Vue from 'vue' |
| | | import { ACCESS_TOKEN } from "@/store/mutation-types" |
| | | import { ACCESS_TOKEN } from '@/store/mutation-types' |
| | | import { getAction } from '@/api/manage' |
| | | import { addUser,editUser,queryUserRole,queryall } from '@/api/api' |
| | | import { disabledAuthFilter } from "@/utils/authFilter" |
| | | import { addUser, editUser, queryUserRole, queryall } from '@/api/api' |
| | | import { disabledAuthFilter } from '@/utils/authFilter' |
| | | import { duplicateCheck } from '@/api/api' |
| | | import JSelectProduction from '../../../components/jeecgbiz/JSelectProduction' |
| | | import { mapActions } from 'vuex' |
| | | import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api' |
| | | import SelectDeviceModal from './SelectDeviceModal' |
| | | |
| | | export default { |
| | | name: "UserModal", |
| | | name: 'UserModal', |
| | | components: { |
| | | SelectDeviceModal, |
| | | JSelectProduction |
| | | }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | departDisabled: false, //æ¯å¦æ¯æçé¨é¨è°ç¨è¯¥é¡µé¢ |
| | | productionDisabled: false, //æ¯å¦æ¯æç车é´è°ç¨è¯¥é¡µé¢ |
| | | roleDisabled: false, //æ¯å¦æ¯è§è²ç»´æ¤è°ç¨è¯¥é¡µé¢ |
| | | modalWidth:800, |
| | | drawerWidth:700, |
| | | modaltoggleFlag:true, |
| | | modalWidth: 800, |
| | | drawerWidth: 700, |
| | | modaltoggleFlag: true, |
| | | confirmDirty: false, |
| | | userId:"", //ä¿åç¨æ·id |
| | | disableSubmit:false, |
| | | dateFormat:"YYYY-MM-DD", |
| | | validatorRules:{ |
| | | username:[{required: true, message: '请è¾å
¥ç¨æ·è´¦å·!'}, |
| | | {validator: this.validateUsername,}], |
| | | password: [{required: true,pattern:/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,message: 'å¯ç ç±8使°åã大å°å忝åç¹æ®ç¬¦å·ç»æ!'}, |
| | | {validator: this.validateToNextPassword,trigger: 'change'}], |
| | | confirmpassword: [{required: true, message: 'è¯·éæ°è¾å
¥ç»å½å¯ç !',}, |
| | | { validator: this.compareToFirstPassword,}], |
| | | realname:[{ required: true, message: '请è¾å
¥ç¨æ·åç§°!' }], |
| | | phone: [{required: true, message: '请è¾å
¥ææºå·!'}, {validator: this.validatePhone}], |
| | | email: [{validator: this.validateEmail}], |
| | | roles:{}, |
| | | workNo:[ { required: true, message: '请è¾å
¥å·¥å·' }, |
| | | userId: '', //ä¿åç¨æ·id |
| | | disableSubmit: false, |
| | | dateFormat: 'YYYY-MM-DD', |
| | | validatorRules: { |
| | | username: [{ required: true, message: '请è¾å
¥ç¨æ·è´¦å·!' }, |
| | | { validator: this.validateUsername }], |
| | | password: [{ |
| | | required: true, |
| | | pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, |
| | | message: 'å¯ç ç±8使°åã大å°å忝åç¹æ®ç¬¦å·ç»æ!' |
| | | }, |
| | | { validator: this.validateToNextPassword, trigger: 'change' }], |
| | | confirmpassword: [{ required: true, message: 'è¯·éæ°è¾å
¥ç»å½å¯ç !' }, |
| | | { validator: this.compareToFirstPassword }], |
| | | realname: [{ required: true, message: '请è¾å
¥ç¨æ·åç§°!' }], |
| | | phone: [{ required: false, message: '请è¾å
¥ææºå·!' }, { validator: this.validatePhone }], |
| | | email: [{ validator: this.validateEmail }], |
| | | roles: {}, |
| | | workNo: [{ required: true, message: '请è¾å
¥å·¥å·' }, |
| | | { validator: this.validateWorkNo }], |
| | | telephone: [{ pattern: /^0\d{2,3}-[1-9]\d{6,7}$/, message: '请è¾å
¥æ£ç¡®ç座æºå·ç ' },] |
| | | telephone: [{ pattern: /^0\d{2,3}-[1-9]\d{6,7}$/, message: '请è¾å
¥æ£ç¡®ç座æºå·ç ' }], |
| | | teamId: [{ required: false, message: '请维æ¤çç»' }] |
| | | }, |
| | | departIdShow:false, |
| | | title:"æä½", |
| | | departIdShow: false, |
| | | title: 'æä½', |
| | | visible: false, |
| | | model: {}, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 }, |
| | | sm: { span: 16 } |
| | | }, |
| | | uploadLoading:false, |
| | | uploadLoading: false, |
| | | confirmLoading: false, |
| | | headers:{}, |
| | | headers: {}, |
| | | url: { |
| | | fileUpload: window._CONFIG['domianURL']+"/sys/common/upload", |
| | | userWithDepart: "/sys/user/userDepartList", // å¼å
¥ä¸ºæå®ç¨æ·æ¥çé¨é¨ä¿¡æ¯éè¦çurl |
| | | userId:"/sys/user/generateUserId", // å¼å
¥çææ·»å ç¨æ·æ
åµä¸çurl |
| | | syncUserByUserName:"/act/process/extActProcess/doSyncUserByUserName",//åæ¥ç¨æ·å°å·¥ä½æµ |
| | | fileUpload: window._CONFIG['domianURL'] + 'sys/common/upload', |
| | | userWithDepart: '/sys/user/userDepartList', // å¼å
¥ä¸ºæå®ç¨æ·æ¥çé¨é¨ä¿¡æ¯éè¦çurl |
| | | //å¼å
¥ä¸ºæå®ç¨æ·æ¥ç车é´ä¿¡æ¯éè¦çurl |
| | | userProductionList: '/sys/user/userProductionList', |
| | | userId: '/sys/user/generateUserId', // å¼å
¥çææ·»å ç¨æ·æ
åµä¸çurl |
| | | syncUserByUserName: '/act/process/extActProcess/doSyncUserByUserName',//åæ¥ç¨æ·å°å·¥ä½æµ |
| | | queryTenantList: '/sys/tenant/queryList' |
| | | }, |
| | | tenantsOptions: [], |
| | | rolesOptions:[], |
| | | nextDepartOptions:[], |
| | | rolesOptions: [], |
| | | nextDepartOptions: [], |
| | | nextProductionOptions: [], |
| | | isDepartType: '', |
| | | model: { |
| | | selectedProduction: '' |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | const token = Vue.ls.get(ACCESS_TOKEN); |
| | | this.headers = {"X-Access-Token":token} |
| | | watch: { |
| | | visible: { |
| | | handler(value) { |
| | | if (value) this.initDictData('password_length') |
| | | } |
| | | }, |
| | | 'model.selectedProduction': { |
| | | handler(newVal, oldVal) { |
| | | if (newVal && this.$refs.selectDeviceModal) { |
| | | // å¦æè½¦é´éæ©ååä¸ä¸è´åéç½®éæ©è®¾å¤ |
| | | if ((oldVal && newVal !== oldVal)) this.model.equipmentIds = '' |
| | | this.$refs.selectDeviceModal.queryTreeData(newVal) |
| | | } |
| | | // 妿æ¸
空车é´å¼åéç½®éæ©è®¾å¤ |
| | | if (newVal === '') this.model.equipmentIds = '' |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | const token = Vue.ls.get(ACCESS_TOKEN) |
| | | this.headers = { 'X-Access-Token': token } |
| | | this.initRoleList() |
| | | this.initTenantList() |
| | | this.queryTreeData() |
| | | }, |
| | | computed:{ |
| | | uploadAction:function () { |
| | | return this.url.fileUpload; |
| | | computed: { |
| | | uploadAction: function() { |
| | | return this.url.fileUpload |
| | | } |
| | | }, |
| | | methods: { |
| | | add () { |
| | | this.refresh(); |
| | | this.edit({activitiSync:'1',userIdentity:1}); |
| | | ...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(() => { |
| | | }) |
| | | }, |
| | | edit (record) { |
| | | let that = this; |
| | | that.visible = true; |
| | | add() { |
| | | this.refresh() |
| | | this.edit({ |
| | | activitiSync: '1', |
| | | userType: 0, |
| | | userIdentity: 1, |
| | | selectedroles: '', |
| | | selecteddeparts: '', |
| | | selectedProduction: '' |
| | | }) |
| | | }, |
| | | edit(record) { |
| | | let that = this |
| | | that.visible = true |
| | | //æ ¹æ®å±å¹å®½åº¦èªéåºæ½å±å®½åº¦ |
| | | this.resetScreenSize(); |
| | | that.userId = record.id; |
| | | that.model = Object.assign({},{selectedroles:'',selecteddeparts:''}, record); |
| | | this.resetScreenSize() |
| | | that.userId = record.id |
| | | console.log('record', record) |
| | | that.model = Object.assign({}, record) |
| | | //身份为ä¸çº§æ¾ç¤ºè´è´£é¨é¨ï¼å¦å䏿¾ç¤º |
| | | if(this.model.userIdentity==2){ |
| | | this.departIdShow=true; |
| | | }else{ |
| | | this.departIdShow=false; |
| | | if (this.model.userIdentity == 2) { |
| | | this.departIdShow = true |
| | | } else { |
| | | this.departIdShow = false |
| | | } |
| | | |
| | | if(record.hasOwnProperty("id")){ |
| | | that.getUserRoles(record.id); |
| | | that.getUserDeparts(record.id); |
| | | if (record.hasOwnProperty('id')) { |
| | | that.getUserRoles(record.id) |
| | | that.getUserDeparts(record.id) |
| | | } |
| | | console.log('that.model=',that.model) |
| | | }, |
| | | isDisabledAuth(code){ |
| | | return disabledAuthFilter(code); |
| | | isDisabledAuth(code) { |
| | | return disabledAuthFilter(code) |
| | | }, |
| | | //çªå£æå¤§å忢 |
| | | toggleScreen(){ |
| | | if(this.modaltoggleFlag){ |
| | | this.modalWidth = window.innerWidth; |
| | | }else{ |
| | | this.modalWidth = 800; |
| | | toggleScreen() { |
| | | if (this.modaltoggleFlag) { |
| | | this.modalWidth = window.innerWidth |
| | | } else { |
| | | this.modalWidth = 800 |
| | | } |
| | | this.modaltoggleFlag = !this.modaltoggleFlag; |
| | | this.modaltoggleFlag = !this.modaltoggleFlag |
| | | }, |
| | | // æ ¹æ®å±å¹åå,设置æ½å±å°ºå¯¸ |
| | | resetScreenSize(){ |
| | | let screenWidth = document.body.clientWidth; |
| | | if(screenWidth < 500){ |
| | | this.drawerWidth = screenWidth; |
| | | }else{ |
| | | this.drawerWidth = 700; |
| | | resetScreenSize() { |
| | | let screenWidth = document.body.clientWidth |
| | | if (screenWidth < 500) { |
| | | this.drawerWidth = screenWidth |
| | | } else { |
| | | this.drawerWidth = 700 |
| | | } |
| | | }, |
| | | //åå§åç§æ·åå
¸ |
| | | initTenantList(){ |
| | | getAction(this.url.queryTenantList).then(res=>{ |
| | | if(res.success){ |
| | | this.tenantsOptions = res.result.map((item,index,arr)=>{ |
| | | let c = {label:item.name, value: item.id+""} |
| | | return c; |
| | | initTenantList() { |
| | | getAction(this.url.queryTenantList).then(res => { |
| | | if (res.success) { |
| | | this.tenantsOptions = res.result.map((item, index, arr) => { |
| | | let c = { label: item.name, value: item.id + '' } |
| | | return c |
| | | }) |
| | | console.log('this.tenantsOptions: ',this.tenantsOptions) |
| | | } |
| | | }) |
| | | }, |
| | | //åå§åè§è²åå
¸ |
| | | initRoleList(){ |
| | | queryall().then((res)=>{ |
| | | if(res.success){ |
| | | this.rolesOptions = res.result.map((item,index,arr)=>{ |
| | | let c = {label:item.roleName, value:item.id} |
| | | return c; |
| | | initRoleList() { |
| | | queryall().then((res) => { |
| | | if (res.success) { |
| | | this.rolesOptions = res.result.map((item, index, arr) => { |
| | | let c = { label: item.roleName, value: item.id } |
| | | return c |
| | | }) |
| | | console.log('this.rolesOptions: ',this.rolesOptions) |
| | | } |
| | | }); |
| | | }) |
| | | }, |
| | | getUserRoles(userid){ |
| | | queryUserRole({userid:userid}).then((res)=>{ |
| | | if(res.success){ |
| | | this.model.selectedroles = res.result.join(","); |
| | | console.log('that.model.selectedroles=',this.model.selectedroles) |
| | | getUserRoles(userid) { |
| | | queryUserRole({ userid: userid }).then((res) => { |
| | | if (res.success) { |
| | | this.$set(this.model, 'selectedroles', res.result.join(',')) |
| | | } |
| | | }); |
| | | }) |
| | | }, |
| | | getUserDeparts(userid){ |
| | | let that = this; |
| | | getAction(that.url.userWithDepart,{userId:userid}).then((res)=>{ |
| | | if(res.success){ |
| | | let departOptions=[]; |
| | | let selectDepartKeys=[] |
| | | getUserDeparts(userid) { |
| | | let that = this |
| | | //é¨é¨çurl è·åé¨é¨åé
|
| | | getAction(that.url.userWithDepart, { userId: userid }).then((res) => { |
| | | if (res.success) { |
| | | let departOptions = [] |
| | | let selectDepartKeys = [] |
| | | for (let i = 0; i < res.result.length; i++) { |
| | | selectDepartKeys.push(res.result[i].key); |
| | | selectDepartKeys.push(res.result[i].key) |
| | | //æ°å¢è´è´£é¨é¨éæ©ä¸ææ¡ |
| | | departOptions.push({ |
| | | value: res.result[i].key, |
| | | label: res.result[i].title |
| | | }) |
| | | } |
| | | that.model.selecteddeparts = selectDepartKeys.join(",") |
| | | that.nextDepartOptions=departOptions; |
| | | console.log('that.nextDepartOptions=',that.nextDepartOptions) |
| | | |
| | | this.$set(this.model, 'selecteddeparts', selectDepartKeys.join(',')) |
| | | that.nextDepartOptions = departOptions |
| | | } |
| | | }) |
| | | |
| | | // è·å车é´åé
|
| | | getAction(that.url.userProductionList, { userId: userid }).then((res) => { |
| | | if (res.success) { |
| | | let ProductionOptions = [] |
| | | let selectProductKeys = [] |
| | | for (let i = 0; i < res.result.length; i++) { |
| | | selectProductKeys.push(res.result[i].key) |
| | | //æ°å¢è´è´£é¨é¨éæ©ä¸ææ¡ |
| | | ProductionOptions.push({ |
| | | value: res.result[i].key, |
| | | label: res.result[i].title |
| | | }) |
| | | } |
| | | |
| | | this.$set(this.model, 'selectedProduction', selectProductKeys.join(',')) |
| | | that.nextProductionOptions = ProductionOptions |
| | | } |
| | | }) |
| | | //车é´çurl |
| | | }, |
| | | backDepartInfo(info) { |
| | | this.model.departIds = this.model.selecteddeparts; |
| | | this.nextDepartOptions = info.map((item,index,arr)=>{ |
| | | let c = {label:item.text, value: item.value+""} |
| | | return c; |
| | | this.model.departIds = this.model.selecteddeparts |
| | | this.nextDepartOptions = info.map((item, index, arr) => { |
| | | let c = { label: item.text, value: item.value + '' } |
| | | return c |
| | | }) |
| | | }, |
| | | refresh () { |
| | | this.userId="" |
| | | this.nextDepartOptions=[]; |
| | | this.departIdShow=false; |
| | | backProductionInfo(info) { |
| | | this.model.productionIds = this.model.selectedProduction |
| | | this.nextProductionOptions = info.map((item, index, arr) => { |
| | | let c = { label: item.text, value: item.value + '' } |
| | | return c |
| | | }) |
| | | }, |
| | | close () { |
| | | this.$emit('close'); |
| | | this.visible = false; |
| | | this.disableSubmit = false; |
| | | this.nextDepartOptions=[]; |
| | | this.departIdShow=false; |
| | | this.$refs.form.resetFields(); |
| | | |
| | | refresh() { |
| | | this.userId = '' |
| | | this.nextDepartOptions = [] |
| | | this.nextProductionOptions = [] |
| | | this.departIdShow = false |
| | | }, |
| | | close() { |
| | | this.$emit('close') |
| | | this.visible = false |
| | | this.disableSubmit = false |
| | | this.nextDepartOptions = [] |
| | | this.nextProductionOptions = [] |
| | | this.departIdShow = false |
| | | this.$refs.form.resetFields() |
| | | }, |
| | | moment, |
| | | handleSubmit () { |
| | | const that = this; |
| | | handleSubmit() { |
| | | const that = this |
| | | // 触å表åéªè¯ |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = true; |
| | | that.confirmLoading = true |
| | | //妿æ¯ä¸çº§æ©ä¼ å
¥departIds,å¦å为空 |
| | | if(this.model.userIdentity!==2){ |
| | | this.model.departIds=""; |
| | | if (this.model.userIdentity !== 2) { |
| | | this.model.departIds = '' |
| | | } |
| | | let obj; |
| | | if(!this.model.id){ |
| | | this.model.id = this.userId; |
| | | obj=addUser(this.model); |
| | | }else{ |
| | | obj=editUser(this.model); |
| | | let obj |
| | | if (!this.model.id) { |
| | | this.model.id = this.userId |
| | | obj = addUser(this.model) |
| | | } else { |
| | | obj = editUser(this.model) |
| | | } |
| | | obj.then((res)=>{ |
| | | if(res.success){ |
| | | that.$message.success(res.message); |
| | | that.$emit('ok'); |
| | | }else{ |
| | | that.$message.warning(res.message); |
| | | 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.close(); |
| | | that.confirmLoading = false |
| | | that.close() |
| | | }) |
| | | }else{ |
| | | return false; |
| | | } else { |
| | | return false |
| | | } |
| | | }) |
| | | }, |
| | | handleCancel () { |
| | | handleCancel() { |
| | | this.close() |
| | | }, |
| | | validateToNextPassword (rule, value, callback) { |
| | | const confirmpassword=this.model.confirmpassword; |
| | | validateToNextPassword(rule, value, callback) { |
| | | const confirmpassword = this.model.confirmpassword |
| | | if (value && confirmpassword && value !== confirmpassword) { |
| | | callback('两次è¾å
¥çå¯ç ä¸ä¸æ ·ï¼'); |
| | | callback('两次è¾å
¥çå¯ç ä¸ä¸æ ·ï¼') |
| | | } |
| | | if (value && this.confirmDirty) { |
| | | this.$refs.form.validateField(['confirmpassword']); |
| | | this.$refs.form.validateField(['confirmpassword']) |
| | | } |
| | | callback(); |
| | | callback() |
| | | }, |
| | | compareToFirstPassword (rule, value, callback) { |
| | | compareToFirstPassword(rule, value, callback) { |
| | | if (value && value !== this.model.password) { |
| | | callback('两次è¾å
¥çå¯ç ä¸ä¸æ ·ï¼'); |
| | | callback('两次è¾å
¥çå¯ç ä¸ä¸æ ·ï¼') |
| | | } else { |
| | | callback() |
| | | } |
| | | }, |
| | | validatePhone(rule, value, callback){ |
| | | if(!value){ |
| | | validatePhone(rule, value, callback) { |
| | | if (!value) { |
| | | callback() |
| | | }else{ |
| | | if(new RegExp(/^1[3|4|5|6|7|8|9][0-9]\d{8}$/).test(value)){ |
| | | } else { |
| | | if (new RegExp(/^1[3|4|5|7|8|9][0-9]\d{8}$/).test(value)) { |
| | | var params = { |
| | | tableName: 'sys_user', |
| | | fieldName: 'phone', |
| | | fieldVal: value, |
| | | dataId: this.userId |
| | | }; |
| | | } |
| | | duplicateCheck(params).then((res) => { |
| | | if (res.success) { |
| | | callback() |
| | | } else { |
| | | callback("ææºå·å·²åå¨!") |
| | | callback('ææºå·å·²åå¨!') |
| | | } |
| | | }) |
| | | }else{ |
| | | callback("请è¾å
¥æ£ç¡®æ ¼å¼çææºå·ç !"); |
| | | } else { |
| | | callback('请è¾å
¥æ£ç¡®æ ¼å¼çææºå·ç !') |
| | | } |
| | | } |
| | | }, |
| | | validateEmail(rule, value, callback){ |
| | | if(!value){ |
| | | validateEmail(rule, value, callback) { |
| | | if (!value) { |
| | | callback() |
| | | }else{ |
| | | if(new RegExp(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/).test(value)){ |
| | | } else { |
| | | if (new RegExp(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/).test(value)) { |
| | | var params = { |
| | | tableName: 'sys_user', |
| | | fieldName: 'email', |
| | | fieldVal: value, |
| | | dataId: this.userId |
| | | }; |
| | | } |
| | | duplicateCheck(params).then((res) => { |
| | | console.log(res) |
| | | if (res.success) { |
| | | callback() |
| | | } else { |
| | | callback("é®ç®±å·²åå¨!") |
| | | callback('é®ç®±å·²åå¨!') |
| | | } |
| | | }) |
| | | }else{ |
| | | callback("请è¾å
¥æ£ç¡®æ ¼å¼çé®ç®±!") |
| | | } else { |
| | | callback('请è¾å
¥æ£ç¡®æ ¼å¼çé®ç®±!') |
| | | } |
| | | } |
| | | }, |
| | | validateUsername(rule, value, callback){ |
| | | validateUsername(rule, value, callback) { |
| | | var params = { |
| | | tableName: 'sys_user', |
| | | fieldName: 'username', |
| | | fieldVal: value, |
| | | dataId: this.userId |
| | | }; |
| | | } |
| | | duplicateCheck(params).then((res) => { |
| | | if (res.success) { |
| | | callback() |
| | | } else { |
| | | callback("ç¨æ·åå·²åå¨!") |
| | | callback('ç¨æ·åå·²åå¨!') |
| | | } |
| | | }) |
| | | }, |
| | | validateWorkNo(rule, value, callback){ |
| | | validateWorkNo(rule, value, callback) { |
| | | var params = { |
| | | tableName: 'sys_user', |
| | | fieldName: 'work_no', |
| | | fieldVal: value, |
| | | dataId: this.userId |
| | | }; |
| | | } |
| | | duplicateCheck(params).then((res) => { |
| | | if (res.success) { |
| | | callback() |
| | | } else { |
| | | callback("å·¥å·å·²åå¨!") |
| | | callback('å·¥å·å·²åå¨!') |
| | | } |
| | | }) |
| | | }, |
| | | handleConfirmBlur(e) { |
| | | const value = e.target.value; |
| | | const value = e.target.value |
| | | this.confirmDirty = this.confirmDirty || !!value |
| | | }, |
| | | beforeUpload: function(file){ |
| | | var fileType = file.type; |
| | | if(fileType.indexOf('image')<0){ |
| | | this.$message.warning('请ä¸ä¼ å¾ç'); |
| | | return false; |
| | | beforeUpload: function(file) { |
| | | var fileType = file.type |
| | | if (fileType.indexOf('image') < 0) { |
| | | this.$message.warning('请ä¸ä¼ å¾ç') |
| | | return false |
| | | } |
| | | //TODO éªè¯æä»¶å¤§å° |
| | | }, |
| | | identityChange(e){ |
| | | if(e.target.value===1){ |
| | | this.departIdShow=false; |
| | | }else{ |
| | | this.departIdShow=true; |
| | | identityChange(e) { |
| | | if (e.target.value === 1) { |
| | | this.departIdShow = false |
| | | } else { |
| | | this.departIdShow = true |
| | | } |
| | | }, |
| | | initDictData(dictCode) { |
| | | //æ ¹æ®åå
¸Code, åå§ååå
¸æ°ç» |
| | | ajaxGetDictItems(dictCode, null).then((res) => { |
| | | if (res.success) { |
| | | const regExp = new RegExp('^(?=.*[a-zA-Z])(?=.*\\\d)(?=.*[~!@#$%^&*()_+`\\-={}:";\'<>?,./]).{' + Number(res.result[0].value) + ',}$') |
| | | |
| | | this.validatorRules.password[0] = { |
| | | required: true, |
| | | pattern: regExp, |
| | | message: `å¯ç ç±${res.result[0].value}使°åã大å°å忝åç¹æ®ç¬¦å·ç»æ!` |
| | | } |
| | | |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | deviceSearch() { |
| | | this.$refs.selectDeviceModal.visible = true |
| | | this.$refs.selectDeviceModal.selectedRowKeys = [] |
| | | this.$refs.selectDeviceModal.selectedRows = [] |
| | | this.$refs.selectDeviceModal.checkedKeys = this.model.equipmentIds ? this.model.equipmentIds.split(',') : [] |
| | | }, |
| | | |
| | | /** |
| | | * 鿩已æè®¾å¤åç¹å»ç¡®å®æ¶è§¦å |
| | | * @param data 已鿩çè®¾å¤æ°ç» |
| | | */ |
| | | selectOK(data) { |
| | | console.log('data=', data) |
| | | this.$set(this.model, 'equipmentIds', data.join(',')) |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | <style scoped> |
| | | .avatar-uploader > .ant-upload { |
| | | width:104px; |
| | | height:104px; |
| | | width: 104px; |
| | | height: 104px; |
| | | } |
| | | |
| | | .ant-upload-select-picture-card i { |
| | | font-size: 49px; |
| | | color: #999; |
| | |
| | | color: #666; |
| | | } |
| | | |
| | | .ant-table-tbody .ant-table-row td{ |
| | | padding-top:10px; |
| | | padding-bottom:10px; |
| | | .ant-table-tbody .ant-table-row td { |
| | | padding-top: 10px; |
| | | padding-bottom: 10px; |
| | | } |
| | | |
| | | .drawer-bootom-button { |
| | | .drawer-bottom-button { |
| | | position: absolute; |
| | | bottom: 0; |
| | | bottom: -8px; |
| | | width: 100%; |
| | | border-top: 1px solid #e8e8e8; |
| | | padding: 10px 16px; |
| | |
| | | background: #fff; |
| | | border-radius: 0 0 2px 2px; |
| | | } |
| | | |
| | | /*ãJTC-502ã æ·»å ç¨æ·ä¸¤ä¸ªæ»å¨æ¡*/ |
| | | /deep/ .ant-drawer-body { |
| | | padding-bottom: 53px; |
| | | } |
| | | |
| | | </style> |
| | | </style> |
| | |
| | | // this.$router.push({ path: "/isps/userAnnouncement" }).catch(() => { |
| | | // console.log('ç»å½è·³è½¬é¦é¡µåºé,è¿ä¸ªé误ä»åªéæ¥ç') |
| | | // }) |
| | | this.$router.push({ path: '/dashboard/analysis' }).catch(() => { |
| | | this.$router.push({ path: '/mdc/base/DeviceBaseInfo' }).catch(() => { |
| | | console.log('ç»å½è·³è½¬é¦é¡µåºé,è¿ä¸ªé误ä»åªéæ¥ç') |
| | | }) |
| | | this.$notification.success({ |