1、用户管理页面表单填写界面新增选择设备功能
2、避免命名冲突,更改原选择设备组件名称为selectDeviceDrawer,用户管理页面选择设备组件名称为selectDeviceModal
| | |
| | | </a-form> |
| | | </a-spin> |
| | | <holiday-management-modal-list ref="deviceRepairListModel" @sendSelectionRows="getDeviceRows"></holiday-management-modal-list> |
| | | <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | </a-modal> |
| | | </template> |
| | | |
| | |
| | | import { |
| | | duplicateCheck |
| | | } from '@/api/api' |
| | | import SelectDeviceModal from '../../../../system/modules/SelectDeviceModal' |
| | | import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer' |
| | | |
| | | export default { |
| | | name: 'HolidayManagementModal', |
| | | components: { SelectDeviceModal, HolidayManagementModalList}, |
| | | components: { SelectDeviceDrawer, HolidayManagementModalList}, |
| | | props: {}, |
| | | data() { |
| | | return { |
| | |
| | | // }) |
| | | }, |
| | | deviceSearch() { |
| | | this.$refs.selectDeviceModal.visible = true |
| | | this.$refs.selectDeviceModal.selectedRowKeys = [] |
| | | this.$refs.selectDeviceModal.selectedRows = [] |
| | | this.$refs.selectDeviceModal.checkedKeys = this.form.getFieldValue('equipmentIds') ? this.form.getFieldValue('equipmentIds').split(',') : [] |
| | | this.$refs.selectDeviceDrawer.visible = true |
| | | this.$refs.selectDeviceDrawer.selectedRowKeys = [] |
| | | this.$refs.selectDeviceDrawer.selectedRows = [] |
| | | this.$refs.selectDeviceDrawer.checkedKeys = this.form.getFieldValue('equipmentIds') ? this.form.getFieldValue('equipmentIds').split(',') : [] |
| | | }, |
| | | //çº§èæ¡onChangeäºä»¶ |
| | | // onChange(value) { |
| | |
| | | </a-form> |
| | | </a-spin> |
| | | <!--<torqueconfiguration-modal-list ref="deviceRepairListModel" @sendSelectionRows="getDeviceRows"></torqueconfiguration-modal-list>--> |
| | | <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | </a-modal> |
| | | </template> |
| | | |
| | |
| | | import { |
| | | duplicateCheck |
| | | } from '@/api/api' |
| | | import SelectDeviceModal from '../../../../system/modules/SelectDeviceModal' |
| | | import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer' |
| | | |
| | | export default { |
| | | name: 'TorqueconfigurationModal', |
| | | components: { SelectDeviceModal, TorqueconfigurationModalList}, |
| | | components: { SelectDeviceDrawer, TorqueconfigurationModalList}, |
| | | props: {}, |
| | | data() { |
| | | return { |
| | |
| | | // // }) |
| | | // }, |
| | | deviceSearch() { |
| | | this.$refs.selectDeviceModal.visible = true |
| | | this.$refs.selectDeviceModal.selectedRowKeys = [] |
| | | this.$refs.selectDeviceModal.selectedRows = [] |
| | | this.$refs.selectDeviceModal.checkedKeys = this.form.getFieldValue('equipmentId') ? this.form.getFieldValue('equipmentId').split(',') : [] |
| | | this.$refs.selectDeviceDrawer.visible = true |
| | | this.$refs.selectDeviceDrawer.selectedRowKeys = [] |
| | | this.$refs.selectDeviceDrawer.selectedRows = [] |
| | | this.$refs.selectDeviceDrawer.checkedKeys = this.form.getFieldValue('equipmentId') ? this.form.getFieldValue('equipmentId').split(',') : [] |
| | | }, |
| | | //çº§èæ¡onChangeäºä»¶ |
| | | // onChange(value) { |
| | |
| | | </a-row> |
| | | </a-form> |
| | | </a-spin> |
| | | <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | </a-modal> |
| | | </template> |
| | | |
| | |
| | | import { |
| | | duplicateCheck |
| | | } from '@/api/api' |
| | | import SelectDeviceModal from '../../../../system/modules/SelectDeviceModal' |
| | | import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer' |
| | | |
| | | export default { |
| | | name: 'TorqueconfigurationModal', |
| | | components: { SelectDeviceModal }, |
| | | components: { SelectDeviceDrawer }, |
| | | props: {}, |
| | | data() { |
| | | return { |
| | |
| | | // }) |
| | | }, |
| | | deviceSearch() { |
| | | this.$refs.selectDeviceModal.visible = true |
| | | this.$refs.selectDeviceModal.selectedRowKeys = [] |
| | | this.$refs.selectDeviceModal.selectedRows = [] |
| | | this.$refs.selectDeviceModal.checkedKeys = this.form.getFieldValue('equipmentIds') ? this.form.getFieldValue('equipmentIds').split(',') : [] |
| | | this.$refs.selectDeviceDrawer.visible = true |
| | | this.$refs.selectDeviceDrawer.selectedRowKeys = [] |
| | | this.$refs.selectDeviceDrawer.selectedRows = [] |
| | | this.$refs.selectDeviceDrawer.checkedKeys = this.form.getFieldValue('equipmentIds') ? this.form.getFieldValue('equipmentIds').split(',') : [] |
| | | }, |
| | | //çº§èæ¡onChangeäºä»¶ |
| | | // onChange(value) { |
| | |
| | | </a-row> |
| | | </a-form> |
| | | </a-spin> |
| | | <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | </a-modal> |
| | | </template> |
| | | |
| | |
| | | import { |
| | | duplicateCheck |
| | | } from '@/api/api' |
| | | import SelectDeviceModal from '../../../../system/modules/SelectDeviceModal' |
| | | import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer' |
| | | |
| | | export default { |
| | | name: 'UnplannedDowntimemManagerModal', |
| | | components: { SelectDeviceModal,JDate}, |
| | | components: { SelectDeviceDrawer,JDate}, |
| | | props: {}, |
| | | data() { |
| | | return { |
| | |
| | | // }) |
| | | }, |
| | | deviceSearch() { |
| | | this.$refs.selectDeviceModal.visible = true |
| | | this.$refs.selectDeviceModal.selectedRowKeys = [] |
| | | this.$refs.selectDeviceModal.selectedRows = [] |
| | | this.$refs.selectDeviceModal.checkedKeys = this.form.getFieldValue('equipmentIds') ? this.form.getFieldValue('equipmentIds').split(',') : [] |
| | | this.$refs.selectDeviceDrawer.visible = true |
| | | this.$refs.selectDeviceDrawer.selectedRowKeys = [] |
| | | this.$refs.selectDeviceDrawer.selectedRows = [] |
| | | this.$refs.selectDeviceDrawer.checkedKeys = this.form.getFieldValue('equipmentIds') ? this.form.getFieldValue('equipmentIds').split(',') : [] |
| | | }, |
| | | //çº§èæ¡onChangeäºä»¶ |
| | | // onChange(value) { |
| | |
| | | <!-- tableåºå-end --> |
| | | </div> |
| | | |
| | | <selectDeviceModal ref="selectDeviceModal" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"></selectDeviceModal> |
| | | <SelectDeviceDrawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"></SelectDeviceDrawer> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import Tooltip from 'ant-design-vue/es/tooltip' |
| | | import { ajaxGetDictItems, getDictItemsFromCache, duplicateCheck } from '@/api/api' |
| | | import api from '@/api/mdc' |
| | | import selectDeviceModal from '../../../../system/modules/SelectDeviceModal.vue' |
| | | import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer.vue' |
| | | |
| | | export default { |
| | | name: 'comparativeAnalysismain', |
| | |
| | | JInput, |
| | | JDate, |
| | | JEllipsis, |
| | | selectDeviceModal |
| | | SelectDeviceDrawer |
| | | }, |
| | | props: { nodeTree: '', Type: '', nodePeople: '' }, |
| | | data() { |
| | |
| | | // }, |
| | | deviceSearch() { |
| | | console.log('触å') |
| | | this.$refs.selectDeviceModal.visible = true |
| | | this.$refs.selectDeviceModal.selectedRowKeys = [] |
| | | this.$refs.selectDeviceModal.selectedRows = [] |
| | | this.$refs.selectDeviceModal.checkedKeys = this.queryParam.equipmentId.split(',') |
| | | this.$refs.selectDeviceDrawer.visible = true |
| | | this.$refs.selectDeviceDrawer.selectedRowKeys = [] |
| | | this.$refs.selectDeviceDrawer.selectedRows = [] |
| | | this.$refs.selectDeviceDrawer.checkedKeys = this.queryParam.equipmentId.split(',') |
| | | }, |
| | | |
| | | /** |
| | |
| | | </a-form> |
| | | </a-spin> |
| | | <device-calend-list-model ref="deviceRepairListModel" @sendSelectionRows="getDeviceRows"></device-calend-list-model> |
| | | <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | </a-modal> |
| | | </div> |
| | | </template> |
| | |
| | | } from '@/api/api' |
| | | |
| | | import Calendar from 'vue-calendar-component'; |
| | | import SelectDeviceModal from '../../../../system/modules/SelectDeviceModal' |
| | | import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer' |
| | | |
| | | export default { |
| | | name: 'ShiftInfoModel', |
| | | components: { SelectDeviceModal, DeviceCalendListModel,Calendar}, |
| | | components: { SelectDeviceDrawer, DeviceCalendListModel,Calendar}, |
| | | props: {}, |
| | | data() { |
| | | return { |
| | |
| | | this.value = value; |
| | | }, |
| | | deviceSearch() { |
| | | this.$refs.selectDeviceModal.visible = true |
| | | this.$refs.selectDeviceModal.selectedRowKeys = [] |
| | | this.$refs.selectDeviceModal.selectedRows = [] |
| | | this.$refs.selectDeviceModal.checkedKeys = this.form.getFieldValue('equipmentId') ? this.form.getFieldValue('equipmentId').split(',') : [] |
| | | this.$refs.selectDeviceDrawer.visible = true |
| | | this.$refs.selectDeviceDrawer.selectedRowKeys = [] |
| | | this.$refs.selectDeviceDrawer.selectedRows = [] |
| | | this.$refs.selectDeviceDrawer.checkedKeys = this.form.getFieldValue('equipmentId') ? this.form.getFieldValue('equipmentId').split(',') : [] |
| | | }, |
| | | getDeviceRows(val) { |
| | | console.log("========",val); |
| | |
| | | <!--</a-row>--> |
| | | </a-form> |
| | | </a-spin> |
| | | <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | </a-modal> |
| | | </template> |
| | | |
| | |
| | | duplicateCheck |
| | | } from '@/api/api' |
| | | import Vue from 'vue' |
| | | import SelectDeviceModal from '../../../../system/modules/SelectDeviceModal' |
| | | import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer' |
| | | |
| | | export default { |
| | | name: 'DeviceRepairModel', |
| | | components: { SelectDeviceModal, JDate }, |
| | | components: { SelectDeviceDrawer, JDate }, |
| | | props: { |
| | | equipmentId: { |
| | | type: String |
| | |
| | | // }) |
| | | }, |
| | | deviceSearch() { |
| | | this.$refs.selectDeviceModal.visible = true |
| | | this.$refs.selectDeviceModal.selectedRowKeys = [] |
| | | this.$refs.selectDeviceModal.selectedRows = [] |
| | | this.$refs.selectDeviceModal.checkedKeys = this.form.getFieldValue('equipmentIds') ? this.form.getFieldValue('equipmentIds').split(',') : [] |
| | | this.$refs.selectDeviceDrawer.visible = true |
| | | this.$refs.selectDeviceDrawer.selectedRowKeys = [] |
| | | this.$refs.selectDeviceDrawer.selectedRows = [] |
| | | this.$refs.selectDeviceDrawer.checkedKeys = this.form.getFieldValue('equipmentIds') ? this.form.getFieldValue('equipmentIds').split(',') : [] |
| | | }, |
| | | //çº§èæ¡onChangeäºä»¶ |
| | | // onChange(value) { |
| | |
| | | </a-row> |
| | | </a-form> |
| | | </a-spin> |
| | | <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | </a-modal> |
| | | </template> |
| | | |
| | |
| | | import { |
| | | duplicateCheck |
| | | } from '@/api/api' |
| | | import SelectDeviceModal from '../../../../system/modules/SelectDeviceModal' |
| | | import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer' |
| | | |
| | | export default { |
| | | name: 'mdcPassRateModal', |
| | | components: { SelectDeviceModal}, |
| | | components: { SelectDeviceDrawer}, |
| | | props: {}, |
| | | data() { |
| | | return { |
| | |
| | | // }) |
| | | }, |
| | | deviceSearch() { |
| | | this.$refs.selectDeviceModal.visible = true |
| | | this.$refs.selectDeviceModal.selectedRowKeys = [] |
| | | this.$refs.selectDeviceModal.selectedRows = [] |
| | | this.$refs.selectDeviceModal.checkedKeys = this.form.getFieldValue('equipmentIds') ? this.form.getFieldValue('equipmentIds').split(',') : [] |
| | | this.$refs.selectDeviceDrawer.visible = true |
| | | this.$refs.selectDeviceDrawer.selectedRowKeys = [] |
| | | this.$refs.selectDeviceDrawer.selectedRows = [] |
| | | this.$refs.selectDeviceDrawer.checkedKeys = this.form.getFieldValue('equipmentIds') ? this.form.getFieldValue('equipmentIds').split(',') : [] |
| | | }, |
| | | //çº§èæ¡onChangeäºä»¶ |
| | | // onChange(value) { |
| | |
| | | </a-row> |
| | | </a-form> |
| | | </a-spin> |
| | | <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'éæ©è®¾å¤'"/> |
| | | |
| | | </a-modal> |
| | | </template> |
| | |
| | | import { |
| | | duplicateCheck |
| | | } from '@/api/api' |
| | | import SelectDeviceModal from '../../../../system/modules/SelectDeviceModal' |
| | | import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer' |
| | | |
| | | export default { |
| | | name: 'MdcStandardProcessDurationModal', |
| | | components: { SelectDeviceModal }, |
| | | components: { SelectDeviceDrawer }, |
| | | props: {}, |
| | | data() { |
| | | return { |
| | |
| | | // }) |
| | | }, |
| | | deviceSearch() { |
| | | this.$refs.selectDeviceModal.visible = true |
| | | this.$refs.selectDeviceModal.selectedRowKeys = [] |
| | | this.$refs.selectDeviceModal.selectedRows = [] |
| | | this.$refs.selectDeviceModal.checkedKeys = this.form.getFieldValue('equipmentIds') ? this.form.getFieldValue('equipmentIds').split(',') : [] |
| | | this.$refs.selectDeviceDrawer.visible = true |
| | | this.$refs.selectDeviceDrawer.selectedRowKeys = [] |
| | | this.$refs.selectDeviceDrawer.selectedRows = [] |
| | | this.$refs.selectDeviceDrawer.checkedKeys = this.form.getFieldValue('equipmentIds') ? this.form.getFieldValue('equipmentIds').split(',') : [] |
| | | }, |
| | | //çº§èæ¡onChangeäºä»¶ |
| | | // onChange(value) { |
| | |
| | | <!-- 表ååºå --> |
| | | <workshop-modal ref="modalForm" @ok="modalFormOk"></workshop-modal> |
| | | <!--æ°å¢è½¦é´--> |
| | | <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'æ·»å å·²æè®¾å¤'"></select-device-modal> |
| | | <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'æ·»å å·²æè®¾å¤'"></select-device-drawer> |
| | | <!--å·²æè®¾å¤--> |
| | | </a-row> |
| | | </template> |
| | | <script> |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import { deleteAction, postAction, getAction } from '@/api/manage' |
| | | import SelectDeviceModal from './modules/SelectDeviceModal' |
| | | import SelectDeviceDrawer from './modules/SelectDeviceDrawer' |
| | | import WorkshopModal from './modules/WorkshopModal' |
| | | import { filterObj } from '@/utils/util' |
| | | import moment from 'moment' |
| | |
| | | name: 'WorkshopSignageManagement', |
| | | mixins: [JeecgListMixin], |
| | | components: { |
| | | SelectDeviceModal, |
| | | SelectDeviceDrawer, |
| | | WorkshopModal, |
| | | moment, |
| | | }, |
| | |
| | | if (this.currentWorkshopId == '') { |
| | | this.$message.error('è¯·éæ©ä¸ä¸ªè½¦é´!') |
| | | } else { |
| | | this.$refs.selectDeviceModal.visible = true |
| | | this.$refs.selectDeviceModal.selectedRowKeys = [] |
| | | this.$refs.selectDeviceModal.selectedRows = [] |
| | | this.$refs.selectDeviceModal.checkedKeys = [] |
| | | this.$refs.selectDeviceModal.expandAll() |
| | | this.$refs.selectDeviceDrawer.visible = true |
| | | this.$refs.selectDeviceDrawer.selectedRowKeys = [] |
| | | this.$refs.selectDeviceDrawer.selectedRows = [] |
| | | this.$refs.selectDeviceDrawer.checkedKeys = [] |
| | | this.$refs.selectDeviceDrawer.expandAll() |
| | | } |
| | | }, |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-drawer |
| | | :title="title" |
| | | :visible="visible" |
| | | width="650" |
| | | @ok="handleOk" |
| | | @close="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> |
| | | |
| | | |
| | | <div class="drawer-bottom-button"> |
| | | <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> |
| | | |
| | | </a-drawer> |
| | | </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' |
| | | import { mapActions } from 'vuex' |
| | | |
| | | export default { |
| | | name: 'SelectDeviceDrawer', |
| | | components: { |
| | | BaseTree, DepartTree |
| | | }, |
| | | props: { |
| | | editDisable: { |
| | | type: Boolean, |
| | | default() { |
| | | return true |
| | | } |
| | | }, |
| | | title: { |
| | | type: String |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | cardLoading: false, |
| | | loading: false, |
| | | treeDataSource: [], |
| | | expandedKeys: [], |
| | | checkedKeys: [], |
| | | url: { |
| | | getBaseTree: '/mdc/mdcEquipment/queryTreeListByProduction' |
| | | }, |
| | | dataList: [], |
| | | allTreeKeys: [], |
| | | visible: false, |
| | | dataSource: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.queryTreeData() |
| | | this.closeAll() |
| | | }, |
| | | methods: { |
| | | ...mapActions(['QueryProduction']), |
| | | onExpand(expandedKeys) { |
| | | this.expandedKeys = expandedKeys |
| | | this.autoExpandParent = false |
| | | }, |
| | | |
| | | queryTreeData() { |
| | | this.loading = true |
| | | this.cardLoading = true |
| | | this.QueryProduction().then(res => { |
| | | if (res.success) { |
| | | this.dataList = [] |
| | | this.allTreeKeys = [] |
| | | this.getTreeDataSouce(res.result) |
| | | this.treeDataSource = res.result |
| | | this.generateList(this.treeDataSource) |
| | | console.log('treeDataSource', this.treeDataSource) |
| | | this.expandedKeys = this.allTreeKeys |
| | | } else { |
| | | this.$message.warn(res.message) |
| | | } |
| | | }).finally(() => { |
| | | this.loading = false |
| | | this.cardLoading = 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() |
| | | }, |
| | | onCheck(value, obj) { |
| | | this.checkedKeys = value |
| | | console.log('obj,', obj) |
| | | this.deviceNodes = obj.checkedNodes.filter(item => item.data.props.equipmentId).map(item => item.data.props.equipmentId) |
| | | console.log(this.deviceNodes) |
| | | }, |
| | | 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> |
| | | <div> |
| | | <a-drawer |
| | | :title="title" |
| | | :visible="visible" |
| | | width="650" |
| | | @ok="handleOk" |
| | | @close="handleCancel" |
| | | > |
| | | <a-modal |
| | | :title="title" |
| | | :visible="visible" |
| | | @ok="handleOk" |
| | | @cancel="handleCancel" |
| | | > |
| | | |
| | | <!--<!– æ¥è¯¢åºå –>--> |
| | | <!--<div class="table-page-search-wrapper">--> |
| | | <!--<a-form layout="inline" @keyup.enter.native="searchQuery">--> |
| | | <!--<a-row :gutter="24">--> |
| | | <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-col :span="10">--> |
| | | <!--<a-form-item label="设å¤åç§°">--> |
| | | <!--<a-input placeholder="请è¾å
¥è®¾å¤åç§°" v-model="queryParam.equipmentName"></a-input>--> |
| | | <!--</a-form-item>--> |
| | | <!--</a-col>--> |
| | | <!--<a-col :span="8">--> |
| | | <!--<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">--> |
| | | <!--<a-button type="primary" @click="searchQuery" icon="search">æ¥è¯¢</a-button>--> |
| | | <!--<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">éç½®</a-button>--> |
| | | <!--</span>--> |
| | | <!--</a-col>--> |
| | | </a-spin> |
| | | |
| | | <!--</a-row>--> |
| | | <!--</a-form>--> |
| | | <!--</div>--> |
| | | <!--<!– tableåºå-begin –>--> |
| | | <!--<div>--> |
| | | <!--<a-table--> |
| | | <!--size="small"--> |
| | | <!--bordered--> |
| | | <!--rowKey="equipmentId"--> |
| | | <!--:columns="columns1"--> |
| | | <!--:dataSource="dataSource1"--> |
| | | <!--:pagination="ipagination"--> |
| | | <!--:loading="loading"--> |
| | | <!--:scroll="{ y: 240 }"--> |
| | | <!--:rowSelection="{selectedRowKeys: selectedRowKeys,onSelectAll:onSelectAll,onSelect:onSelect,onChange: onSelectChange}"--> |
| | | <!--@change="handleTableChange">--> |
| | | <!--</a-table>--> |
| | | <!--</div>--> |
| | | <!--<!– tableåºå-end –>--> |
| | | |
| | | <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> |
| | | |
| | | |
| | | <div class="drawer-bottom-button"> |
| | | <template slot="footer"> |
| | | <div> |
| | | <a-dropdown |
| | | style="float: left" |
| | | :trigger="['click']" |
| | |
| | | >ç¡®å® |
| | | </a-button> |
| | | </div> |
| | | </template> |
| | | |
| | | </a-drawer> |
| | | </div> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | // import { filterObj } from '@/utils/util' |
| | | // import { getAction } from '@/api/manage' |
| | | import { |
| | | getAction, |
| | | postAction, |
| | |
| | | } from '@/api/manage' |
| | | import BaseTree from '@/views/mdc/common/BaseTree' |
| | | import DepartTree from '@/views/mdc/base/modules/DepartList/DepartListTree/DepartTree' |
| | | import { mapActions } from 'vuex' |
| | | |
| | | export default { |
| | | name: 'SelectDeviceModal', |
| | |
| | | }, |
| | | title: { |
| | | type: String |
| | | }, |
| | | selectedProduction: { |
| | | type: String |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | cardLoading: false, |
| | | loading: false, |
| | | treeDataSource: [], |
| | | expandedKeys: [], |
| | | checkedKeys: [], |
| | | url: { |
| | | getBaseTree: '/mdc/mdcEquipment/queryTreeListByProduction' |
| | | getDeviceTree: '/mdc/mdcEquipment/loadTreeListByProductionIds' |
| | | }, |
| | | selectedWorkshopIds: '', |
| | | dataList: [], |
| | | allTreeKeys: [], |
| | | visible: false, |
| | | dataSource: [] |
| | | |
| | | // names: [], |
| | | // placement: 'right', |
| | | // description: '', |
| | | // // æ¥è¯¢æ¡ä»¶ |
| | | // queryParam: {}, |
| | | // // 表头 |
| | | // columns1: [ |
| | | // { |
| | | // title: '#', |
| | | // dataIndex: '', |
| | | // key: 'rowIndex', |
| | | // width: 50, |
| | | // align: 'center', |
| | | // customRender: function(t, r, index) { |
| | | // return parseInt(index) + 1 |
| | | // } |
| | | // }, |
| | | // { |
| | | // title: '设å¤ç¼å·', |
| | | // align: 'center', |
| | | // width: 100, |
| | | // dataIndex: 'equipmentId' |
| | | // }, |
| | | // { |
| | | // title: '设å¤åç§°', |
| | | // align: 'center', |
| | | // width: 100, |
| | | // dataIndex: 'equipmentName' |
| | | // }, |
| | | // { |
| | | // title: '设å¤ç±»å', |
| | | // align: 'center', |
| | | // width: 100, |
| | | // dataIndex: 'equipmentType' |
| | | // }, |
| | | // { |
| | | // title: '驱å¨ç±»å', |
| | | // align: 'center', |
| | | // width: 100, |
| | | // dataIndex: 'driveType' |
| | | // } |
| | | // ], |
| | | // //æ°æ®é |
| | | // dataSource1: [], |
| | | // dataSource2: [], |
| | | // // å页忰 |
| | | // ipagination: { |
| | | // current: 1, |
| | | // pageSize: 10, |
| | | // pageSizeOptions: ['10', '20', '30'], |
| | | // showTotal: (total, range) => { |
| | | // return range[0] + '-' + range[1] + ' å
±' + total + 'æ¡' |
| | | // }, |
| | | // showQuickJumper: true, |
| | | // showSizeChanger: true, |
| | | // total: 0 |
| | | // }, |
| | | // loading: false, |
| | | // selectedRowKeys: [], |
| | | // selectedRows: [], |
| | | // url: { |
| | | // list: '/mdc/mdcEquipment/list' |
| | | // }, |
| | | // activeKey: '1', |
| | | // isDepartType: '' |
| | | } |
| | | }, |
| | | created() { |
| | | // this.loadData() |
| | | this.queryTreeData() |
| | | this.closeAll() |
| | | }, |
| | | methods: { |
| | | ...mapActions(['QueryProduction']), |
| | | |
| | | onExpand(expandedKeys) { |
| | | this.expandedKeys = expandedKeys |
| | | this.autoExpandParent = false |
| | | }, |
| | | |
| | | queryTreeData() { |
| | | queryTreeData(value) { |
| | | // this.loading = true |
| | | // this.cardLoading = true |
| | | // this.QueryProduction().then(res => { |
| | | // if (res.success) { |
| | | // this.dataList = [] |
| | | // this.allTreeKeys = [] |
| | | // this.getTreeDataSouce(res.result) |
| | | // this.treeDataSource = res.result |
| | | // this.generateList(this.treeDataSource) |
| | | // console.log('treeDataSource', this.treeDataSource) |
| | | // this.expandedKeys = this.allTreeKeys |
| | | // } else { |
| | | // this.$message.warn(res.message) |
| | | // } |
| | | // }).finally(() => { |
| | | // this.loading = false |
| | | // this.cardLoading = false |
| | | // }) |
| | | this.loading = true |
| | | this.cardLoading = true |
| | | this.QueryProduction().then(res => { |
| | | if (res.success) { |
| | | this.dataList = [] |
| | | this.allTreeKeys = [] |
| | | this.getTreeDataSouce(res.result) |
| | | this.treeDataSource = res.result |
| | | this.generateList(this.treeDataSource) |
| | | console.log('treeDataSource', this.treeDataSource) |
| | | this.expandedKeys = this.allTreeKeys |
| | | } else { |
| | | this.$message.warn(res.message) |
| | | } |
| | | }).finally(() => { |
| | | this.loading = false |
| | | this.cardLoading = false |
| | | }) |
| | | this.selectedWorkshopIds = value |
| | | getAction(this.url.getDeviceTree, { ids: value }) |
| | | .then(res => { |
| | | console.log('res===============', res) |
| | | if (res.success) { |
| | | this.dataList = [] |
| | | this.allTreeKeys = [] |
| | | this.getTreeDataSouce(res.result) |
| | | this.treeDataSource = res.result |
| | | this.generateList(this.treeDataSource) |
| | | console.log('treeDataSource', 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) { |
| | |
| | | this.expandedKeys = ['-1'] |
| | | }, |
| | | refreshTree() { |
| | | this.queryTreeData() |
| | | this.queryTreeData(this.selectedWorkshopIds) |
| | | }, |
| | | onCheck(value, obj) { |
| | | this.checkedKeys = value |
| | |
| | | this.$emit('selectFinished', this.deviceNodes) |
| | | this.visible = false |
| | | } |
| | | |
| | | // add() { |
| | | // this.visible = true |
| | | // }, |
| | | // loadData(arg) { |
| | | // //å è½½æ°æ® è¥ä¼ å
¥åæ°1åå 载第ä¸é¡µçå
容 |
| | | // if (arg === 1) { |
| | | // this.ipagination.current = 1 |
| | | // } |
| | | // var params = this.getQueryParams()//æ¥è¯¢æ¡ä»¶ |
| | | // getAction(this.url.list, params).then((res) => { |
| | | // if (res.success) { |
| | | // this.dataSource1 = res.result.records |
| | | // this.ipagination.total = res.result.total |
| | | // } |
| | | // }) |
| | | // }, |
| | | // getQueryParams() { |
| | | // var param = Object.assign({}, this.queryParam, this.isorter) |
| | | // param.field = this.getQueryField() |
| | | // param.pageNo = this.ipagination.current |
| | | // param.pageSize = this.ipagination.pageSize |
| | | // return filterObj(param) |
| | | // }, |
| | | // getQueryField() { |
| | | // //TODO åæ®µæéæ§å¶ |
| | | // }, |
| | | // onSelectAll(selected, selectedRows, changeRows) { |
| | | // if (selected === true) { |
| | | // for (var a = 0; a < changeRows.length; a++) { |
| | | // this.dataSource2.push(changeRows[a]) |
| | | // } |
| | | // } else { |
| | | // for (var b = 0; b < changeRows.length; b++) { |
| | | // this.dataSource2.splice(this.dataSource2.indexOf(changeRows[b]), 1) |
| | | // } |
| | | // } |
| | | // // console.log(selected, selectedRows, changeRows); |
| | | // }, |
| | | // onSelect(record, selected) { |
| | | // console.log(this.selectedRowKeys) |
| | | // if (selected === true) { |
| | | // this.dataSource2.push(record) |
| | | // } else { |
| | | // var index = this.dataSource2.indexOf(record) |
| | | // //console.log(); |
| | | // if (index >= 0) { |
| | | // this.dataSource2.splice(this.dataSource2.indexOf(record), 1) |
| | | // } |
| | | // } |
| | | // }, |
| | | // onSelectChange(selectedRowKeys, selectedRows) { |
| | | // console.log('selectedRowKeys', selectedRowKeys) |
| | | // this.selectedRowKeys = selectedRowKeys |
| | | // this.selectionRows = selectedRows |
| | | // }, |
| | | // onClearSelected() { |
| | | // this.selectedRowKeys = [] |
| | | // this.selectionRows = [] |
| | | // }, |
| | | // handleDelete: function(record) { |
| | | // this.dataSource2.splice(this.dataSource2.indexOf(record), 1) |
| | | // }, |
| | | // handleTableChange(pagination, filters, sorter) { |
| | | // //å页ãæåºãçéååæ¶è§¦å |
| | | // console.log(sorter) |
| | | // //TODO çé |
| | | // if (Object.keys(sorter).length > 0) { |
| | | // this.isorter.column = sorter.field |
| | | // this.isorter.order = 'ascend' == sorter.order ? 'asc' : 'desc' |
| | | // } |
| | | // this.ipagination = pagination |
| | | // this.loadData() |
| | | // }, |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | @back="backDepartInfo" |
| | | :backDepart="true" |
| | | :treeOpera="true" |
| | | >></j-select-depart> |
| | | >> |
| | | </j-select-depart> |
| | | </a-form-model-item> |
| | | |
| | | <!--车é´åé
--> |
| | |
| | | :treeProductOpera="true" |
| | | ></j-select-production> |
| | | </a-form-model-item> |
| | | |
| | | <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" |
| | |
| | | @click="handleSubmit" |
| | | type="primary" |
| | | :loading="confirmLoading" |
| | | >æäº¤</a-button> |
| | | >æäº¤ |
| | | </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 { getAction } from '@/api/manage' |
| | | 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 moment from 'moment' |
| | | import Vue from 'vue' |
| | | 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 { 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", |
| | | components: { |
| | | JSelectProduction |
| | | }, |
| | | data() { |
| | | return { |
| | | departDisabled: false, //æ¯å¦æ¯æçé¨é¨è°ç¨è¯¥é¡µé¢ |
| | | productionDisabled: false, //æ¯å¦æ¯æç车é´è°ç¨è¯¥é¡µé¢ |
| | | roleDisabled: false, //æ¯å¦æ¯è§è²ç»´æ¤è°ç¨è¯¥é¡µé¢ |
| | | 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: 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: '请è¾å
¥æ£ç¡®ç座æºå·ç ' },], |
| | | teamId: [{ required: false, message: '请维æ¤çç»' }] |
| | | |
| | | }, |
| | | departIdShow: false, |
| | | title: "æä½", |
| | | visible: false, |
| | | model: {}, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 }, |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 }, |
| | | }, |
| | | uploadLoading: false, |
| | | confirmLoading: false, |
| | | headers: {}, |
| | | url: { |
| | | 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: [], |
| | | nextProductionOptions: [], |
| | | isDepartType: '', |
| | | |
| | | } |
| | | }, |
| | | watch: { |
| | | visible: { |
| | | handler(value) { |
| | | if (value) this.initDictData('password_length') |
| | | } |
| | | } |
| | | }, |
| | | 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; |
| | | } |
| | | }, |
| | | methods: { |
| | | ...mapActions(['QueryDepartTree']), |
| | | queryTreeData() { |
| | | this.QueryDepartTree().then(res => { |
| | | if (res.success) { |
| | | this.isDepartType = res.result[0].value |
| | | } else { |
| | | // this.$message.warn(res.message) |
| | | this.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }); |
| | | } |
| | | }).finally(() => { |
| | | }) |
| | | export default { |
| | | name: 'UserModal', |
| | | components: { |
| | | SelectDeviceModal, |
| | | JSelectProduction |
| | | }, |
| | | add() { |
| | | this.refresh(); |
| | | this.edit({ activitiSync: '1', userIdentity: 1 }); |
| | | }, |
| | | edit(record) { |
| | | let that = this; |
| | | that.visible = true; |
| | | //æ ¹æ®å±å¹å®½åº¦èªéåºæ½å±å®½åº¦ |
| | | this.resetScreenSize(); |
| | | that.userId = record.id; |
| | | |
| | | that.model = Object.assign({}, { selectedroles: '', selecteddeparts: '' }, record); |
| | | that.model = Object.assign({}, { selectedroles: '', selectedProduction: '' }, record); |
| | | //身份为ä¸çº§æ¾ç¤ºè´è´£é¨é¨ï¼å¦å䏿¾ç¤º |
| | | if (this.model.userIdentity == 2) { |
| | | this.departIdShow = true; |
| | | } else { |
| | | this.departIdShow = false; |
| | | } |
| | | |
| | | if (record.hasOwnProperty("id")) { |
| | | that.getUserRoles(record.id); |
| | | that.getUserDeparts(record.id); |
| | | } |
| | | console.log('that.model', that.model) |
| | | }, |
| | | isDisabledAuth(code) { |
| | | return disabledAuthFilter(code); |
| | | }, |
| | | //çªå£æå¤§å忢 |
| | | toggleScreen() { |
| | | if (this.modaltoggleFlag) { |
| | | this.modalWidth = window.innerWidth; |
| | | } else { |
| | | this.modalWidth = 800; |
| | | } |
| | | this.modaltoggleFlag = !this.modaltoggleFlag; |
| | | }, |
| | | // æ ¹æ®å±å¹åå,设置æ½å±å°ºå¯¸ |
| | | 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; |
| | | }) |
| | | 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; |
| | | }) |
| | | 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) |
| | | } |
| | | }); |
| | | }, |
| | | 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); |
| | | //æ°å¢è´è´£é¨é¨éæ©ä¸ææ¡ |
| | | departOptions.push({ |
| | | value: res.result[i].key, |
| | | label: res.result[i].title |
| | | }) |
| | | } |
| | | |
| | | that.model.selecteddeparts = selectDepartKeys.join(",") |
| | | that.model.selectedProduction = selectDepartKeys.join(",") |
| | | |
| | | that.nextDepartOptions = departOptions; |
| | | console.log('that.nextDepartOptions=', that.nextDepartOptions) |
| | | } |
| | | }) |
| | | |
| | | 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 |
| | | }) |
| | | } |
| | | |
| | | that.model.selectedProduction = selectProductKeys.join(",") |
| | | |
| | | that.nextProductionOptions = ProductionOptions; |
| | | console.log('that.nextProductionOptions=', that.nextProductionOptions) |
| | | } |
| | | }) |
| | | //车é´ç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; |
| | | }) |
| | | }, |
| | | 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; |
| | | }) |
| | | }, |
| | | |
| | | 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; |
| | | // 触å表åéªè¯ |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = true; |
| | | //妿æ¯ä¸çº§æ©ä¼ å
¥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); |
| | | } |
| | | 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(); |
| | | }) |
| | | } else { |
| | | return false; |
| | | } |
| | | }) |
| | | }, |
| | | handleCancel() { |
| | | this.close() |
| | | }, |
| | | validateToNextPassword(rule, value, callback) { |
| | | const confirmpassword = this.model.confirmpassword; |
| | | if (value && confirmpassword && value !== confirmpassword) { |
| | | callback('两次è¾å
¥çå¯ç ä¸ä¸æ ·ï¼'); |
| | | } |
| | | if (value && this.confirmDirty) { |
| | | this.$refs.form.validateField(['confirmpassword']); |
| | | } |
| | | callback(); |
| | | }, |
| | | compareToFirstPassword(rule, value, callback) { |
| | | if (value && value !== this.model.password) { |
| | | callback('两次è¾å
¥çå¯ç ä¸ä¸æ ·ï¼'); |
| | | } else { |
| | | callback() |
| | | } |
| | | }, |
| | | validatePhone(rule, value, callback) { |
| | | if (!value) { |
| | | callback() |
| | | } 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("ææºå·å·²åå¨!") |
| | | } |
| | | }) |
| | | } else { |
| | | callback("请è¾å
¥æ£ç¡®æ ¼å¼çææºå·ç !"); |
| | | } |
| | | } |
| | | }, |
| | | 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)) { |
| | | 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("é®ç®±å·²åå¨!") |
| | | } |
| | | }) |
| | | } else { |
| | | 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("ç¨æ·åå·²åå¨!") |
| | | } |
| | | }) |
| | | }, |
| | | 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("å·¥å·å·²åå¨!") |
| | | } |
| | | }) |
| | | }, |
| | | handleConfirmBlur(e) { |
| | | 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; |
| | | } |
| | | //TODO éªè¯æä»¶å¤§å° |
| | | }, |
| | | 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] = { |
| | | data() { |
| | | return { |
| | | departDisabled: false, //æ¯å¦æ¯æçé¨é¨è°ç¨è¯¥é¡µé¢ |
| | | productionDisabled: false, //æ¯å¦æ¯æç车é´è°ç¨è¯¥é¡µé¢ |
| | | roleDisabled: false, //æ¯å¦æ¯è§è²ç»´æ¤è°ç¨è¯¥é¡µé¢ |
| | | 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: regExp, |
| | | message: `å¯ç ç±${res.result[0].value}使°åã大å°å忝åç¹æ®ç¬¦å·ç»æ!`, |
| | | } |
| | | 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: '请è¾å
¥æ£ç¡®ç座æºå·ç ' }], |
| | | teamId: [{ required: false, message: '请维æ¤çç»' }] |
| | | |
| | | }, |
| | | departIdShow: false, |
| | | title: 'æä½', |
| | | visible: false, |
| | | model: {}, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 } |
| | | }, |
| | | uploadLoading: false, |
| | | confirmLoading: false, |
| | | headers: {}, |
| | | url: { |
| | | 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: [], |
| | | nextProductionOptions: [], |
| | | isDepartType: '', |
| | | model: { |
| | | selectedProduction: '' |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | watch: { |
| | | visible: { |
| | | handler(value) { |
| | | if (value) this.initDictData('password_length') |
| | | } |
| | | }, |
| | | 'model.selectedProduction': { |
| | | handler(newVal, oldVal) { |
| | | console.log('触åçå¬', 'newVal=', newVal, 'oldVal=', oldVal) |
| | | // if ((newVal !== oldVal && oldVal) || !newVal) this.model.equipmentIds = '' |
| | | if (newVal && this.$refs.selectDeviceModal) this.$refs.selectDeviceModal.queryTreeData(newVal) |
| | | } |
| | | } |
| | | }, |
| | | 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 |
| | | } |
| | | }, |
| | | methods: { |
| | | ...mapActions(['QueryDepartTree']), |
| | | queryTreeData() { |
| | | this.QueryDepartTree().then(res => { |
| | | if (res.success) { |
| | | this.isDepartType = res.result[0].value |
| | | } else { |
| | | // this.$message.warn(res.message) |
| | | this.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }).finally(() => { |
| | | }) |
| | | }, |
| | | add() { |
| | | this.refresh() |
| | | this.edit({ |
| | | activitiSync: '1', |
| | | userIdentity: 1, |
| | | selectedroles: '', |
| | | selecteddeparts: '', |
| | | selectedProduction: '' |
| | | }) |
| | | }, |
| | | edit(record) { |
| | | let that = this |
| | | that.visible = true |
| | | //æ ¹æ®å±å¹å®½åº¦èªéåºæ½å±å®½åº¦ |
| | | 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 (record.hasOwnProperty('id')) { |
| | | that.getUserRoles(record.id) |
| | | that.getUserDeparts(record.id) |
| | | } |
| | | console.log('that.model', that.model) |
| | | }, |
| | | isDisabledAuth(code) { |
| | | return disabledAuthFilter(code) |
| | | }, |
| | | //çªå£æå¤§å忢 |
| | | toggleScreen() { |
| | | if (this.modaltoggleFlag) { |
| | | this.modalWidth = window.innerWidth |
| | | } else { |
| | | this.modalWidth = 800 |
| | | } |
| | | this.modaltoggleFlag = !this.modaltoggleFlag |
| | | }, |
| | | // æ ¹æ®å±å¹åå,设置æ½å±å°ºå¯¸ |
| | | 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 |
| | | }) |
| | | 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 |
| | | }) |
| | | console.log('this.rolesOptions: ', this.rolesOptions) |
| | | } |
| | | }) |
| | | }, |
| | | getUserRoles(userid) { |
| | | queryUserRole({ userid: userid }).then((res) => { |
| | | if (res.success) { |
| | | // this.model.selectedroles = res.result.join(',') |
| | | this.$set(this.model, 'selectedroles', res.result.join(',')) |
| | | console.log('that.model.selectedroles=', this.model.selectedroles) |
| | | } |
| | | }) |
| | | }, |
| | | 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) |
| | | //æ°å¢è´è´£é¨é¨éæ©ä¸ææ¡ |
| | | departOptions.push({ |
| | | value: res.result[i].key, |
| | | label: res.result[i].title |
| | | }) |
| | | } |
| | | |
| | | // that.model.selecteddeparts = selectDepartKeys.join(',') |
| | | this.$set(this.model, 'selecteddeparts', selectDepartKeys.join(',')) |
| | | |
| | | that.nextDepartOptions = departOptions |
| | | console.log('that.nextDepartOptions=', that.nextDepartOptions) |
| | | } |
| | | }) |
| | | |
| | | // è·å车é´åé
|
| | | 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 |
| | | }) |
| | | } |
| | | |
| | | // that.model.selectedProduction = selectProductKeys.join(',') |
| | | this.$set(this.model, 'selectedProduction', selectProductKeys.join(',')) |
| | | that.nextProductionOptions = ProductionOptions |
| | | console.log('that.nextProductionOptions=', that.nextProductionOptions) |
| | | } |
| | | }) |
| | | //车é´ç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 |
| | | }) |
| | | }, |
| | | 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 |
| | | }) |
| | | }, |
| | | |
| | | 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 |
| | | // 触å表åéªè¯ |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = true |
| | | //妿æ¯ä¸çº§æ©ä¼ å
¥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) |
| | | } |
| | | 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() |
| | | }) |
| | | } else { |
| | | return false |
| | | } |
| | | }) |
| | | }, |
| | | handleCancel() { |
| | | this.close() |
| | | }, |
| | | validateToNextPassword(rule, value, callback) { |
| | | const confirmpassword = this.model.confirmpassword |
| | | if (value && confirmpassword && value !== confirmpassword) { |
| | | callback('两次è¾å
¥çå¯ç ä¸ä¸æ ·ï¼') |
| | | } |
| | | if (value && this.confirmDirty) { |
| | | this.$refs.form.validateField(['confirmpassword']) |
| | | } |
| | | callback() |
| | | }, |
| | | compareToFirstPassword(rule, value, callback) { |
| | | if (value && value !== this.model.password) { |
| | | callback('两次è¾å
¥çå¯ç ä¸ä¸æ ·ï¼') |
| | | } else { |
| | | callback() |
| | | } |
| | | }, |
| | | validatePhone(rule, value, callback) { |
| | | if (!value) { |
| | | callback() |
| | | } 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('ææºå·å·²åå¨!') |
| | | } |
| | | }) |
| | | } else { |
| | | callback('请è¾å
¥æ£ç¡®æ ¼å¼çææºå·ç !') |
| | | } |
| | | } |
| | | }, |
| | | 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)) { |
| | | 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('é®ç®±å·²åå¨!') |
| | | } |
| | | }) |
| | | } else { |
| | | 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('ç¨æ·åå·²åå¨!') |
| | | } |
| | | }) |
| | | }, |
| | | 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('å·¥å·å·²åå¨!') |
| | | } |
| | | }) |
| | | }, |
| | | handleConfirmBlur(e) { |
| | | 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 |
| | | } |
| | | //TODO éªè¯æä»¶å¤§å° |
| | | }, |
| | | 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(',')) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .avatar-uploader > .ant-upload { |
| | | width: 104px; |
| | | height: 104px; |
| | | } |
| | | .ant-upload-select-picture-card i { |
| | | font-size: 49px; |
| | | color: #999; |
| | | } |
| | | .avatar-uploader > .ant-upload { |
| | | width: 104px; |
| | | height: 104px; |
| | | } |
| | | |
| | | .ant-upload-select-picture-card .ant-upload-text { |
| | | margin-top: 8px; |
| | | color: #666; |
| | | } |
| | | .ant-upload-select-picture-card i { |
| | | font-size: 49px; |
| | | color: #999; |
| | | } |
| | | |
| | | .ant-table-tbody .ant-table-row td { |
| | | padding-top: 10px; |
| | | padding-bottom: 10px; |
| | | } |
| | | .ant-upload-select-picture-card .ant-upload-text { |
| | | margin-top: 8px; |
| | | color: #666; |
| | | } |
| | | |
| | | .drawer-bottom-button { |
| | | position: absolute; |
| | | bottom: -8px; |
| | | width: 100%; |
| | | border-top: 1px solid #e8e8e8; |
| | | padding: 10px 16px; |
| | | text-align: right; |
| | | left: 0; |
| | | background: #fff; |
| | | border-radius: 0 0 2px 2px; |
| | | } |
| | | .ant-table-tbody .ant-table-row td { |
| | | padding-top: 10px; |
| | | padding-bottom: 10px; |
| | | } |
| | | |
| | | .drawer-bottom-button { |
| | | position: absolute; |
| | | bottom: -8px; |
| | | width: 100%; |
| | | border-top: 1px solid #e8e8e8; |
| | | padding: 10px 16px; |
| | | text-align: right; |
| | | left: 0; |
| | | background: #fff; |
| | | border-radius: 0 0 2px 2px; |
| | | } |
| | | </style> |