¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="components-input-demo-presuffix"> |
| | | <!----> |
| | | <a-input @click="openModal" placeholder="请ç¹å»éæ©è½¦é´" v-model="textVals" readOnly :disabled="disabled"> |
| | | <a-icon slot="prefix" type="cluster" title="车é´éæ©æ§ä»¶"/> |
| | | <a-icon v-if="storeVals&&!disabled" slot="suffix" type="close-circle" @click="handleEmpty" title="æ¸
空"/> |
| | | </a-input> |
| | | <j-select-equipment-factory-modal |
| | | ref="innerDepartSelectModal" |
| | | :modal-width="modalWidth" |
| | | :multi="multi" |
| | | :rootOpened="rootOpened" |
| | | :factory-id="value" |
| | | :store="storeField" |
| | | :text="textField" |
| | | :treeProductOpera="treeProductOpera" |
| | | @ok="handleOK" |
| | | @initComp="initComp"> |
| | | |
| | | </j-select-equipment-factory-modal> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import JSelectEquipmentFactoryModal from './modal/JSelectEquipmentFactoryModal' |
| | | import { underLinetoHump } from '@comp/_util/StringUtil' |
| | | export default { |
| | | name: 'JSelectEquipmentFactory', |
| | | components:{ |
| | | JSelectEquipmentFactoryModal, |
| | | }, |
| | | props:{ |
| | | modalWidth:{ |
| | | type:Number, |
| | | default:500, |
| | | required:false |
| | | }, |
| | | multi:{ |
| | | type:Boolean, |
| | | default:false, |
| | | required:false |
| | | }, |
| | | rootOpened:{ |
| | | type:Boolean, |
| | | default:true, |
| | | required:false |
| | | }, |
| | | value:{ |
| | | type:String, |
| | | required:false |
| | | }, |
| | | disabled:{ |
| | | type: Boolean, |
| | | required: false, |
| | | default: false |
| | | }, |
| | | // èªå®ä¹è¿ååæ®µï¼é»è®¤è¿å id |
| | | customReturnField: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | backFactory: { |
| | | type: Boolean, |
| | | default: false, |
| | | required: false |
| | | }, |
| | | // åå¨å段 [key field] |
| | | store: { |
| | | type: String, |
| | | default: 'id', |
| | | required: false |
| | | }, |
| | | // æ¾ç¤ºå段 [label field] |
| | | text: { |
| | | type: String, |
| | | default: 'factoryName', |
| | | required: false |
| | | }, |
| | | treeProductOpera: { |
| | | type: Boolean, |
| | | default: false, |
| | | required: false |
| | | } |
| | | |
| | | }, |
| | | data(){ |
| | | return { |
| | | visible:false, |
| | | confirmLoading:false, |
| | | storeVals: '', //[key values] |
| | | textVals: '' //[label values] |
| | | } |
| | | }, |
| | | computed:{ |
| | | storeField(){ |
| | | let field = this.customReturnField |
| | | if(!field){ |
| | | field = this.store; |
| | | } |
| | | return underLinetoHump(field) |
| | | }, |
| | | textField(){ |
| | | return underLinetoHump(this.text) |
| | | } |
| | | }, |
| | | mounted(){ |
| | | this.storeVals = this.value |
| | | }, |
| | | watch:{ |
| | | value(val){ |
| | | this.storeVals = val |
| | | } |
| | | }, |
| | | methods:{ |
| | | initComp(textVals){ |
| | | this.textVals = textVals |
| | | }, |
| | | //è¿åéä¸ç车é´ä¿¡æ¯ |
| | | backProductInfo(){ |
| | | if(this.backFactory===true){ |
| | | //LOWCOD-2147 ãç¨æ·ç®¡çãéæ©é¨é¨åä¸çº§ä»¥åï¼è´è´£é¨é¨æ²¡ææ°æ®å¯é (é¶çæ¹é èªå®ä¹è¿ååæ®µå¯¼è´) |
| | | if(this.storeVals && this.storeVals.length>0){ |
| | | let arr1 = this.storeVals.split(',') |
| | | let arr2 = this.textVals.split(',') |
| | | let info = [] |
| | | for(let i=0;i<arr1.length;i++){ |
| | | info.push({ |
| | | value: arr1[i], |
| | | text: arr2[i] |
| | | }) |
| | | } |
| | | this.$emit('back', info) |
| | | } |
| | | } |
| | | }, |
| | | openModal(){ |
| | | this.$refs.innerDepartSelectModal.show() |
| | | }, |
| | | handleOK(rows) { |
| | | if (!rows && rows.length <= 0) { |
| | | this.textVals = '' |
| | | this.storeVals = '' |
| | | } else { |
| | | let arr1 = [] |
| | | let arr2 = [] |
| | | for(let dep of rows){ |
| | | arr1.push(dep[this.storeField]) |
| | | arr2.push(dep[this.textField]) |
| | | } |
| | | this.storeVals = arr1.join(',') |
| | | this.textVals = arr2.join(',') |
| | | } |
| | | this.$emit("change", this.storeVals) |
| | | this.backProductInfo() |
| | | }, |
| | | getDepartNames(){ |
| | | return this.departNames |
| | | }, |
| | | handleEmpty(){ |
| | | this.handleOK('') |
| | | } |
| | | }, |
| | | model: { |
| | | prop: 'value', |
| | | event: 'change' |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .components-input-demo-presuffix .anticon-close-circle { |
| | | cursor: pointer; |
| | | color: #ccc; |
| | | transition: color 0.3s; |
| | | font-size: 12px; |
| | | } |
| | | .components-input-demo-presuffix .anticon-close-circle:hover { |
| | | color: #f5222d; |
| | | } |
| | | .components-input-demo-presuffix .anticon-close-circle:active { |
| | | color: #666; |
| | | } |
| | | </style> |
| | |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | backProduction: { |
| | | backFactory: { |
| | | type: Boolean, |
| | | default: false, |
| | | required: false |
| | |
| | | this.textVals = textVals |
| | | }, |
| | | //è¿åéä¸ç车é´ä¿¡æ¯ |
| | | backProductInfo(){ |
| | | if(this.backProduction===true){ |
| | | backFactoryInfo(){ |
| | | if(this.backFactory===true){ |
| | | if(this.storeVals && this.storeVals.length>0){ |
| | | let arr1 = this.storeVals.split(',') |
| | | let arr2 = this.textVals.split(',') |
| | |
| | | this.textVals = arr2.join(',') |
| | | } |
| | | this.$emit("change", this.storeVals) |
| | | this.backProductInfo() |
| | | this.backFactoryInfo() |
| | | }, |
| | | |
| | | handleEmpty(){ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <j-modal |
| | | title="éæ©è½¦é´" |
| | | :width="modalWidth" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel" |
| | | @update:fullscreen="isFullscreen" |
| | | wrapClassName="j-factory-select-modal" |
| | | switchFullscreen |
| | | cancelText="å
³é"> |
| | | <a-spin tip="Loading..." :spinning="false"> |
| | | <a-input-search style="margin-bottom: 1px" placeholder="请è¾å
¥è½¦é´åç§°æå车è¿è¡æç´¢" @search="onSearch" /> |
| | | <a-tree |
| | | checkable |
| | | :class="treeScreenClass" |
| | | :treeData="treeData" |
| | | :checkStrictly="checkStrictly" |
| | | @check="onCheck" |
| | | @select="onSelect" |
| | | @expand="onExpand" |
| | | :autoExpandParent="autoExpandParent" |
| | | :expandedKeys="expandedKeys" |
| | | :checkedKeys="checkedKeys"> |
| | | |
| | | <template slot="title" slot-scope="{title}"> |
| | | <span v-if="title.indexOf(searchValue) > -1"> |
| | | {{title.substr(0, title.indexOf(searchValue))}} |
| | | <span style="color: #f50">{{searchValue}}</span> |
| | | {{title.substr(title.indexOf(searchValue) + searchValue.length)}} |
| | | </span> |
| | | <span v-else>{{title}}</span> |
| | | </template> |
| | | </a-tree> |
| | | </a-spin> |
| | | <!--åºé¨ç¶åå
³èæä½åç¡®è®¤åæ¶æé®--> |
| | | <!--<template slot="footer">--> |
| | | <!--<div class="drawer-bootom-button">--> |
| | | <!--<a-dropdown style="float: left" :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>--> |
| | | <!--<a-button>--> |
| | | <!--æ æä½ <a-icon type="up" />--> |
| | | <!--</a-button>--> |
| | | <!--</a-dropdown>--> |
| | | <!--<a-button @click="handleCancel" type="primary" style="margin-right: 0.8rem">å
³é</a-button>--> |
| | | <!--<a-button @click="handleSubmit" type="primary" >确认</a-button>--> |
| | | <!--</div>--> |
| | | <!--</template>--> |
| | | </j-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { queryFactoryTreeList } from '@/api/api' |
| | | import { getAction } from '@/api/manage' |
| | | export default { |
| | | name: 'JSelectEquipmentFactoryModal', |
| | | props:['modalWidth','multi','rootOpened','factoryId', 'store', 'text','treeOpera'], |
| | | data(){ |
| | | return { |
| | | visible:false, |
| | | confirmLoading:false, |
| | | treeData:[], |
| | | autoExpandParent:true, |
| | | expandedKeys:[], |
| | | dataList:[], |
| | | checkedKeys:[], |
| | | checkedRows:[], |
| | | searchValue:"", |
| | | checkStrictly: true, |
| | | fullscreen:false, |
| | | allTreeKeys:[], |
| | | url:{ |
| | | queryTreeIdList:'/base/factory/queryTreeIdList' |
| | | } |
| | | } |
| | | }, |
| | | created(){ |
| | | this.loadFactoryTree(); |
| | | }, |
| | | watch:{ |
| | | factoryId(){ |
| | | this.initDepartComponent() |
| | | }, |
| | | visible: { |
| | | handler() { |
| | | this.initDepartComponent(true) |
| | | } |
| | | } |
| | | }, |
| | | computed:{ |
| | | treeScreenClass() { |
| | | return { |
| | | 'my-dept-select-tree': true, |
| | | 'fullscreen': this.fullscreen, |
| | | } |
| | | }, |
| | | }, |
| | | methods:{ |
| | | loadFactoryTree(){ |
| | | getAction(this.url.queryTreeIdList).then(res => { |
| | | if (res.success) { |
| | | this.allTreeKeys = res.result |
| | | this.loadDepart() |
| | | } else { |
| | | // this.$message.warning(res.message) |
| | | this.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description:res.message |
| | | }); |
| | | } |
| | | }).finally(() => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | matterTree(data) { |
| | | for (var i = 0; i < data.length; i++) { |
| | | if(data[i].leaf == false){ |
| | | data[i].disabled = true |
| | | } |
| | | |
| | | // // è¿éé¢å°±æ¯ä½ å¤çæ°æ®çå°æ¹ |
| | | // data[i].width = '200' |
| | | if (data[i].children && data[i].children.length > 0) { |
| | | // childrenè¥ä¸ä¸ºç©ºæ°ç»ï¼åç»§ç» éå½è°ç¨ æ¬æ¹æ³ |
| | | this.matterTree(data[i].children) |
| | | } |
| | | } |
| | | return data |
| | | }, |
| | | show(){ |
| | | this.visible=true |
| | | this.checkedRows=[] |
| | | this.checkedKeys=[] |
| | | }, |
| | | loadDepart(){ |
| | | // è¿ä¸ªæ¹æ³æ¯æ¾å°ææçé¨é¨ä¿¡æ¯ |
| | | queryFactoryTreeList().then(res=>{ |
| | | if(res.success){ |
| | | let arr = [...res.result] |
| | | this.reWriterWithSlot(arr) |
| | | this.treeData = arr |
| | | this.initDepartComponent() |
| | | if(this.rootOpened){ |
| | | this.initExpandedKeys(res.result) |
| | | } |
| | | this.matterTree(this.treeData) |
| | | this.expandedKeys = this.allTreeKeys |
| | | } |
| | | }) |
| | | }, |
| | | initDepartComponent(flag){ |
| | | let arr = [] |
| | | //è¯¥æ¹æ³ä¸¤ä¸ªå°æ¹ç¨ 1.visibleæ¹åäºä»¶éæ°è®¾ç½®éä¸é¡¹ 2.ç»ä»¶ç¼è¾é¡µé¢åæ¾ |
| | | let fieldName = flag==true?'key':this.text |
| | | if(this.factoryId){ |
| | | let arr2 = this.factoryId.split(',') |
| | | for(let item of this.dataList){ |
| | | if(arr2.indexOf(item[this.store])>=0){ |
| | | arr.push(item[fieldName]) |
| | | } |
| | | } |
| | | } |
| | | if(flag==true){ |
| | | this.checkedKeys = [...arr] |
| | | }else{ |
| | | this.$emit("initComp", arr.join(',')) |
| | | } |
| | | }, |
| | | reWriterWithSlot(arr){ |
| | | for(let item of arr){ |
| | | if(item.children && item.children.length>0){ |
| | | this.reWriterWithSlot(item.children) |
| | | let temp = Object.assign({},item) |
| | | temp.children = {} |
| | | this.dataList.push(temp) |
| | | }else{ |
| | | this.dataList.push(item) |
| | | item.scopedSlots={ title: 'title' } |
| | | } |
| | | } |
| | | }, |
| | | initExpandedKeys(arr){ |
| | | if(arr && arr.length>0){ |
| | | let keys = [] |
| | | for(let item of arr){ |
| | | if(item.children && item.children.length>0){ |
| | | keys.push(item.id) |
| | | } |
| | | } |
| | | this.expandedKeys=[...keys] |
| | | //å
¨é¨keys |
| | | //this.allTreeKeys = [...keys] |
| | | }else{ |
| | | this.expandedKeys=[] |
| | | //this.allTreeKeys = [] |
| | | } |
| | | }, |
| | | onCheck (checkedKeys,info) { |
| | | if(!this.multi){ |
| | | let arr = checkedKeys.checked.filter(item => this.checkedKeys.indexOf(item) < 0) |
| | | this.checkedKeys = [...arr] |
| | | this.checkedRows = (this.checkedKeys.length === 0) ? [] : [info.node.dataRef] |
| | | }else{ |
| | | if(this.checkStrictly){ |
| | | this.checkedKeys = checkedKeys.checked |
| | | }else{ |
| | | this.checkedKeys = checkedKeys |
| | | } |
| | | this.checkedRows = this.getCheckedRows(this.checkedKeys) |
| | | } |
| | | }, |
| | | onSelect(selectedKeys,info) { |
| | | //åæ¶å
³èçæ
åµä¸æèµ°onSelectçé»è¾ |
| | | if(this.checkStrictly){ |
| | | let keys = [] |
| | | keys.push(selectedKeys[0]) |
| | | if(!this.checkedKeys || this.checkedKeys.length===0 || !this.multi){ |
| | | this.checkedKeys = [...keys] |
| | | this.checkedRows=[info.node.dataRef] |
| | | }else{ |
| | | let currKey = info.node.dataRef.key |
| | | if(this.checkedKeys.indexOf(currKey)>=0){ |
| | | this.checkedKeys = this.checkedKeys.filter(item=> item !==currKey) |
| | | }else{ |
| | | this.checkedKeys.push(...keys) |
| | | } |
| | | } |
| | | this.checkedRows = this.getCheckedRows(this.checkedKeys) |
| | | } |
| | | }, |
| | | onExpand (expandedKeys) { |
| | | this.expandedKeys = expandedKeys |
| | | this.autoExpandParent = false |
| | | }, |
| | | handleSubmit(){ |
| | | if(!this.checkedKeys || this.checkedKeys.length==0){ |
| | | this.$emit("ok",'') |
| | | }else{ |
| | | let checkRow = this.getCheckedRows(this.checkedKeys) |
| | | let keyStr = this.checkedKeys.join(",") |
| | | this.$emit("ok", checkRow, keyStr) |
| | | } |
| | | this.handleClear() |
| | | }, |
| | | handleCancel(){ |
| | | this.handleClear() |
| | | }, |
| | | handleClear(){ |
| | | this.visible=false |
| | | this.checkedKeys=[] |
| | | }, |
| | | getParentKey(currKey,treeData){ |
| | | let parentKey |
| | | for (let i = 0; i < treeData.length; i++) { |
| | | const node = treeData[i] |
| | | if (node.children) { |
| | | if (node.children.some(item => item.key === currKey)) { |
| | | parentKey = node.key |
| | | } else if (this.getParentKey(currKey, node.children)) { |
| | | parentKey = this.getParentKey(currKey, node.children) |
| | | } |
| | | } |
| | | } |
| | | return parentKey |
| | | }, |
| | | onSearch(value){ |
| | | const expandedKeys = this.dataList.map((item) => { |
| | | if (item.title.indexOf(value) > -1) { |
| | | return this.getParentKey(item.key,this.treeData) |
| | | } |
| | | return null |
| | | }).filter((item, i, self) => item && self.indexOf(item) === i) |
| | | |
| | | Object.assign(this, { |
| | | expandedKeys, |
| | | searchValue: value, |
| | | autoExpandParent: true, |
| | | }) |
| | | |
| | | |
| | | }, |
| | | // æ ¹æ® checkedKeys è·å rows |
| | | getCheckedRows(checkedKeys) { |
| | | const forChildren = (list, key) => { |
| | | for (let item of list) { |
| | | if (item.id === key) { |
| | | return item |
| | | } |
| | | if (item.children instanceof Array) { |
| | | let value = forChildren(item.children, key) |
| | | if (value != null) { |
| | | return value |
| | | } |
| | | } |
| | | } |
| | | return null |
| | | } |
| | | |
| | | let rows = [] |
| | | for (let key of checkedKeys) { |
| | | let row = forChildren(this.treeData, key) |
| | | if (row != null) { |
| | | rows.push(row) |
| | | } |
| | | } |
| | | return rows |
| | | }, |
| | | switchCheckStrictly (v) { |
| | | if(v==1){ |
| | | this.checkStrictly = false |
| | | }else if(v==2){ |
| | | this.checkStrictly = true |
| | | } |
| | | }, |
| | | isFullscreen(val){ |
| | | this.fullscreen=val |
| | | } |
| | | } |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | // éå¶é¨é¨éæ©æ é«åº¦ï¼é¿å
é¨é¨å¤ªå¤æ¶ç¹å»ç¡®å®ä¸ä¾¿ |
| | | .my-dept-select-tree{ |
| | | height:350px; |
| | | |
| | | &.fullscreen{ |
| | | height: calc(100vh - 250px); |
| | | } |
| | | overflow-y: scroll; |
| | | } |
| | | .drawer-bootom-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> |
| | |
| | | import Production from './modules/Production' |
| | | //é¨é¨æ æé |
| | | import DepartTree from './modules/DepartTree' |
| | | import factory from './modules/factory' |
| | | |
| | | Vue.use(Vuex) |
| | | |
| | |
| | | enhance, |
| | | online, |
| | | Production, |
| | | factory, |
| | | DepartTree |
| | | }, |
| | | state: { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from 'vue' |
| | | import { SET_FACTORY } from "@/store/mutation-types" |
| | | import { getAction } from '@/api/manage' |
| | | |
| | | const Factory = { |
| | | state: { |
| | | token: '', |
| | | //产线æ |
| | | FactoryTree:[] |
| | | |
| | | }, |
| | | |
| | | mutations: { |
| | | SET_TOKEN: (state, token) => { |
| | | state.token = token |
| | | }, |
| | | SET_FACTORY:(state,FactoryTree) => { |
| | | state.FactoryTree = FactoryTree |
| | | } |
| | | }, |
| | | |
| | | actions: { |
| | | // 产线æ |
| | | QueryFactory({ commit }) { |
| | | return new Promise((resolve, reject) => { |
| | | getAction("/mdc/mdcEquipment/queryTreeListByFactory").then(response => { |
| | | if(response.success){ |
| | | const result = response.result |
| | | Vue.ls.set(SET_FACTORY, result) |
| | | commit('SET_FACTORY', result) |
| | | resolve(response) |
| | | }else{ |
| | | resolve(response) |
| | | } |
| | | }).catch(error => { |
| | | reject(error) |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | export default Factory |
| | |
| | | export const SYS_PRODUCTION = 'SYS_PRODUCTION' |
| | | //é¨é¨æ æé |
| | | export const SYS_DEPARTTREE = 'SYS_DEPARTTREE' |
| | | |
| | | export const SET_FACTORY = 'SET_FACTORY' |
| | |
| | | <script> |
| | | import UserModal from './modules/EquipmentList/UserModal' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import { queryProductionTreeListByMdc } from '@/api/api' |
| | | import { queryFactoryTreeList } from '@/api/api' |
| | | import { mapActions } from 'vuex' |
| | | |
| | | export default { |
| | |
| | | width: 200 |
| | | // sorter: true |
| | | }, |
| | | { |
| | | title: 'å®è£
ä½ç½®', |
| | | align: 'center', |
| | | width: 200, |
| | | dataIndex: 'equipmentAddress' |
| | | }, |
| | | // { |
| | | // title: 'å®è£
ä½ç½®', |
| | | // align: 'center', |
| | | // width: 200, |
| | | // dataIndex: 'equipmentAddress' |
| | | // }, |
| | | { |
| | | title: '车é´', |
| | | align: 'center', |
| | |
| | | * è°ç¨æ¥å£è·åæ¥è¯¢åºåè½¦é´æ å表 |
| | | */ |
| | | getWorkshopListByApi() { |
| | | queryProductionTreeListByMdc().then(res => { |
| | | queryFactoryTreeList().then(res => { |
| | | if (res.success) { |
| | | this.workshopTreeData = res.result |
| | | this.treeDefaultExpandedKeys = [...res.result].map(item => item.key) |
| | |
| | | |
| | | <!--车é´åé
--> |
| | | <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> |
| | | <j-select-production v-model="model.selectedFactory" :multi="true" @back="backProductionInfo" :backProduction="true" :treeProductOpera="true"></j-select-production> |
| | | </a-form-model-item> |
| | | |
| | | <a-form-model-item label="è´è´£é¨é¨" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="departIdShow==true"> |
| | |
| | | this.resetScreenSize(); |
| | | that.userId = record.id; |
| | | that.model = Object.assign({},{selectedroles:'',selecteddeparts:''}, record); |
| | | that.model = Object.assign({},{selectedroles:'',selectedProduction:''}, record); |
| | | that.model = Object.assign({},{selectedroles:'',selectedFactory:''}, record); |
| | | |
| | | //身份为ä¸çº§æ¾ç¤ºè´è´£é¨é¨ï¼å¦å䏿¾ç¤º |
| | | if(this.model.userIdentity==2){ |
| | |
| | | } |
| | | |
| | | that.model.selecteddeparts = selectDepartKeys.join(",") |
| | | that.model.selectedProduction = selectDepartKeys.join(",") |
| | | that.model.selectedFactory = selectDepartKeys.join(",") |
| | | |
| | | that.nextDepartOptions=departOptions; |
| | | console.log('that.nextDepartOptions=',that.nextDepartOptions) |
| | |
| | | }) |
| | | } |
| | | |
| | | that.model.selectedProduction = selectProductKeys.join(",") |
| | | that.model.selectedFactory = selectProductKeys.join(",") |
| | | |
| | | that.nextProductionOptions=ProductionOptions; |
| | | console.log('that.nextProductionOptions=',that.nextProductionOptions) |
| | |
| | | }) |
| | | }, |
| | | backProductionInfo(info) { |
| | | this.model.productionIds = this.model.selectedProduction; |
| | | this.model.productionIds = this.model.selectedFactory; |
| | | this.nextProductionOptions = info.map((item,index,arr)=>{ |
| | | let c = {label:item.text, value: item.value+""} |
| | | return c; |
| | |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="车é´åé
" v-show="!productionDisabled" |
| | | ref="selectedProduction" prop="selectedProduction"> |
| | | <a-form-model-item label="车é´åé
" v-show="!factoryDisabled" |
| | | ref="selectedFactory" prop="selectedFactory"> |
| | | <!--<j-select-equipment-production v-decorator="['selectedProduction',{rules:[{required:true,message:'è¯·éæ©è½¦é´!'}]}]" :multi="false" @back="backProductionInfo" :backProduction="true" :treeProductOpera="true"></j-select-equipment-production>--> |
| | | <j-select-equipment-production :disabled="disableSubmit" v-model="model.selectedProduction" :multi="false" |
| | | @back="backProductionInfo" :backProduction="true" |
| | | :treeProductOpera="true"></j-select-equipment-production> |
| | | <j-select-equipment-factory :disabled="disableSubmit" v-model="model.selectedFactory" :multi="false" |
| | | @back="backFactoryInfo" :backFactory="true" |
| | | :treeProductOpera="true"></j-select-equipment-factory> |
| | | </a-form-model-item> |
| | | |
| | | </a-col> |
| | |
| | | </a-row> |
| | | |
| | | <a-row :gutter="24"> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="ç³»ç»ç±»å"> |
| | | <j-dict-select-tag placeholder="è¯·éæ©ç³»ç»ç±»å" :triggerChange="true" dictCode="system_type" |
| | | :disabled="disableSubmit" |
| | | v-model="model.systemType" allow-clear/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <!-- <a-col :span="12">--> |
| | | <!-- <a-form-model-item label="ç³»ç»ç±»å">--> |
| | | <!-- <j-dict-select-tag placeholder="è¯·éæ©ç³»ç»ç±»å" :triggerChange="true" dictCode="system_type"--> |
| | | <!-- :disabled="true"--> |
| | | <!-- v-model="model.systemType" allow-clear/>--> |
| | | <!-- </a-form-model-item>--> |
| | | <!-- </a-col>--> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="æåº"> |
| | | <a-input :disabled="disableSubmit" :readOnly="disableSubmit" placeholder="请è¾å
¥æåº" |
| | |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row :gutter="24"> |
| | | <a-col :span='12' v-if="systemType"> |
| | | <a-form-model-item label="ç³»ç»ç±»å"> |
| | | <a-radio-group name="radioGroup" v-model="systemValue" :disabled="disableSubmit"> |
| | | <a-radio value="1">DNC</a-radio> |
| | | <a-radio value="2">MDC</a-radio> |
| | | <a-radio value="3">éç¨</a-radio> |
| | | </a-radio-group> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span='12'> |
| | | <a-form-model-item label="å®è£
ä½ç½®"> |
| | | <a-input v-model="model.equipmentAddress" allow-clear placeholder="请è¾å
¥å®è£
ä½ç½®" :disabled="disableSubmit"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | <!-- <a-row :gutter="24">--> |
| | | <!-- <a-col :span='12' v-if="systemType">--> |
| | | <!-- <a-form-model-item label="ç³»ç»ç±»å">--> |
| | | <!-- <a-radio-group name="radioGroup" v-model="systemValue" :disabled="disableSubmit">--> |
| | | <!-- <a-radio value="1">DNC</a-radio>--> |
| | | <!-- <a-radio value="2">MDC</a-radio>--> |
| | | <!-- <a-radio value="3">éç¨</a-radio>--> |
| | | <!-- </a-radio-group>--> |
| | | <!-- </a-form-model-item>--> |
| | | <!-- </a-col>--> |
| | | <!-- <a-col :span='12'>--> |
| | | <!-- <a-form-model-item label="å®è£
ä½ç½®">--> |
| | | <!-- <a-input v-model="model.equipmentAddress" allow-clear placeholder="请è¾å
¥å®è£
ä½ç½®" :disabled="disableSubmit"/>--> |
| | | <!-- </a-form-model-item>--> |
| | | <!-- </a-col>--> |
| | | <!-- </a-row>--> |
| | | |
| | | |
| | | <a-row :gutter="24"> |
| | |
| | | import { addEquipment, editEquipment } from '@/api/api' |
| | | import { disabledAuthFilter } from '@/utils/authFilter' |
| | | import { duplicateCheck } from '@/api/api' |
| | | import JSelectEquipmentProduction from '../../../../../components/jeecgbiz/JSelectEquipmentProduction' |
| | | import JSelectProduction from '../../../../../components/jeecgbiz/JSelectProduction' |
| | | import JSelectEquipmentFactory from '../../../../../components/jeecgbiz/JSelectEquipmentFactory' |
| | | import JSelectFactory from '../../../../../components/jeecgbiz/JSelectFactory' |
| | | import DeviceListModel from './DeviceListModal' |
| | | import JSelectEquipmentDepart from '../../../../../components/jeecgbiz/JSelectEquipmentDepart' |
| | | import { mapActions } from 'vuex' |
| | |
| | | export default { |
| | | name: 'UserModal', |
| | | components: { |
| | | JSelectProduction, |
| | | JSelectFactory, |
| | | JSelectEquipmentDepart, |
| | | JSelectEquipmentProduction, |
| | | JSelectEquipmentFactory, |
| | | DeviceListModel |
| | | }, |
| | | data() { |
| | | return { |
| | | departDisabled: false, //æ¯å¦æ¯æçé¨é¨è°ç¨è¯¥é¡µé¢ |
| | | productionDisabled: false, //æ¯å¦æ¯æç车é´è°ç¨è¯¥é¡µé¢ |
| | | factoryDisabled: false, //æ¯å¦æ¯æç车é´è°ç¨è¯¥é¡µé¢ |
| | | roleDisabled: false, //æ¯å¦æ¯è§è²ç»´æ¤è°ç¨è¯¥é¡µé¢ |
| | | modalWidth: 800, |
| | | drawerWidth: 700, |
| | |
| | | ], |
| | | // trigger: 'blur' // è§¦åæ¹å¼ |
| | | |
| | | selectedProduction: |
| | | selectedFactory: |
| | | [ |
| | | { |
| | | required: true, message: 'è¯·éæ©è½¦é´ï¼' |
| | |
| | | fileUpload: window._CONFIG['domianURL'] + '/sys/common/upload', |
| | | userWithDepart: '/mdc/mdcEquipment/equipmentDepartList', // å¼å
¥ä¸ºæå®ç¨æ·æ¥çé¨é¨ä¿¡æ¯éè¦çurl |
| | | //å¼å
¥ä¸ºæå®ç¨æ·æ¥ç车é´ä¿¡æ¯éè¦çurl |
| | | userProductionList: '/mdc/mdcEquipment/equipmentProductionList', |
| | | equipmentFactoryList: '/mdc/mdcEquipment/equipmentFactoryList', |
| | | userId: '/sys/user/generateUserId', // å¼å
¥çææ·»å ç¨æ·æ
åµä¸çurl |
| | | syncUserByUserName: '/act/process/extActProcess/doSyncUserByUserName',//åæ¥ç¨æ·å°å·¥ä½æµ |
| | | queryTenantList: '/sys/tenant/queryList', |
| | |
| | | this.headers = { 'X-Access-Token': token } |
| | | this.queryGroup() |
| | | this.queryTreeData() |
| | | this.getAppPlatformName() |
| | | // this.getAppPlatformName() |
| | | // this.initRoleList() |
| | | // this.initTenantList() |
| | | }, |
| | |
| | | }).finally(() => { |
| | | }) |
| | | }, |
| | | getAppPlatformName() { |
| | | getAction(`/system/sysParams/query/by/settingKey?settingKey=system_type`).then(res => { |
| | | if (res.success) { |
| | | this.systemType = res.result.settingValue === '0' |
| | | } |
| | | }) |
| | | }, |
| | | // getAppPlatformName() { |
| | | // getAction(`/system/sysParams/query/by/settingKey?settingKey=system_type`).then(res => { |
| | | // if (res.success) { |
| | | // this.systemType = res.result.settingValue === '0' |
| | | // } |
| | | // }) |
| | | // }, |
| | | queryGroup() { |
| | | getAction(this.url.queryEquipmentType).then(res => { |
| | | if (res.success) { |
| | |
| | | // this.model = Object.assign({}, record) |
| | | |
| | | this.$nextTick(() => { |
| | | this.form.setFieldsValue(pick(that.model, 'selectedDeparts', 'selectedProduction', 'equipmentId', 'equipmentName', 'equipmentModel', 'equipmentType', 'equipmentIp', 'dataPort', |
| | | this.form.setFieldsValue(pick(that.model, 'selectedDeparts', 'selectedFactory', 'equipmentId', 'equipmentName', 'equipmentModel', 'equipmentType', 'equipmentIp', 'dataPort', |
| | | 'driveType', 'sortNo', 'remark', 'systemVersion', 'devicePower', 'controlSystem', 'saveTableName', 'systemValue', 'equipmentAddress')) |
| | | }) |
| | | if (record.hasOwnProperty('id')) { |
| | |
| | | } |
| | | }) |
| | | |
| | | getAction(that.url.userProductionList, { equipmentId: userid }).then((res) => { |
| | | getAction(that.url.equipmentFactoryList, { equipmentId: userid }).then((res) => { |
| | | if (res.success) { |
| | | // console.log(res.result) |
| | | let ProductionOptions = [] |
| | | let factoryOptions = [] |
| | | let selectProductKeys = [] |
| | | // console.log(res.result) |
| | | for (let i = 0; i < res.result.length; i++) { |
| | | selectProductKeys.push(res.result[i].key) |
| | | //æ°å¢è´è´£é¨é¨éæ©ä¸ææ¡ |
| | | ProductionOptions.push({ |
| | | factoryOptions.push({ |
| | | value: res.result[i].key, |
| | | label: res.result[i].title |
| | | }) |
| | | } |
| | | |
| | | that.model.selectedProduction = selectProductKeys.join(',') |
| | | that.model.selectedFactory = selectProductKeys.join(',') |
| | | |
| | | that.nextProductionOptions = ProductionOptions |
| | | that.nextProductionOptions = factoryOptions |
| | | // console.log('that.nextProductionOptions=',that.nextProductionOptions) |
| | | } |
| | | }) |
| | |
| | | return c |
| | | }) |
| | | }, |
| | | backProductionInfo(info) { |
| | | backFactoryInfo(info) { |
| | | // console.log(info) |
| | | this.model.productionIds = this.model.selectedProduction |
| | | this.model.productionIds = this.model.selectedFactory |
| | | this.nextProductionOptions = info.map((item, index, arr) => { |
| | | let c = { label: item.text, value: item.value + '' } |
| | | return c |
| | |
| | | } |
| | | , |
| | | methods: { |
| | | ...mapActions(['QueryProduction']), |
| | | ...mapActions(['QueryFactory']), |
| | | getCurrSelectedTitle() { |
| | | return !this.currSelected.title ? '' : this.currSelected.title |
| | | }, |
| | |
| | | queryTreeData() { |
| | | this.loading = true |
| | | this.cardLoading = true |
| | | this.QueryProduction().then(res => { |
| | | this.QueryFactory().then(res => { |
| | | if (res.success) { |
| | | this.dataList = [] |
| | | this.allTreeKeys = [] |
| | |
| | | </a-form-model-item> |
| | | |
| | | <!--车é´åé
--> |
| | | <!-- <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="车é´åé
" |
| | | label="ä¸å¿åé
" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | v-show="!productionDisabled" |
| | | v-show="!factoryDisabled" |
| | | > |
| | | <j-select-production |
| | | v-model="model.selectedProduction" |
| | | <j-select-factory |
| | | v-model="model.selectedFactorys" |
| | | :multi="true" |
| | | @back="backProductionInfo" |
| | | :backProduction="true" |
| | | :treeProductOpera="true" |
| | | ></j-select-production> |
| | | @back="backFactoryInfo" |
| | | :backFactory="true" |
| | | :treeFactoryOpera="true" |
| | | ></j-select-factory> |
| | | </a-form-model-item> |
| | | |
| | | |
| | | <a-form-model-item |
| | | label="éæ©è®¾å¤" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | v-show="!productionDisabled" |
| | | > |
| | | <a-tooltip title="éæ©è®¾å¤åï¼ç¨æ·å°±åªæè¿äºè®¾å¤çæéï¼ä¸éæ©è®¾å¤ï¼å伿 ¹æ®è½¦é´åé
æ§å¶è®¾å¤çæéï¼" |
| | | placement="topRight"> |
| | | <a-input-search |
| | | :readOnly="true" |
| | | v-model="model.equipmentIds" |
| | | @search="deviceSearch" |
| | | enter-button |
| | | placeholder="è¯·éæ©è®¾å¤" |
| | | :disabled="!model.selectedProduction" |
| | | /> |
| | | </a-tooltip> |
| | | </a-form-model-item> |
| | | <!-- <a-form-model-item--> |
| | | <!-- label="éæ©è®¾å¤"--> |
| | | <!-- :labelCol="labelCol"--> |
| | | <!-- :wrapperCol="wrapperCol"--> |
| | | <!-- v-show="!productionDisabled"--> |
| | | <!-- >--> |
| | | <!-- <a-tooltip title="éæ©è®¾å¤åï¼ç¨æ·å°±åªæè¿äºè®¾å¤çæéï¼ä¸éæ©è®¾å¤ï¼å伿 ¹æ®è½¦é´åé
æ§å¶è®¾å¤çæéï¼"--> |
| | | <!-- placement="topRight">--> |
| | | <!-- <a-input-search--> |
| | | <!-- :readOnly="true"--> |
| | | <!-- v-model="model.equipmentIds"--> |
| | | <!-- @search="deviceSearch"--> |
| | | <!-- enter-button--> |
| | | <!-- placeholder="è¯·éæ©è®¾å¤"--> |
| | | <!-- :disabled="!model.selectedProduction"--> |
| | | <!-- />--> |
| | | <!-- </a-tooltip>--> |
| | | <!-- </a-form-model-item>--> |
| | | |
| | | |
| | | <!--<a-form-model-item--> |
| | |
| | | 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 JSelectFactory from '../../../components/jeecgbiz/JSelectFactory' |
| | | import { mapActions } from 'vuex' |
| | | import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api' |
| | | import SelectDeviceModal from './SelectDeviceModal' |
| | |
| | | name: 'UserModal', |
| | | components: { |
| | | SelectDeviceModal, |
| | | JSelectProduction |
| | | JSelectFactory |
| | | }, |
| | | data() { |
| | | return { |
| | | departDisabled: false, //æ¯å¦æ¯æçé¨é¨è°ç¨è¯¥é¡µé¢ |
| | | productionDisabled: false, //æ¯å¦æ¯æç车é´è°ç¨è¯¥é¡µé¢ |
| | | factoryDisabled: false, //æ¯å¦æ¯æç车é´è°ç¨è¯¥é¡µé¢ |
| | | roleDisabled: false, //æ¯å¦æ¯è§è²ç»´æ¤è°ç¨è¯¥é¡µé¢ |
| | | modalWidth: 800, |
| | | drawerWidth: 700, |
| | |
| | | departIdShow: false, |
| | | title: 'æä½', |
| | | visible: false, |
| | | model: {}, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | |
| | | fileUpload: window._CONFIG['domianURL'] + 'sys/common/upload', |
| | | userWithDepart: '/sys/user/userDepartList', // å¼å
¥ä¸ºæå®ç¨æ·æ¥çé¨é¨ä¿¡æ¯éè¦çurl |
| | | //å¼å
¥ä¸ºæå®ç¨æ·æ¥ç车é´ä¿¡æ¯éè¦çurl |
| | | userProductionList: '/sys/user/userProductionList', |
| | | userFactoryList: '/sys/user/userFactorysList', |
| | | userId: '/sys/user/generateUserId', // å¼å
¥çææ·»å ç¨æ·æ
åµä¸çurl |
| | | syncUserByUserName: '/act/process/extActProcess/doSyncUserByUserName',//åæ¥ç¨æ·å°å·¥ä½æµ |
| | | queryTenantList: '/sys/tenant/queryList' |
| | |
| | | tenantsOptions: [], |
| | | rolesOptions: [], |
| | | nextDepartOptions: [], |
| | | nextProductionOptions: [], |
| | | nextFactoryOptions: [], |
| | | isDepartType: '', |
| | | model: { |
| | | selectedProduction: '' |
| | | selectedFactorys: '' |
| | | } |
| | | } |
| | | }, |
| | |
| | | if (value) this.initDictData('password_length') |
| | | } |
| | | }, |
| | | 'model.selectedProduction': { |
| | | 'model.selectedFactorys': { |
| | | handler(newVal, oldVal) { |
| | | if (newVal && this.$refs.selectDeviceModal) { |
| | | // å¦æè½¦é´éæ©ååä¸ä¸è´åéç½®éæ©è®¾å¤ |
| | |
| | | userIdentity: 1, |
| | | selectedroles: '', |
| | | selecteddeparts: '', |
| | | selectedProduction: '' |
| | | selectedFactorys: '' |
| | | }) |
| | | }, |
| | | edit(record) { |
| | |
| | | if (record.hasOwnProperty('id')) { |
| | | that.getUserRoles(record.id) |
| | | that.getUserDeparts(record.id) |
| | | that.getUserFactorys(record.id) |
| | | } |
| | | }, |
| | | isDisabledAuth(code) { |
| | |
| | | that.nextDepartOptions = departOptions |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | getUserFactorys(userid) { |
| | | let that = this |
| | | // è·å车é´åé
|
| | | getAction(that.url.userProductionList, { userId: userid }).then((res) => { |
| | | getAction(that.url.userFactoryList, { userId: userid }).then((res) => { |
| | | if (res.success) { |
| | | let ProductionOptions = [] |
| | | let selectProductKeys = [] |
| | | let factoryOptions = [] |
| | | let selectFactoryKeys = [] |
| | | for (let i = 0; i < res.result.length; i++) { |
| | | selectProductKeys.push(res.result[i].key) |
| | | selectFactoryKeys.push(res.result[i].key) |
| | | //æ°å¢è´è´£é¨é¨éæ©ä¸ææ¡ |
| | | ProductionOptions.push({ |
| | | factoryOptions.push({ |
| | | value: res.result[i].key, |
| | | label: res.result[i].title |
| | | }) |
| | | } |
| | | |
| | | this.$set(this.model, 'selectedProduction', selectProductKeys.join(',')) |
| | | that.nextProductionOptions = ProductionOptions |
| | | this.$set(this.model, 'selectedFactorys', selectFactoryKeys.join(',')) |
| | | that.nextFactoryOptions = factoryOptions |
| | | } |
| | | }) |
| | | //车é´çurl |
| | | }, |
| | | backDepartInfo(info) { |
| | | this.model.departIds = this.model.selecteddeparts |
| | |
| | | return c |
| | | }) |
| | | }, |
| | | backProductionInfo(info) { |
| | | this.model.productionIds = this.model.selectedProduction |
| | | this.nextProductionOptions = info.map((item, index, arr) => { |
| | | backFactoryInfo(info) { |
| | | this.model.productionIds = this.model.selectedFactorys |
| | | this.nextFactoryOptions = info.map((item, index, arr) => { |
| | | let c = { label: item.text, value: item.value + '' } |
| | | return c |
| | | }) |
| | |
| | | refresh() { |
| | | this.userId = '' |
| | | this.nextDepartOptions = [] |
| | | this.nextProductionOptions = [] |
| | | this.nextFactoryOptions = [] |
| | | this.departIdShow = false |
| | | }, |
| | | close() { |
| | |
| | | this.visible = false |
| | | this.disableSubmit = false |
| | | this.nextDepartOptions = [] |
| | | this.nextProductionOptions = [] |
| | | this.nextFactoryOptions = [] |
| | | this.departIdShow = false |
| | | this.$refs.form.resetFields() |
| | | }, |