Lius
2025-08-22 79ced684c6ec28c8f6affa0ac6cd44e1a88f9cf3
自定义算法配置,设备车间管理,用户管理
已添加2个文件
已修改12个文件
1331 ■■■■■ 文件已修改
src/api/api.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/EquipmentList.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/MdcEquipmentTypeList.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/MdcParameterList.vue 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/EquipmentList/UserModal.vue 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownList.vue 302 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue 318 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcParameter/MdcParameterModal.vue 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/ProductionManager.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/UserList.vue 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/modules/ProductionManager/ProductionModal.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/modules/SelectDeviceModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/modules/UserModal.vue 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/user/Login.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/api.js
@@ -58,7 +58,6 @@
//车间管理
const queryProductionTreeList = (params)=>getAction("/mdc/mdcProduction/queryTreeList",params);
const queryProductionTreeListByMdc = (params)=>getAction("/mdc/mdcProduction/queryTreeListByMdc",params);
const queryById = (params)=>getAction("/mdc/mdcProduction/queryIdTree",params);
const deleteByProduction   = (params)=>deleteAction("/mdc/mdcProduction/delete",params);
@@ -102,8 +101,6 @@
//加载我的通告信息
const getUserNoticeInfo= (params)=>getAction("/sys/sysAnnouncementSend/getMyAnnouncementSend",params);
const getTransitURL = url => `/sys/common/transitRESTful?url=${encodeURIComponent(url)}`
//系统配置参数值获取
const getSystemConfigValue = (params)=>getAction("/system/sysParams/query/by/settingKey",params);
// ä¸­è½¬HTTP请求
export const transitRESTful = {
  get: (url, parameter) => getAction(getTransitURL(url), parameter),
@@ -169,12 +166,10 @@
  getUserNoticeInfo,
  getDictItemsFromCache,
  queryProductionTreeList,
  queryProductionTreeListByMdc,
  deleteByProduction,
  queryById,
  addEquipment,
  editEquipment,
  getSystemConfigValue
  editEquipment
}
src/views/mdc/base/EquipmentList.vue
@@ -27,20 +27,6 @@
          </a-col>
          <a-col :md="4" :sm="4">
            <a-form-item label="设备级别">
              <j-dict-select-tag placeholder="请选择设备级别" dictCode="device_level" v-model="queryParam.deviceLevel"
                                 allow-clear/>
            </a-form-item>
          </a-col>
          <a-col :md="4" :sm="4">
            <a-form-item label="设备种类">
              <j-dict-select-tag placeholder="请选择设备种类" dictCode="device_category" v-model="queryParam.deviceCategory"
                                 allow-clear/>
            </a-form-item>
          </a-col>
          <a-col :md="4" :sm="4">
            <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
            <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
          </a-col>
src/views/mdc/base/MdcEquipmentTypeList.vue
@@ -165,7 +165,7 @@
      }
    },
    created() {
      this.$set(this.dictOptions, 'equipmentTypeStates', [{text:'是',value:'Y'},{text:'否',value:'N'}])
      this.$set(this.dictOptions, 'equipmentTypeStates', [{text:'启用',value:'Y'},{text:'关闭',value:'N'}])
    this.getSuperFieldList();
    },
    computed: {
@@ -174,8 +174,6 @@
      },
    },
    methods: {
      initDictConfig(){
      },
      getSuperFieldList(){
        let fieldList=[];
        fieldList.push({type:'string',value:'equipmentTypeName',text:'设备类型名称',dictCode:''})
src/views/mdc/base/MdcParameterList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,173 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="参数编码">
              <j-input placeholder="请输入参数编码" v-model="queryParam.code"></j-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="参数名称">
              <j-input placeholder="请输入参数名称" v-model="queryParam.name"></j-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="参数类型">
              <a-select v-model="queryParam.type" placeholder="请选择参数类型">
                <a-select-option :key=true>公式</a-select-option>
                <a-select-option :key=false>基本参数</a-select-option>
              </a-select>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> æ‰¹é‡æ“ä½œ <a-icon type="down" /></a-button>
      </a-dropdown>
    </div>
    <!-- table区域-begin -->
    <div>
      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
        <i class="anticon anticon-info-circle ant-alert-icon"></i> å·²é€‰æ‹© <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
      </div>
      <a-table
        ref="table"
        size="middle"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        class="j-table-force-nowrap"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        @change="handleTableChange">
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                  <a>删除</a>
          </a-popconfirm>
        </span>
      </a-table>
    </div>
    <!-- table区域-end -->
    <!-- è¡¨å•区域 -->
    <mdcParameter-modal ref="modalForm" @ok="modalFormOk"></mdcParameter-modal>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import MdcParameterModal from './modules/mdcParameter/MdcParameterModal'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  export default {
    name: "MdcParameterList",
    mixins:[JeecgListMixin],
    components: {
      MdcParameterModal
    },
    data () {
      return {
        description: 'mdc算法公式管理页面',
        // è¡¨å¤´
        columns: [
          {
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
           },
           {
            title: '参数编码',
            align:"center",
            dataIndex: 'code'
           },
           {
            title: '参数名称',
            align:"center",
            dataIndex: 'name'
           },
           {
            title: '参数描述',
            align:"center",
            dataIndex: 'description'
           },
           {
            title: '参数值',
            align:"center",
            dataIndex: 'value'
           },
           {
            title: '参数类型',
            align:"center",
            dataIndex: 'type',
            customRender: (text) => {
             return text ? '公式' : '基本参数';
            }
       },
           {
            title: '备注',
            align:"center",
            dataIndex: 'remark'
           },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            scopedSlots: { customRender: 'action' },
          }
        ],
        url: {
          list: "/mdc/mdcParameter/list",
          delete: "/mdc/mdcParameter/delete",
          deleteBatch: "/mdc/mdcParameter/deleteBatch",
          exportXlsUrl: "mdc/mdcParameter/exportXls",
          importExcelUrl: "mdc/mdcParameter/importExcel",
       },
    }
  },
  computed: {
    importExcelUrl: function(){
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
    }
  },
    methods: {
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
src/views/mdc/base/modules/EquipmentList/UserModal.vue
@@ -120,21 +120,6 @@
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item label="设备级别">
              <j-dict-select-tag placeholder="请选择设备级别" dictCode="device_level" v-model="model.deviceLevel"
                                 :disabled="disableSubmit"/>
            </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="请选择设备种类" dictCode="device_category" v-model="model.deviceCategory"
                                 :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item label="排序">
              <a-input :disabled="disableSubmit" :readOnly="disableSubmit" placeholder="请输入排序"
                       v-model="model.sortNo" style="width: 100%"/>
@@ -144,36 +129,8 @@
        <a-row :gutter="24">
          <a-col :span='12'>
            <a-form-model-item label="配送小组" prop="teamCode">
              <j-dict-select-tag placeholder="请选择配送小组" dictCode="mdc_staff_team" v-model="model.teamCode"
                                 :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span='12'>
            <a-form-model-item label="设备图片">
              <j-image-upload v-model="model.equipmentImage" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24" v-if="systemType">
          <a-col :span='24'>
            <a-form-model-item label="系统类型" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
              <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-row>
        <a-row :gutter="24">
          <a-col :span='12'>
            <a-form-model-item v-if="isDepartType == 0" label="系统版本号">
              <a-input :disabled="disableSubmit" :readOnly="disableSubmit" allow-clear placeholder="请输入系统版本号"
                       v-model="model.systemVersion"/>
            </a-form-model-item>
          </a-col>
        </a-row>
@@ -243,9 +200,7 @@
          driveType: '',
          systemType: '',
          deviceLevel: '',
          deviceCategory: '',
          deviceTypeDnc: '',
          deviceTypeMdc: ''
          deviceCategory: ''
        },
        labelCol: {
          xs: { span: 24 },
@@ -264,8 +219,6 @@
          sm: { span: 19 }
        },
        confirmLoading: false,
        systemType: false,
        systemValue: '3',
        url: {
          userWithDepart: '/mdc/mdcEquipment/equipmentDepartList', // å¼•入为指定用户查看部门信息需要的url
          //引入为指定用户查看车间信息需要的url
@@ -283,7 +236,6 @@
    created() {
      this.queryGroup()
      this.queryTreeData()
      this.getAppPlatformName()
    },
    methods: {
      ...mapActions(['QueryDepartTree']),
@@ -296,13 +248,6 @@
              message: '消息',
              description: res.message
            })
          }
        })
      },
      getAppPlatformName() {
        getAction(`/system/sysParams/query/by/settingKey?settingKey=system_type`).then(res => {
          if (res.success) {
            this.systemType = res.result.settingValue === '0'
          }
        })
      },
@@ -359,16 +304,11 @@
        //根据屏幕宽度自适应抽屉宽度
        this.resetScreenSize()
        if (record.systemValue != null) {
          this.systemValue = record.systemValue
        } else {
          this.systemValue = '3'
        }
        that.model = Object.assign({}, record)
        this.$nextTick(() => {
          this.form.setFieldsValue(pick(that.model, 'selectedDeparts', 'selectedProduction', 'equipmentId', 'equipmentName', 'equipmentModel', 'equipmentType', 'equipmentIp', 'dataPort',
            'driveType', 'sortNo', 'remark', 'systemVersion', 'devicePower', 'controlSystem', 'saveTableName', 'systemValue'))
            'driveType', 'sortNo', 'remark', 'systemVersion', 'devicePower', 'controlSystem', 'saveTableName'))
        })
        if (record.hasOwnProperty('id')) {
          that.getUserDeparts(record.id)
@@ -462,17 +402,11 @@
        this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = true
            if (this.systemValue == null) {
              this.$message.warning('请选择系统类型!')
              return false
            }
            let obj
            if (!this.model.id) {
              this.model.id = this.userId
              this.model.systemValue = this.systemValue
              obj = addEquipment(this.model)
            } else {
              this.model.systemValue = this.systemValue
              obj = editEquipment(this.model, {
                id: this.model.id
              })
src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownList.vue
@@ -6,17 +6,26 @@
        <a-form layout="inline" @keyup.enter.native="searchQuery">
          <a-row :gutter="24">
            <a-col :md="4" :sm="4">
              <a-form-item label="日期">
                <a-date-picker value-format="YYYY-MM-DD" style="width: 100%" v-model="queryParam.theDate"/>
              <a-form-item label="停机日期">
                <a-date-picker placeholder="请选择停机日期" value-format="YYYY-MM-DD" style="width: 100%"
                               v-model="queryParam.theDate" :allow-clear="false"/>
              </a-form-item>
            </a-col>
            <a-col :md="2" :sm="2" :xs="2">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
            <a-col :md="4" :sm="4" :xs="4">
              <a-space>
                <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
                <a-button @click="searchReset" icon="reload">重置</a-button>
              </a-space>
            </a-col>
          </a-row>
        </a-form>
      </div>
    </div>
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
    </div>
    <div style="overflow: hidden;width: 100%;flex: 1" id="DeviceList">
@@ -30,7 +39,7 @@
        </template>
        <template slot="action" slot-scope="text, record">
          <a @click="handleReport(record)">上报</a>
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical"/>
@@ -46,168 +55,167 @@
</template>
<script>
import moment from 'moment'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import EquipmentStandbyShutdownModal
  from '@views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue'
  import moment from 'moment'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import EquipmentStandbyShutdownModal
    from '@views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue'
export default {
  name: 'EquipmentStandbyShutdownList',
  components: { EquipmentStandbyShutdownModal },
  mixins: [JeecgListMixin],
  data() {
    return {
      disableMixinCreated: true,
      scrollY: 465,
      queryParam: {
        theDate: moment().subtract('days', 1).format('YYYY-MM-DD')
      },
      columns: [
        {
          title: '#',
          dataIndex: '',
          key: 'rowIndex',
          width: 60,
          align: 'center',
          customRender: function(t, r, index) {
            return parseInt(index) + 1
  export default {
    name: 'EquipmentStandbyShutdownList',
    components: { EquipmentStandbyShutdownModal },
    mixins: [JeecgListMixin],
    data() {
      return {
        disableMixinCreated: true,
        scrollY: 465,
        queryParam: {
          theDate: moment().subtract('days', 1).format('YYYY-MM-DD')
        },
        columns: [
          {
            title: '#',
            dataIndex: '',
            key: 'rowIndex',
            width: 60,
            align: 'center',
            customRender: function(t, r, index) {
              return parseInt(index) + 1
            }
          },
          {
            title: '设备编号',
            align: 'center',
            dataIndex: 'equipmentId',
            width: 200
          },
          {
            title: '设备名称',
            align: 'center',
            dataIndex: 'equipmentName',
            width: 200
          },
          {
            title: '停机类型',
            align: 'center',
            dataIndex: 'downtimeType',
            scopedSlots: { customRender: 'downtimeType' },
            width: 150
          },
          {
            title: '停机原因',
            align: 'center',
            dataIndex: 'downtimeDescription',
            width: 200
          },
          {
            title: '停机日期',
            align: 'center',
            dataIndex: 'theDate',
            width: 150
          },
          {
            title: '停机时长(min)',
            align: 'center',
            dataIndex: 'downLong',
            width: 150
          },
          {
            title: '备注',
            align: 'center',
            dataIndex: 'remark'
          },
          {
            title: '操作',
            dataIndex: 'action',
            align: 'center',
            width: 150,
            scopedSlots: { customRender: 'action' },
            fixed: 'right'
          }
        },
        {
          title: '设备编号',
          align: 'center',
          dataIndex: 'equipmentId',
          width: 200
        },
        {
          title: '设备名称',
          align: 'center',
          dataIndex: 'equipmentName',
          width: 200
        },
        {
          title: '停机类型',
          align: 'center',
          dataIndex: 'downtimeType',
          scopedSlots: { customRender: 'downtimeType' },
          width: 150
        },
        {
          title: '停机原因',
          align: 'center',
          dataIndex: 'downtimeDescription',
          width: 200
        },
        {
          title: '开始时间',
          align: 'center',
          dataIndex: 'startDate',
          width: 150
        },
        {
          title: '结束时间',
          align: 'center',
          dataIndex: 'endDate',
          width: 150
        },
        {
          title: '备注',
          align: 'center',
          dataIndex: 'remark',
          width: 200
        },
        {
          title: '操作',
          dataIndex: 'action',
          align: 'center',
          width: 150,
          scopedSlots: { customRender: 'action' },
          fixed: 'right'
        ],
        url: {
          list: '/mdc/mdcDowntime/list',
          delete: '/mdc/mdcDowntime/delete'
        }
      ],
      url: {
        list: '/mdc/mdcDowntime/list',
        delete: '/mdc/mdcDowntime/delete'
      }
    }
  },
  props: { node: {}, Type: '' },
  created() {
    this.queryParam.typeTree = '1'
    this.loadData()
  },
  mounted() {
    window.addEventListener('resize', this.handleWindowResize)
    this.handleWindowResize()
  },
  beforeDestroy() {
    window.removeEventListener('resize', this.handleWindowResize)
  },
  watch: {
    Type(valmath) {
      this.queryParam.typeTree = valmath
    },
    node(val) { //监听currSelected å˜åŒ–,将变化后的数值传递给 getCurrSelected äº‹ä»¶
      if (JSON.stringify(val) != '{}') {
        if (val.equipmentId != null) {
          this.queryParam.equipmentId = val.equipmentId
          this.queryParam.parentId = ''
        } else {
          this.queryParam.parentId = val.key
          this.queryParam.equipmentId = ''
    props: { node: {}, Type: '' },
    created() {
      this.queryParam.typeTree = '1'
      this.loadData()
    },
    mounted() {
      window.addEventListener('resize', this.handleWindowResize)
      this.handleWindowResize()
    },
    beforeDestroy() {
      window.removeEventListener('resize', this.handleWindowResize)
    },
    watch: {
      Type(valmath) {
        this.queryParam.typeTree = valmath
      },
      node(val) { //监听currSelected å˜åŒ–,将变化后的数值传递给 getCurrSelected äº‹ä»¶
        if (JSON.stringify(val) != '{}') {
          if (val.equipmentId != null) {
            this.queryParam.equipmentId = val.equipmentId
            this.queryParam.parentId = ''
          } else {
            this.queryParam.parentId = val.key
            this.queryParam.equipmentId = ''
          }
          this.loadData(1)
        }
      }
    },
    methods: {
      searchReset() {
        this.queryParam = { theDate: moment().subtract('days', 1).format('YYYY-MM-DD') }
        this.loadData(1)
      }
    }
  },
  methods: {
    handleReport(record) {
      this.$refs.modalForm.edit(record)
      this.$refs.modalForm.title = '上报'
    },
      },
    handleWindowResize() {
      const boxHeight = +window.getComputedStyle(document.getElementById('DeviceList')).height.slice(0, -2)
      const tableHeadHeight = +window.getComputedStyle(document.querySelector('.ant-table-thead th')).height.slice(0, -2)
      this.scrollY = boxHeight - tableHeadHeight - 50
      handleWindowResize() {
        const boxHeight = +window.getComputedStyle(document.getElementById('DeviceList')).height.slice(0, -2)
        const tableHeadHeight = +window.getComputedStyle(document.querySelector('.ant-table-thead th')).height.slice(0, -2)
        this.scrollY = boxHeight - tableHeadHeight - 50
      }
    }
  }
}
</script>
<style scoped>
.page-container {
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 1920px) {
  .page-container {
    height: 812px !important;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
}
@media screen and (min-width: 1680px) and (max-width: 1920px) {
  .page-container {
    height: 812px !important;
  @media screen and (min-width: 1920px) {
    .page-container {
      height: 812px !important;
    }
  }
}
@media screen and (min-width: 1400px) and (max-width: 1680px) {
  .page-container {
    height: 664px !important;
  @media screen and (min-width: 1680px) and (max-width: 1920px) {
    .page-container {
      height: 812px !important;
    }
  }
}
@media screen and (min-width: 1280px) and (max-width: 1400px) {
  .page-container {
    height: 565px !important;
  @media screen and (min-width: 1400px) and (max-width: 1680px) {
    .page-container {
      height: 664px !important;
    }
  }
}
@media screen and (max-width: 1280px) {
  .page-container {
    height: 565px !important;
  @media screen and (min-width: 1280px) and (max-width: 1400px) {
    .page-container {
      height: 565px !important;
    }
  }
}
  @media screen and (max-width: 1280px) {
    .page-container {
      height: 565px !important;
    }
  }
</style>
src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue
@@ -1,9 +1,18 @@
<template>
  <a-modal :title="title" :width="500" :visible="visible" :confirmLoading="confirmLoading" @ok="handleOk"
  <a-modal :title="title" :width="900" :visible="visible" :confirmLoading="confirmLoading" @ok="handleOk"
           @cancel="handleCancel" cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :form="form" :model="model" :rules="validatorRules" :labelCol="labelColLong"
    <a-spin :spinning="spinning">
      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelColLong"
                    :wrapperCol="wrapperColLong">
        <a-row :gutter="24">
          <a-col :span="24">
            <a-form-model-item label="设备组" prop="equipmentIds">
              <a-input-search readOnly v-model="model.equipmentIds" @search="deviceSearch" enter-button
                              placeholder="请选择设备" />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="24">
            <a-form-model-item label="停机类型" prop="downtimeType">
@@ -14,6 +23,7 @@
              </a-radio-group>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
@@ -30,68 +40,112 @@
        <a-row :gutter="24">
          <a-col :span="24">
            <a-form-model-item v-if="title === '编辑'" label="停机日期" prop="theDate">
              <a-date-picker :disabled="true" v-model="model.theDate" placeholder="请选择停机日期"
                             value-format="YYYY-MM-DD"
                             style="width: 100%" />
            </a-form-model-item>
            <a-form-item v-if="title === '新增'" label="停机日期" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
              <div class="mainBox">
                <Calendar
                  v-on:choseDay="clickDay"
                  :markDate="shiData"
                  :agoDayHide="value"
                ></Calendar>
              </div>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="24">
            <a-form-model-item label="停机时长(min)" prop="downLong">
              <a-input-number v-model="model.downLong" :min="1" :max="1440" :step="1" :precision="0"
                              placeholder="请输入停机时长(min)"
                              style="width: 100%" />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="24">
            <a-form-model-item label="备注">
              <a-textarea v-model="model.remark" placeholder="请输入备注"/>
              <a-textarea v-model="model.remark" placeholder="请输入备注" />
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </a-spin>
    <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'选择设备'" />
  </a-modal>
</template>
<script>
import Calendar from 'vue-calendar-component'
import { getAction, postAction } from '@api/manage'
import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer'
export default {
  name: 'EquipmentStandbyShutdownModal',
  components: {},
  components: { SelectDeviceDrawer, Calendar },
  props: {},
  data() {
    return {
      title: '',
      visible: false,
      value: '',
      model: {},
      equipmentList: [],
      downtimeDescriptionList: [],
      labelColLong: {
        xs: {
          span: 24
        },
        sm: {
          span: 5
        }
        xs: { span: 24 },
        sm: { span: 6 }
      },
      wrapperColLong: {
        xs: {
          span: 24
        },
        sm: {
          span: 17
        }
        xs: { span: 24 },
        sm: { span: 16 }
      },
      confirmLoading: false,
      form: this.$form.createForm(this),
      spinning: false,
      disableSelectDevice: false,
      validatorRules: {
        equipmentIds: [
          { required: true, message: '请选择设备', trigger: 'change' }
        ],
        downtimeType: [
          {
            required: true, message: '请选择停机类型'
          }
          { required: true, message: '请选择停机类型' }
        ],
        reasonId: [
          {
            required: true, message: '请选择停机原因'
          }
          { required: true, message: '请选择停机原因' }
        ],
        theDate: [
          { required: true, message: '请选择停机日期' }
        ],
        downLong: [
          { required: true, message: '请输入停机时长(min)' }
        ]
      },
      url: {
        add: '/mdc/mdcDowntime/add',
        edit: '/mdc/mdcDowntime/edit',
        getDowntimeDescriptionListByDowntimeType: '/mdc/mdcDowntimeReason/downtimeReasonList'
      }
      },
      shiData: [],
      sendDte: []
    }
  },
  methods: {
    add() {
      this.resetSelect()
      this.edit({
        downtimeType: 0
      })
    },
    edit(record) {
      this.model = Object.assign({}, record)
      this.model = Object.assign({}, record, { equipmentIds: record.equipmentId })
      this.getDowntimeDescriptionListByApi()
      if (this.model.downtimeType === null) {
        delete this.model.downtimeType
@@ -111,9 +165,13 @@
    getDowntimeDescriptionListByApi() {
      const that = this
      this.downtimeDescriptionList = []
      this.spinning = true
      getAction(this.url.getDowntimeDescriptionListByDowntimeType, { downtimeType: this.model.downtimeType })
        .then(res => {
          if (res.success) that.downtimeDescriptionList = res.result
        })
        .finally(() => {
          that.spinning = false
        })
    },
@@ -122,46 +180,210 @@
      // è§¦å‘表单验证
      this.$refs.form.validate(valid => {
        if (valid) {
          that.confirmLoading = true
          postAction(this.url.edit, that.model)
            .then((res) => {
              if (res.success) {
                that.$notification.success({
                  message: '消息',
                  description: res.message
                })
                that.$emit('ok', res.result)
                that.handleCancel()
              } else {
                that.$notification.warning({
                  message: '消息',
                  description: res.message
                })
              }
          that.confirmLoading = that.spinning = true
          let url
          if (!that.model.id) {
            url = that.url.add
          } else {
            url = that.url.edit
          }
          that.model.dateList = this.sendDte
          if (that.model.dateList && that.model.dateList.length > 0) {
            postAction(url, that.model)
              .then((res) => {
                if (res.success) {
                  that.$notification.success({
                    message: '消息',
                    description: res.message
                  })
                  that.$emit('ok')
                  that.handleCancel()
                } else {
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
                  })
                }
              })
              .finally(() => {
                that.confirmLoading = that.spinning = false
              })
          } else {
            that.confirmLoading = false
            that.$notification.warning({
              message: '消息',
              description: '请选择生效时间!'
            })
            .finally(() => {
              that.confirmLoading = false
            })
        } else {
          return false
          }
        }
      })
    },
    deviceSearch() {
      this.$refs.selectDeviceDrawer.visible = true
      this.$refs.selectDeviceDrawer.selectedRowKeys = []
      this.$refs.selectDeviceDrawer.selectedRows = []
      this.$refs.selectDeviceDrawer.checkedKeys = this.model.equipmentIds ? this.model.equipmentIds.split(',') : []
    },
    /**
     * é€‰æ‹©å·²æœ‰è®¾å¤‡åŽç‚¹å‡»ç¡®å®šæ—¶è§¦å‘
     * @param data å·²é€‰æ‹©çš„设备
     */
    selectOK(data) {
      this.$set(this.model, 'equipmentIds', data.join(','))
      if (this.model.equipmentIds) this.$refs.form.clearValidate('equipmentIds')
    },
    handleCancel() {
      this.visible = false
      this.removeValidate()
    },
    // å…³é—­å¼¹çª—时清楚表单校验
    removeValidate() {
      if (this.$refs.form) this.$refs.form.clearValidate()
    },
    resetSelect() {//重置选中的日期
      this.selectDate = []
      this.shiData = []
      this.sendDte = []
    },
    fun(obj) {
      console.log(obj)
      if (obj) {
        if (obj = obj.split('/')) {
          var timShi = obj[1]
          var timFen = obj[2]
          if (timShi < 10) {
            timShi = '0' + timShi
          }
          if (timFen < 10) {
            timFen = '0' + timFen
          }
          var dd = (obj[0] + timShi + timFen)
          return dd
        }
      }
    },
    clickDay(today) {//选中日期
      let existDate = this.selectDate
      let isExist = true
      for (var i = 0; i < existDate.length; i++) {
        if (existDate[i].date === today) {
          this.selectDate.splice(i, 1)
          this.shiData.splice(i, 1)
          this.sendDte.splice(i, 1)
          isExist = false
        }
      }
      if (isExist) {//当前日期存在移除
        let tempDate = { date: today, className: 'mark1' }
        // let ddd = this.fun(today)
        let ddd = today
        let ccc = this.fun(today)
        this.selectDate.push(tempDate)
        this.shiData.push(ddd)
        this.sendDte.push(ccc)
      }
    }
  }
}
</script>
<style scoped lang="less">
/deep/ .ant-modal-close {
  color: #1191b0;
  font-size: 24px;
}
/deep/ .ant-modal-close-x {
  font-size: 24px;
}
.ant-btn {
  padding: 0 10px;
  margin-left: 3px;
}
.ant-form-item-control {
  line-height: 0px;
}
/** ä¸»è¡¨å•行间距 */
.ant-form .ant-form-item {
  margin-bottom: 10px;
}
/** Tab页面行间距 */
.ant-tabs-content .ant-form-item {
  margin-bottom: 0px;
}
/deep/ .mark1 {
  color: white !important;
  background-color: #1890ff !important;
  border-radius: 50%;
}
/deep/ .mainBox .wh_content_all {
  background-color: #ffffff;
  border: 1px silver solid;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
}
/deep/ .mainBox .wh_content_all .wh_jiantou1 {
  border-top: 2px solid #000000;
  border-left: 2px solid #000000;
}
/deep/ .mainBox .wh_content_all .wh_jiantou2 {
  border-top: 2px solid #000000;
  border-right: 2px solid #000000;
}
/deep/ .mainBox .wh_content_all .wh_top_changge li {
  color: black;
}
/deep/ .mainBox .wh_content_all .wh_content_item {
  margin-top: 5px;
}
/deep/ .mainBox .wh_content_all .wh_content_item .wh_top_tag {
  color: #000000;
}
/deep/ .mainBox .wh_content_all .wh_content_item .wh_item_date {
  color: #000000;
}
/deep/ .mainBox .wh_content_all .wh_content_item .wh_item_date:hover {
  color: #1890ff;
  border: 1px solid #1890ff;
  border-radius: 50%;
}
/deep/ .mainBox .wh_content_all .wh_content_item .wh_other_dayhide {
  color: #bfbfbf !important;
}
/deep/ .mainBox .wh_content_all .wh_content_item .wh_want_dayhide {
  color: #bfbfbf !important;
}
/deep/ .mainBox .wh_content_all .wh_content_item .wh_chose_day {
  background: #ffffff;
  color: #000000;
}
/deep/ .mainBox .wh_content_all .wh_content_item .wh_isMark {
  color: #ffffff;
  background-color: blue;
}
</style>
src/views/mdc/base/modules/mdcParameter/MdcParameterModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,131 @@
<template>
  <j-modal
    :title="title"
    :width="800"
    :visible="visible"
    :confirmLoading="confirmLoading"
    switchFullscreen
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules">
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="code" label="参数编码">
          <a-input placeholder="请输入参数编码" v-model="model.code" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name" label="参数名称">
          <a-input placeholder="请输入参数名称" v-model="model.name" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="type" label="参数类型">
          <a-radio-group v-model="model.type" placeholder="请选择参数类型">
            <a-radio :value=true>公式</a-radio>
            <a-radio :value=false>基本参数</a-radio>
          </a-radio-group>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="value" label="参数值" v-if="model.type">
          <a-input placeholder="请输入参数值" v-model="model.value" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="description" label="参数描述">
          <a-input placeholder="请输入参数描述" v-model="model.description" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark" label="备注">
          <a-textarea placeholder="请输入备注" v-model="model.remark" />
        </a-form-model-item>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
  import { httpAction } from '@/api/manage'
  import moment from "moment"
  export default {
    name: "MdcParameterModal",
    data () {
      return {
        title:"操作",
        visible: false,
        model: {},
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
        confirmLoading: false,
        validatorRules:{
          code:[{ required: true, message: '请输入参数编码!' }],
          type:[{ required: true, message: '请输入参数类型!' }],
        },
        url: {
          add: "/mdc/mdcParameter/add",
          edit: "/mdc/mdcParameter/edit",
        },
      }
    },
    created () {
    },
    methods: {
      add () {
        //初始化默认值
        this.edit({type:false});
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      },
      close () {
        this.$emit('close');
        this.visible = false;
        this.$refs.form.clearValidate();
      },
      handleOk () {
        const that = this;
        // è§¦å‘表单验证
         this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = true;
            let httpurl = '';
            let method = '';
            if(!this.model.id){
              httpurl+=this.url.add;
              method = 'post';
            }else{
              httpurl+=this.url.edit;
               method = 'put';
            }
            httpAction(httpurl,this.model,method).then((res)=>{
              if(res.success){
                that.$message.success(res.message);
                that.$emit('ok');
              }else{
                that.$message.warning(res.message);
              }
            }).finally(() => {
              that.confirmLoading = false;
              that.close();
            })
          }else{
             return false;
          }
        })
      },
      handleCancel () {
        this.close()
      },
    }
  }
</script>
<style lang="less" scoped>
</style>
src/views/system/ProductionManager.vue
@@ -109,9 +109,6 @@
                  placeholder="无">
                </a-tree-select>
              </a-form-model-item>
              <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="是否MDC使用">
                <lx-switch checked-children='是' un-checked-children='否' v-model="model.mdcFlag"/>
              </a-form-model-item>
              <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="排序">
                <a-input-number v-model="model.productionOrder"/>
              </a-form-model-item>
src/views/system/UserList.vue
@@ -8,7 +8,6 @@
          <a-col :md="6" :sm="12">
            <a-form-item label="账号">
              <!--<a-input placeholder="请输入账号查询" v-model="queryParam.username"></a-input>-->
              <j-input placeholder="输入账号模糊查询" v-model="queryParam.username"></j-input>
            </a-form-item>
          </a-col>
@@ -180,16 +179,6 @@
        queryParam: {},
        recycleBinVisible: false,
        columns: [
          /*{
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
          },*/
          {
            title: '用户账号',
            align: "center",
@@ -202,39 +191,6 @@
            align: "center",
            width: 100,
            dataIndex: 'realname',
          },
          {
            title: '头像',
            align: "center",
            width: 80,
            dataIndex: 'avatar',
            scopedSlots: {customRender: "avatarslot"}
          },
          // {
          //   title: '性别',
          //   align: "center",
          //   width: 80,
          //   dataIndex: 'sex_dictText',
          //   sorter: true
          // },
          // {
          //   title: '生日',
          //   align: "center",
          //   width: 100,
          //   dataIndex: 'birthday'
          // },
          // {
          //   title: '手机号码',
          //   align: "center",
          //   width: 100,
          //   dataIndex: 'phone'
          // },
          {
            title: '岗位',
            align: "center",
            width: 80,
            dataIndex: 'post_dictText'
          },
          {
            title: '部门',
@@ -312,37 +268,10 @@
                  dataIndex: 'realname',
                },
                {
                  title: '头像',
                  title: '工号',
                  align: "center",
                  width: 80,
                  dataIndex: 'avatar',
                  scopedSlots: {customRender: "avatarslot"}
                },
                // {
                //   title: '性别',
                //   align: "center",
                //   width: 80,
                //   dataIndex: 'sex_dictText',
                //   sorter: true
                // },
                // {
                //   title: '生日',
                //   align: "center",
                //   width: 100,
                //   dataIndex: 'birthday'
                // },
                // {
                //   title: '手机号码',
                //   align: "center",
                //   width: 100,
                //   dataIndex: 'phone'
                // },
                {
                  title: '岗位',
                  align: "center",
                  width: 80,
                  dataIndex: 'post_dictText'
                  width: 100,
                  dataIndex: 'workNo',
                },
                {
                  title: '车间',
@@ -383,39 +312,6 @@
                  dataIndex: 'realname',
                },
                {
                  title: '头像',
                  align: "center",
                  width: 80,
                  dataIndex: 'avatar',
                  scopedSlots: {customRender: "avatarslot"}
                },
                // {
                //   title: '性别',
                //   align: "center",
                //   width: 80,
                //   dataIndex: 'sex_dictText',
                //   sorter: true
                // },
                // {
                //   title: '生日',
                //   align: "center",
                //   width: 100,
                //   dataIndex: 'birthday'
                // },
                // {
                //   title: '手机号码',
                //   align: "center",
                //   width: 100,
                //   dataIndex: 'phone'
                // },
                {
                  title: '岗位',
                  align: "center",
                  width: 80,
                  dataIndex: 'post_dictText'
                },
                {
                  title: '部门',
                  align: "center",
                  width: 240,
@@ -427,12 +323,6 @@
                  width: 240,
                  dataIndex: 'productionName',
                  ellipsis: true,
                },
                {
                  title: '班组',
                  align: "center",
                  width: 240,
                  dataIndex: 'teamId_dictText'
                },
                {
                  title: '状态',
src/views/system/modules/ProductionManager/ProductionModal.vue
@@ -43,12 +43,6 @@
        <a-form-model-item
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          label="是否MDC使用">
          <lx-switch checked-children='是' un-checked-children='否' v-model="model.mdcFlag"/>
        </a-form-model-item>
        <a-form-model-item
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          label="排序">
          <a-input-number v-model="model.productionOrder"/>
        </a-form-model-item>
@@ -127,7 +121,6 @@
          this.seen = false;
          this.dictDisabled = false;
          this.model.parentId = depart.id;
          this.model.mdcFlag = depart.mdcFlag;
        }else{
          this.seen = true;
          this.dictDisabled = true;
src/views/system/modules/SelectDeviceModal.vue
@@ -58,7 +58,7 @@
  } from '@/api/manage'
  import BaseTree from '@/views/mdc/common/BaseTree'
  import DepartTree from '@/views/mdc/base/modules/DepartList/DepartListTree/DepartTree'
  import { getSystemConfigValue } from '@api/api'
  // import { getSystemConfigValue } from '@api/api'
  export default {
    name: 'SelectDeviceModal',
src/views/system/modules/UserModal.vue
@@ -97,11 +97,6 @@
          />
        </a-form-model-item>
        <a-form-model-item label="岗位" :labelCol="labelCol" :wrapperCol="wrapperCol">
<!--          <j-select-position placeholder="请选择岗位" :multiple="false" v-model="model.post"/>-->
          <j-dict-select-tag placeholder="请选择岗位" dict-code="sys_position, name, code" v-model="model.post" />
        </a-form-model-item>
        <a-form-model-item
          label="角色分配"
          :labelCol="labelCol"
@@ -170,153 +165,6 @@
            />
          </a-tooltip>
        </a-form-model-item>
        <!--<a-form-model-item-->
        <!--label="首页权限"-->
        <!--:labelCol="labelCol"-->
        <!--:wrapperCol="wrapperCol"-->
        <!--&gt;-->
        <!--<a-radio-group-->
        <!--v-model="model.userType"-->
        <!--:defaultValue="0"-->
        <!--&gt;-->
        <!--<a-radio :value="4">公司级</a-radio>-->
        <!--<a-radio :value="3">车间级</a-radio>-->
        <!--<a-radio :value="2">工段级</a-radio>-->
        <!--<a-radio :value="1">操作工</a-radio>-->
        <!--<a-radio :value="0">无</a-radio>-->
        <!--</a-radio-group>-->
        <!--</a-form-model-item>-->
        <!--<a-form-model-item-->
        <!--label="班组分配"-->
        <!--:labelCol="labelCol"-->
        <!--:wrapperCol="wrapperCol"-->
        <!--prop="teamId"-->
        <!--&gt;-->
        <!--<j-dict-select-tag-->
        <!--v-model="model.teamId"-->
        <!--:triggerChange="true"-->
        <!--dictCode="mom_base_team,name,id,del_flag = 0"-->
        <!--placeholder="请维护班组"-->
        <!--&gt;</j-dict-select-tag>-->
        <!--</a-form-model-item>-->
        <!--<a-form-model-item-->
        <!--label="中心分配"-->
        <!--:labelCol="labelCol"-->
        <!--:wrapperCol="wrapperCol"-->
        <!--prop="areaId"-->
        <!--&gt;-->
        <!--&lt;!&ndash; <j-dict-select-tag-->
        <!--v-model="model.areaId"-->
        <!--:triggerChange="true"-->
        <!--dictCode="mom_base_area,name,id,del_flag = 0"-->
        <!--placeholder="请维护中心"-->
        <!--&gt;</j-dict-select-tag> &ndash;&gt;-->
        <!--<j-multi-select-tag-->
        <!--:triggerChange="true"-->
        <!--v-model="model.areaId"-->
        <!--dictCode="mom_base_area,name,id,del_flag = 0 and type = 1"-->
        <!--placeholder="请维护中心"-->
        <!--&gt;-->
        <!--</j-multi-select-tag>-->
        <!--</a-form-model-item>-->
        <!--<a-form-model-item-->
        <!--label="负责部门"-->
        <!--:labelCol="labelCol"-->
        <!--:wrapperCol="wrapperCol"-->
        <!--v-if="departIdShow==true"-->
        <!--&gt;-->
        <!--<j-multi-select-tag-->
        <!--:disabled="disableSubmit"-->
        <!--v-model="model.departIds"-->
        <!--:options="nextDepartOptions"-->
        <!--placeholder="请选择负责部门"-->
        <!--&gt;-->
        <!--</j-multi-select-tag>-->
        <!--</a-form-model-item>-->
        <!--<a-form-model-item-->
        <!--label="头像"-->
        <!--:labelCol="labelCol"-->
        <!--:wrapperCol="wrapperCol"-->
        <!--&gt;-->
        <!--<j-image-upload-->
        <!--class="avatar-uploader"-->
        <!--text="上传"-->
        <!--v-model="model.avatar"-->
        <!--&gt;</j-image-upload>-->
        <!--</a-form-model-item>-->
        <!--<a-form-model-item-->
        <!--label="生日"-->
        <!--:labelCol="labelCol"-->
        <!--:wrapperCol="wrapperCol"-->
        <!--&gt;-->
        <!--<a-date-picker-->
        <!--style="width: 100%"-->
        <!--placeholder="请选择生日"-->
        <!--v-model="model.birthday"-->
        <!--:format="dateFormat"-->
        <!--:getCalendarContainer="node => node.parentNode"-->
        <!--/>-->
        <!--</a-form-model-item>-->
        <!--<a-form-model-item-->
        <!--label="性别"-->
        <!--:labelCol="labelCol"-->
        <!--:wrapperCol="wrapperCol"-->
        <!--&gt;-->
        <!--<a-select-->
        <!--v-model="model.sex"-->
        <!--placeholder="请选择性别"-->
        <!--:getPopupContainer="(target) => target.parentNode"-->
        <!--&gt;-->
        <!--<a-select-option :value="1">男</a-select-option>-->
        <!--<a-select-option :value="2">女</a-select-option>-->
        <!--</a-select>-->
        <!--</a-form-model-item>-->
        <!--<a-form-model-item-->
        <!--label="邮箱"-->
        <!--:labelCol="labelCol"-->
        <!--:wrapperCol="wrapperCol"-->
        <!--prop="email"-->
        <!--&gt;-->
        <!--<a-input-->
        <!--placeholder="请输入邮箱"-->
        <!--v-model="model.email"-->
        <!--/>-->
        <!--</a-form-model-item>-->
        <!--<a-form-model-item-->
        <!--label="手机号码"-->
        <!--:labelCol="labelCol"-->
        <!--:wrapperCol="wrapperCol"-->
        <!--prop="phone"-->
        <!--&gt;-->
        <!--<a-input-->
        <!--placeholder="请输入手机号码"-->
        <!--v-model="model.phone"-->
        <!--/>-->
        <!--</a-form-model-item>-->
        <!--<a-form-model-item-->
        <!--label="座机"-->
        <!--:labelCol="labelCol"-->
        <!--:wrapperCol="wrapperCol"-->
        <!--prop="telephone"-->
        <!--&gt;-->
        <!--<a-input-->
        <!--placeholder="请输入座机"-->
        <!--v-model="model.telephone"-->
        <!--/>-->
        <!--</a-form-model-item>-->
        <!--<a-form-model-item label="工作流引擎" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
        <!--<j-dict-select-tag  v-model="model.activitiSync"  placeholder="请选择是否同步工作流引擎" :type="'radio'" dictCode="activiti_sync"/>-->
        <!--</a-form-model-item>-->
      </a-form-model>
    </a-spin>
src/views/user/Login.vue
@@ -34,10 +34,6 @@
              @fail="requestFailed"
            ></login-account>
          </a-tab-pane>
          <!--<a-tab-pane key="tab2" tab="手机号登录">-->
          <!--<login-phone ref="plogin" @validateFail="validateFail" @success="requestSuccess" @fail="requestFailed"></login-phone>-->
          <!--</a-tab-pane>-->
        </a-tabs>
        <a-form-model-item>
@@ -70,12 +66,10 @@
      </a-form-model>
    </div>
    <!--<two-step-captcha v-if="requiredTwoStepCaptcha" :visible="stepCaptchaVisible" @success="stepCaptchaSuccess" @cancel="stepCaptchaCancel"></two-step-captcha>-->
    <login-select-tenant
      ref="loginSelect"
      @success="loginSelectOk"
    ></login-select-tenant>
    <!--<third-login ref="thirdLogin"></third-login>-->
    <user-password ref="userPassword"/>
  </div>
</template>
@@ -168,10 +162,7 @@
          description: description,
          duration: 4,
        });
        //账户密码登录错误后更新验证码
        if(this.customActiveKey === 'tab1' && description.indexOf('密码错误')>0){
          this.$refs.alogin.handleChangeCheckCode()
        }
        this.loginBtn = false;
      },
      loginSelectOk(){
@@ -186,27 +177,6 @@
          message: '欢迎',
          description: `${timeFix()},欢迎回来`,
        });
      },
      stepCaptchaSuccess() {
        this.loginSuccess()
      },
      stepCaptchaCancel() {
        this.Logout().then(() => {
          this.loginBtn = false
          this.stepCaptchaVisible = false
        })
      },
      //获取密码加密规则
      getEncrypte() {
        var encryptedString = Vue.ls.get(ENCRYPTED_STRING)
        if (encryptedString == null) {
          getEncryptedString().then((data) => {
            this.encryptedString = data
          })
        } else {
          this.encryptedString = encryptedString
        }
      }
    }