zhangherong
3 天以前 c3cda9b9aa93609969e356c6e72ced75944e85cb
art: 班组管理 代码优化
已修改2个文件
111 ■■■■ 文件已修改
src/views/base/ShiftGroupManager.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/base/modules/group/GroupModal.vue 93 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/base/ShiftGroupManager.vue
@@ -7,7 +7,13 @@
          <!-- 搜索区域 -->
          <a-form layout="inline" @keyup.enter.native="searchQuery">
            <a-row :gutter="24">
              <a-col :md="6" :sm="8">
              <a-col :xl="6" :lg="7" :md="8" :sm="24">
                <a-form-item label="产线">
                  <j-dict-select-tag placeholder="请选择产线" v-model="queryParam.factoryId"
                                     dictCode="base_factory,factory_name,id,del_flag=0 and factory_category='3'"></j-dict-select-tag>
                </a-form-item>
              </a-col>
              <a-col :xl="6" :lg="7" :md="8" :sm="24">
                <a-form-item label="班组名称" :labelCol="{span: 5}" :wrapperCol="{span: 18, offset: 1}">
                  <a-input placeholder="" v-model="queryParam.groupName"></a-input>
                </a-form-item>
@@ -89,7 +95,7 @@
              <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
            <a-col :md="9" :sm="24">
             <a-button type="primary" @click="searchQuery2" icon="search" style="margin-left: 21px">查询</a-button>
              <a-button type="primary" @click="searchReset2" icon="reload" style="margin-left: 8px">重置</a-button>
              <a-button type="info" @click="searchReset2" icon="reload" style="margin-left: 8px">重置</a-button>
            </a-col>
          </span>
@@ -170,7 +176,7 @@
        queryParam2: {},
        dataSource1: [],
        dataSource2: [],
        ipagination1: {
        ipagination: {
          current: 1,
          pageSize: 10,
          pageSizeOptions: ['10', '20', '30'],
@@ -192,9 +198,9 @@
          showSizeChanger: true,
          total: 0
        },
        isorter1: {
          column: 'createTime',
          order: 'desc'
        isorter: {
          column: 'groupCode',
          order: 'asc'
        },
        isorter2: {
          column: 'createTime',
src/views/base/modules/group/GroupModal.vue
@@ -12,7 +12,7 @@
    style="top:5%;height: 85%;overflow-y: hidden">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form"  v-bind="layout"  :model="model" :rules="validatorRules">
      <a-form-model ref="form" :model="model" :rules="validatorRules">
        <a-form-model-item label="班组编码" required prop="groupCode" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <a-input v-model="model.groupCode" :disabled="roleDisabled"  placeholder="请输入班组编码"/>
        </a-form-model-item>
@@ -20,22 +20,17 @@
          <a-input v-model="model.groupName" placeholder="请输入班组名称"/>
        </a-form-model-item>
         <a-form-model-item label="班组长" prop="groupManager" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <j-dict-select-tag
          <j-search-select-tag
                type="list"
                v-model="model.groupManager"
                :trigger-change="true"
                dictCode="sys_user,realname,id"
            dict="sys_user,realname,id, del_flag='0' and status='1'"
                placeholder="请选择班组长"
              />
        </a-form-model-item>
         <a-form-model-item label="产线" prop="factoryId" :labelCol="labelCol" :wrapperCol="wrapperCol">
         <j-select-factory
            v-model="model.factoryId"
            :multi="true"
            @back="backFactoryInfo"
            :backProduction="true"
            :treeProductOpera="true"
          ></j-select-factory>
          <j-dict-select-tag placeholder="请选择产线" v-model="model.factoryId"
                             dictCode="base_factory,factory_name,id,del_flag=0 and factory_category='3'"></j-dict-select-tag>
        </a-form-model-item>
         <a-form-model-item label="班次" prop="shiftId" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <j-dict-select-tag
@@ -58,26 +53,25 @@
  import {duplicateCheck } from '@/api/api'
  import {postAction,requestPut} from '@/api/manage'
  import JDictSelectTag from '@/components/dict/JDictSelectTag'
  import JSelectFactory from '../../../../components/jeecgbiz/JSelectFactory'
  export default {
    name: "GroupModal",
  name: 'GroupModal',
    components: {
    JDictSelectTag,
    JSelectFactory
    JDictSelectTag
  },
    data () {
      return {
        title:"操作",
      title: '操作',
        visible: false,
        roleDisabled: false,
        model: {},
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        sm: { span: 5 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        sm: { span: 16 }
        },
        confirmLoading: false,
        validatorRules:{
@@ -90,41 +84,50 @@
            { min: 0, max: 64, message: '长度不超过 64 个字符', trigger: 'blur' },
            { validator: this.validategroupCode}
          ],
        factoryId: [
          { required: true, message: '请选择产线!' },
        ],
        groupManager: [
          { required: true, message: '请选择班组长!' },
        ],
        shiftId: [
          { required: true, message: '请选择班班次!' },
        ],
          remark: [
            { min: 0, max: 126, message: '长度不超过 126 个字符', trigger: 'blur' }
          ]
        },
        url: {
          add: "/base/shiftGroup/add",
          edit: "/base/shiftGroup/edit",
        add: '/base/shiftGroup/add',
        edit: '/base/shiftGroup/edit'
        },
        nextFactoryOptions: [],
      nextFactoryOptions: []
      }
    },
    created () {
      //备份model原始值
      this.modelDefault = JSON.parse(JSON.stringify(this.model));
    this.modelDefault = JSON.parse(JSON.stringify(this.model))
    },
    methods: {
      add () {
        this.edit(this.modelDefault);
      this.edit(this.modelDefault)
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      this.model = Object.assign({}, record)
      this.visible = true
      },
      close () {
        this.$refs.form.clearValidate();
        this.$emit('close');
        this.visible = false;
      this.$refs.form.clearValidate()
      this.$emit('close')
      this.visible = false
      },
      handleOk () {
        const that = this;
      const that = this
        // 触发表单验证
        this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = true;
            let obj;
          that.confirmLoading = true
          let obj
            if(!this.model.id){
              obj=postAction(this.url.add, this.model)
            }else{
@@ -134,17 +137,17 @@
            }
            obj.then((res)=>{
              if(res.success){
                that.$message.success(res.message);
                that.$emit('ok');
              that.$message.success(res.message)
              that.$emit('ok')
              }else{
                that.$message.warning(res.message);
              that.$message.warning(res.message)
              }
            }).finally(() => {
              that.confirmLoading = false;
              that.close();
            that.confirmLoading = false
            that.close()
            })
          }else{
            return false;
          return false
          }
        })
      },
@@ -153,21 +156,21 @@
      },
      validategroupCode(rule, value, callback){
        if(/[\u4E00-\u9FA5]/g.test(value)){
          callback("班组编码不可输入汉字!");
        callback('班组编码不可输入汉字!')
        }else{
          let params = {
            tableName: "base_shift_group",
            fieldName: "group_code",
          tableName: 'base_shift_group',
          fieldName: 'group_code',
            fieldVal: value,
            dataId: this.model.id,
          };
          dataId: this.model.id
        }
          duplicateCheck(params).then((res)=>{
            if(res.success){
              callback();
            callback()
            }else{
              callback(res.message);
            callback(res.message)
            }
          });
        })
        }
      },
      backFactoryInfo(info) {
@@ -176,7 +179,7 @@
          let c = { label: item.text, value: item.value + '' }
          return c
        })
      },
    }
    }
  }
</script>