Merge branch 'master' into zhp
This commit is contained in:
		
							
								
								
									
										35
									
								
								src/filters/code-filter.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								src/filters/code-filter.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * @Date: 2020-12-29 16:49:28
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2023-01-05 15:49:17
 | 
			
		||||
 * @FilePath: \basic-admin\src\filters\basicData\index.js
 | 
			
		||||
 * @Description:
 | 
			
		||||
 */
 | 
			
		||||
import moment from 'moment'
 | 
			
		||||
 | 
			
		||||
const table = {
 | 
			
		||||
    eightDisciplineType: {
 | 
			
		||||
    1: '客诉问题',
 | 
			
		||||
    2: '重大质量问题',
 | 
			
		||||
    0: '重复发生问题',
 | 
			
		||||
  },
 | 
			
		||||
  examineStatus: {
 | 
			
		||||
    1: '需要审批',
 | 
			
		||||
    0: '不需要审批',
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function timeFormatter(timeObj) {
 | 
			
		||||
  if (timeObj) {
 | 
			
		||||
    return moment(timeObj).format('YYYY-MM-DD HH:mm:ss')
 | 
			
		||||
  } else {
 | 
			
		||||
    return '-'
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default function(dictTable) {
 | 
			
		||||
  return function(val) {
 | 
			
		||||
    return table?.[dictTable]?.[val]
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
import module from './en'
 | 
			
		||||
import module from './eng'
 | 
			
		||||
const t = {}
 | 
			
		||||
 | 
			
		||||
t.module = module
 | 
			
		||||
 
 | 
			
		||||
@@ -573,13 +573,12 @@ t.code.code = '编码'
 | 
			
		||||
t.code.description = '描述'
 | 
			
		||||
t.code.eightDisciplineType = '8D类型'
 | 
			
		||||
t.code.problemStatus = '状态'
 | 
			
		||||
t.code.eightDisciplineStatus = '状态'
 | 
			
		||||
t.code.actualResponsePeriod = '实际响应周期'
 | 
			
		||||
t.code.batchNumber = '批次数'
 | 
			
		||||
t.code.customName = '客户'
 | 
			
		||||
t.code.defectSource = '缺陷来源'
 | 
			
		||||
t.code.eightDisciplineId = '8D来源id'
 | 
			
		||||
t.code.eightDisciplineStatus = '8D类型'
 | 
			
		||||
t.code.eightDisciplineStatus = '8D状态'
 | 
			
		||||
t.code.productName = '产品名'
 | 
			
		||||
t.code.orderNo  = '订单号'
 | 
			
		||||
t.code.productType = '产品类型'
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2022-08-24 11:19:43
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-05-16 14:55:04
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2023-06-30 15:00:20
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 */
 | 
			
		||||
export default {
 | 
			
		||||
@@ -15,7 +15,6 @@ export default {
 | 
			
		||||
        statusUrl: '',
 | 
			
		||||
        exportURL: ''
 | 
			
		||||
      },
 | 
			
		||||
      addOrEditTitle: '',
 | 
			
		||||
      tableData: [],
 | 
			
		||||
      listQuery: {
 | 
			
		||||
        limit: 10,
 | 
			
		||||
@@ -23,7 +22,10 @@ export default {
 | 
			
		||||
        total: 1,
 | 
			
		||||
      },
 | 
			
		||||
      dataListLoading: false,
 | 
			
		||||
      addOrEditTitle: '',
 | 
			
		||||
      addOrUpdateVisible: false,
 | 
			
		||||
      searchsTitle: '',
 | 
			
		||||
      searchsVisible: false,
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
@@ -71,6 +73,13 @@ export default {
 | 
			
		||||
        this.$refs.addOrUpdate.init(id);
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    // 条件搜索
 | 
			
		||||
    searchsHandle() {
 | 
			
		||||
      this.searchsVisible = true;
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs.searchsRef.init();
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    cancel(id) {
 | 
			
		||||
      this.$refs["popover-" + id].showPopper = false;
 | 
			
		||||
    },
 | 
			
		||||
@@ -158,13 +167,26 @@ export default {
 | 
			
		||||
      this.addOrUpdateVisible = false
 | 
			
		||||
      this.addOrEditTitle = ''
 | 
			
		||||
    },
 | 
			
		||||
    searchsCancel(){
 | 
			
		||||
      this.$refs.searchsRef.formClear()
 | 
			
		||||
      this.searchsVisible = false
 | 
			
		||||
      this.searchsTitle = ''
 | 
			
		||||
    },
 | 
			
		||||
    handleConfirm() {
 | 
			
		||||
      this.$refs.addOrUpdate.dataFormSubmit()
 | 
			
		||||
    },
 | 
			
		||||
    searchsConfirm(){
 | 
			
		||||
      this.$refs.searchsRef.dataFormSubmit()
 | 
			
		||||
    },
 | 
			
		||||
    successSubmit() {
 | 
			
		||||
      this.handleCancel()
 | 
			
		||||
      this.getDataList()
 | 
			
		||||
    },
 | 
			
		||||
    searchsSubmit(obj){
 | 
			
		||||
      this.listQuery = {...this.listQuery,...obj}
 | 
			
		||||
      this.searchsCancel()
 | 
			
		||||
      this.getDataList()
 | 
			
		||||
    },
 | 
			
		||||
    // 导出
 | 
			
		||||
    exportHandle(name) {
 | 
			
		||||
      this.$http
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <span>
 | 
			
		||||
    <el-tag v-if="injectData.problemStatus === 1" type="success">可用</el-tag>
 | 
			
		||||
    <el-tag v-if="injectData.eightDisciplineStatus === 1" type="success">可用</el-tag>
 | 
			
		||||
    <el-tag v-else type="warning">不可用</el-tag>
 | 
			
		||||
  </span>
 | 
			
		||||
</template>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-02-14 15:02:26
 | 
			
		||||
 * @LastEditTime: 2023-06-01 14:22:21
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-06-28 16:51:03
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -48,15 +48,15 @@ export default {
 | 
			
		||||
        }],
 | 
			
		||||
      eightDisciplineTypeList: [
 | 
			
		||||
        {
 | 
			
		||||
          value: 0,
 | 
			
		||||
          value: '0',
 | 
			
		||||
          label: '重复发生问题 '
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          value: 1,
 | 
			
		||||
          label: '1客诉问题'
 | 
			
		||||
          value: '1',
 | 
			
		||||
          label: '客诉问题'
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          value: 2,
 | 
			
		||||
          value: '2',
 | 
			
		||||
          label: '重大质量问题'
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
@@ -66,7 +66,7 @@ export default {
 | 
			
		||||
        name: null,
 | 
			
		||||
        code:null,	
 | 
			
		||||
        eightDisciplineType:null,
 | 
			
		||||
        eightDisciplineStatus: null,
 | 
			
		||||
        eightDisciplineStatus: 0,
 | 
			
		||||
      },
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										37
									
								
								src/views/modules/code/components/inputArea.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								src/views/modules/code/components/inputArea.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="tableInner">
 | 
			
		||||
    <el-input v-model="list[itemProp]" @blur="changeInput" />
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  name: "InputArea",
 | 
			
		||||
  props: {
 | 
			
		||||
    injectData: {
 | 
			
		||||
      type: Object,
 | 
			
		||||
      default: () => ({}),
 | 
			
		||||
    },
 | 
			
		||||
    itemProp: {
 | 
			
		||||
      type: String,
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      list: this.injectData,
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    changeInput() {
 | 
			
		||||
      this.list.sType = 1
 | 
			
		||||
      this.$emit("emitData", this.list,1);
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped>
 | 
			
		||||
.tableInner .el-input__inner {
 | 
			
		||||
  border: none;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  height: 33px;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
							
								
								
									
										45
									
								
								src/views/modules/code/components/selectMember.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								src/views/modules/code/components/selectMember.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="tableInner">
 | 
			
		||||
    <el-select v-model="list.string" @change="changeInput">
 | 
			
		||||
      <el-option
 | 
			
		||||
        v-for="item in injectData.roleList"
 | 
			
		||||
        :key="item.id"
 | 
			
		||||
        :label="item.username"
 | 
			
		||||
        :value="item.id + '+' + item.username"
 | 
			
		||||
      >
 | 
			
		||||
      </el-option>
 | 
			
		||||
    </el-select>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  name: "InputArea",
 | 
			
		||||
  props: {
 | 
			
		||||
    injectData: {
 | 
			
		||||
      type: Object,
 | 
			
		||||
      default: () => ({}),
 | 
			
		||||
    },
 | 
			
		||||
    itemProp: {
 | 
			
		||||
      type: String,
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      list: this.injectData,
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    changeInput() {
 | 
			
		||||
      this.list.sType = 2
 | 
			
		||||
      this.$emit("emitData", this.list);
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped>
 | 
			
		||||
.tableInner .el-input__inner {
 | 
			
		||||
  border: none;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  height: 33px;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
							
								
								
									
										47
									
								
								src/views/modules/code/components/selectTime.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								src/views/modules/code/components/selectTime.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="tableInner">
 | 
			
		||||
    <el-date-picker
 | 
			
		||||
     @change="changeInput"
 | 
			
		||||
      v-model="list.time"
 | 
			
		||||
      type="date"
 | 
			
		||||
      size="mini"
 | 
			
		||||
      :style="{width:'100%'}"
 | 
			
		||||
      format='yyyy-MM-dd' 
 | 
			
		||||
      valueFormat='yyyy-MM-ddTHH:mm:ss'
 | 
			
		||||
      prefix-icon="none"
 | 
			
		||||
      placeholder="选择日期">
 | 
			
		||||
    </el-date-picker>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  name: "InputArea",
 | 
			
		||||
  props: {
 | 
			
		||||
    injectData: {
 | 
			
		||||
      type: Object,
 | 
			
		||||
      default: () => ({}),
 | 
			
		||||
    },
 | 
			
		||||
    itemProp: {
 | 
			
		||||
      type: String,
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      list: this.injectData,
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    changeInput() {
 | 
			
		||||
      this.list.sType = 3
 | 
			
		||||
      this.$emit("emitData", this.list);
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped>
 | 
			
		||||
.tableInner .el-input__inner {
 | 
			
		||||
  border: none;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  height: 33px;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -1,137 +1,193 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-02-14 15:02:26
 | 
			
		||||
 * @LastEditTime: 2023-06-01 16:26:20
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-06-29 10:54:23
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="130px">
 | 
			
		||||
  <el-form
 | 
			
		||||
    :model="dataForm"
 | 
			
		||||
    ref="dataForm"
 | 
			
		||||
    @keyup.enter.native="dataFormSubmitHandle()"
 | 
			
		||||
    label-width="100px"
 | 
			
		||||
  >
 | 
			
		||||
    <el-row :gutter="24">
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="code" :label="$t('basic.code')">
 | 
			
		||||
          <el-input v-model="dataForm.code" :placeholder="$t('basic.code')">
 | 
			
		||||
          </el-input>
 | 
			
		||||
          <el-input v-model="dataForm.code" :placeholder="$t('basic.code')"> </el-input>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="title" :label="$t('basic.title')">
 | 
			
		||||
        <el-form-item prop="title" :label="$t('code.title')">
 | 
			
		||||
          <el-input v-model="dataForm.title" :placeholder="$t('code.title')"></el-input>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="eightDisciplineType" :label="$t('code.eightDisciplineType')">
 | 
			
		||||
          <el-select v-model="dataForm.eightDisciplineType" :placeholder="$t('code.eightDisciplineType')">
 | 
			
		||||
            <el-option v-for="item in eightDisciplineTypeList" :key="item.value" :label="item.label"
 | 
			
		||||
              :value="item.value">
 | 
			
		||||
          <el-select
 | 
			
		||||
            :style="{ width: '100%' }"
 | 
			
		||||
            v-model="dataForm.eightDisciplineType"
 | 
			
		||||
            :placeholder="$t('code.eightDisciplineType')"
 | 
			
		||||
          >
 | 
			
		||||
            <el-option
 | 
			
		||||
              v-for="item in eightDisciplineTypeList"
 | 
			
		||||
              :key="item.value"
 | 
			
		||||
              :label="item.label"
 | 
			
		||||
              :value="item.value"
 | 
			
		||||
            >
 | 
			
		||||
            </el-option>
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
    </el-row>
 | 
			
		||||
    <el-row :gutter="24">
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="occurrenceDate" :label="$t('code.occurrenceDate')">
 | 
			
		||||
          <el-date-picker v-model="dataForm.occurrenceDate" type="datetime" :placeholder="$t('code.occurrenceDate')"
 | 
			
		||||
            format='yyyy-MM-dd HH:mm:ss' valueFormat='yyyy-MM-ddTHH:mm:ss'>
 | 
			
		||||
          </el-date-picker>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="requestResponseCycle" :label="$t('code.requestResponseCycle')">
 | 
			
		||||
          <el-input v-model="dataForm.requestResponseCycle" :placeholder="$t('code.requestResponseCycle')"></el-input>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="finalCompletionDate" :label="$t('code.finalCompletionDate')">
 | 
			
		||||
          <el-date-picker v-model="dataForm.finalCompletionDate" type="datetime"
 | 
			
		||||
            :placeholder="$t('code.finalCompletionDate')" format='yyyy-MM-dd HH:mm:ss'
 | 
			
		||||
            valueFormat='yyyy-MM-ddTHH:mm:ss'>
 | 
			
		||||
          </el-date-picker>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
    </el-row>
 | 
			
		||||
    <el-row :gutter="24">
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="sampleAcceptanceTime" :label="$t('code.sampleAcceptanceTime')">
 | 
			
		||||
          <el-date-picker v-model="dataForm.sampleAcceptanceTime" type="datetime"
 | 
			
		||||
            :placeholder="$t('code.sampleAcceptanceTime')" format='yyyy-MM-dd HH:mm:ss'
 | 
			
		||||
            valueFormat='yyyy-MM-ddTHH:mm:ss'>
 | 
			
		||||
          </el-date-picker>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="defectSourceId" :label="$t('code.defectSource')">
 | 
			
		||||
          <el-select v-model="dataForm.defectSourceId" :placeholder="$t('code.defectSource')">
 | 
			
		||||
            <el-option v-for="item in defectList" :key="item.dictTypeId" :label="item.dictLabel"
 | 
			
		||||
              :value="item.dictTypeId">
 | 
			
		||||
            </el-option>
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="actualResponsePeriod" :label="$t('code.actualResponsePeriod')">
 | 
			
		||||
          <el-input v-model="dataForm.actualResponsePeriod" :placeholder="$t('code.requestResponseCycle')"></el-input>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
    </el-row>
 | 
			
		||||
    <el-row :gutter="24">
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="orderNo" :label="$t('code.orderNo')">
 | 
			
		||||
          <el-input v-model="dataForm.orderNo" :placeholder="$t('code.orderNo')"></el-input>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="requestResponseCycle" :label="$t('code.requestResponseCycle')">
 | 
			
		||||
          <el-input
 | 
			
		||||
            v-model="dataForm.requestResponseCycle"
 | 
			
		||||
            :placeholder="$t('code.requestResponseCycle')"
 | 
			
		||||
          ></el-input>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="batchNumber" :label="$t('code.batchNumber')">
 | 
			
		||||
          <el-input v-model="dataForm.batchNumber" :placeholder="$t('code.batchNumber')"></el-input>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
    </el-row>
 | 
			
		||||
    <el-row :gutter="24">
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="responsibilityAttributionId" :label="$t('code.responsibilityAttribution')">
 | 
			
		||||
          <el-select v-model="dataForm.responsibilityAttributionId" :placeholder="$t('code.responsibilityAttribution')">
 | 
			
		||||
            <el-option v-for="item in dutyList" :key="item.dictTypeId" :label="item.dictLabel" :value="item.dictTypeId">
 | 
			
		||||
        <el-form-item prop="sampleAcceptanceTime" :label="$t('code.sampleAcceptanceTime')">
 | 
			
		||||
          <el-date-picker
 | 
			
		||||
            :style="{ width: '100%' }"
 | 
			
		||||
            v-model="dataForm.sampleAcceptanceTime"
 | 
			
		||||
            type="datetime"
 | 
			
		||||
            :placeholder="$t('code.sampleAcceptanceTime')"
 | 
			
		||||
            format="yyyy-MM-dd HH:mm:ss"
 | 
			
		||||
            valueFormat="yyyy-MM-ddTHH:mm:ss"
 | 
			
		||||
          >
 | 
			
		||||
          </el-date-picker>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="defectSourceId" :label="$t('code.defectSource')">
 | 
			
		||||
          <el-select
 | 
			
		||||
            :style="{ width: '100%' }"
 | 
			
		||||
            v-model="dataForm.defectSourceId"
 | 
			
		||||
            :placeholder="$t('code.defectSource')"
 | 
			
		||||
          >
 | 
			
		||||
            <el-option
 | 
			
		||||
              v-for="item in defectList"
 | 
			
		||||
              :key="item.dictTypeId"
 | 
			
		||||
              :label="item.dictLabel"
 | 
			
		||||
              :value="item.dictTypeId"
 | 
			
		||||
            >
 | 
			
		||||
            </el-option>
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="actualResponsePeriod" :label="$t('code.actualResponsePeriod')">
 | 
			
		||||
          <el-input
 | 
			
		||||
            v-model="dataForm.actualResponsePeriod"
 | 
			
		||||
            :placeholder="$t('code.requestResponseCycle')"
 | 
			
		||||
          ></el-input>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
    </el-row>
 | 
			
		||||
    <el-row :gutter="24">
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="occurrenceDate" :label="$t('code.occurrenceDate')">
 | 
			
		||||
          <el-date-picker
 | 
			
		||||
            v-model="dataForm.occurrenceDate"
 | 
			
		||||
            type="datetime"
 | 
			
		||||
            :style="{ width: '100%' }"
 | 
			
		||||
            :placeholder="$t('code.occurrenceDate')"
 | 
			
		||||
            format="yyyy-MM-dd HH:mm:ss"
 | 
			
		||||
            valueFormat="yyyy-MM-ddTHH:mm:ss"
 | 
			
		||||
          >
 | 
			
		||||
          </el-date-picker>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item
 | 
			
		||||
          prop="responsibilityAttributionId"
 | 
			
		||||
          :label="$t('code.responsibilityAttribution')"
 | 
			
		||||
        >
 | 
			
		||||
          <el-select
 | 
			
		||||
          :style="{ width: '100%' }"
 | 
			
		||||
            v-model="dataForm.responsibilityAttributionId"
 | 
			
		||||
            :placeholder="$t('code.responsibilityAttribution')"
 | 
			
		||||
          >
 | 
			
		||||
            <el-option
 | 
			
		||||
              v-for="item in dutyList"
 | 
			
		||||
              :key="item.dictTypeId"
 | 
			
		||||
              :label="item.dictLabel"
 | 
			
		||||
              :value="item.dictTypeId"
 | 
			
		||||
            >
 | 
			
		||||
            </el-option>
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="finalCompletionDate" :label="$t('code.finalCompletionDate')">
 | 
			
		||||
          <el-date-picker
 | 
			
		||||
          :style="{ width: '100%' }"
 | 
			
		||||
            v-model="dataForm.finalCompletionDate"
 | 
			
		||||
            type="datetime"
 | 
			
		||||
            :placeholder="$t('code.finalCompletionDate')"
 | 
			
		||||
            format="yyyy-MM-dd HH:mm:ss"
 | 
			
		||||
            valueFormat="yyyy-MM-ddTHH:mm:ss"
 | 
			
		||||
          >
 | 
			
		||||
          </el-date-picker>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <!-- <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="examineStatus" :label="$t('code.examineStatus')">
 | 
			
		||||
          <el-select 
 | 
			
		||||
          :style="{ width: '100%' }" 
 | 
			
		||||
          v-model="dataForm.examineStatus" 
 | 
			
		||||
          :placeholder="$t('code.examineStatus')">
 | 
			
		||||
            <el-option
 | 
			
		||||
              v-for="item in examineStatusList"
 | 
			
		||||
              :key="item.id"
 | 
			
		||||
              :label="item.name"
 | 
			
		||||
              :value="item.id"
 | 
			
		||||
            >
 | 
			
		||||
            </el-option>
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col> -->
 | 
			
		||||
    </el-row>
 | 
			
		||||
    <el-row :gutter="24">
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="teamList" :label="$t('code.eightDTeam')">
 | 
			
		||||
          <el-select 
 | 
			
		||||
          :style="{ width: '100%' }"
 | 
			
		||||
          v-model="dataForm.teamList" 
 | 
			
		||||
          :placeholder="$t('code.eightDTeam')" 
 | 
			
		||||
          multiple>
 | 
			
		||||
            <el-option
 | 
			
		||||
              v-for="item in teamList"
 | 
			
		||||
              :key="item.id"
 | 
			
		||||
              :label="item.teamName"
 | 
			
		||||
              :value="item.id"
 | 
			
		||||
            >
 | 
			
		||||
            </el-option>
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="description" :label="$t('code.description')">
 | 
			
		||||
          <el-input v-model="dataForm.description" :placeholder="$t('code.description')"></el-input>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="batchNumber" :label="$t('code.batchNumber')">
 | 
			
		||||
          <el-input v-model="dataForm.batchNumber" :placeholder="$t('code.batchNumber')"></el-input>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="responsibilityAttributionId" :label="$t('code.responsibilityAttribution')">
 | 
			
		||||
          <el-select v-model="dataForm.responsibilityAttributionId" :placeholder="$t('code.responsibilityAttribution')">
 | 
			
		||||
            <el-option v-for="item in dutyList" :key="item.dictTypeId" :label="item.dictLabel" :value="item.dictTypeId">
 | 
			
		||||
            </el-option>
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
    </el-row>
 | 
			
		||||
    <el-row :gutter="24">
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="examineStatus" :label="$t('code.examineStatus')">
 | 
			
		||||
          <el-select v-model="dataForm.examineStatus" :placeholder="$t('code.examineStatus')">
 | 
			
		||||
            <el-option v-for="item in examineStatusList" :key="item.id" :label="item.name" :value="item.id">
 | 
			
		||||
            </el-option>
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
      <el-col :span="8">
 | 
			
		||||
        <el-form-item prop="teamList" :label="$t('code.eightDTeam')">
 | 
			
		||||
          <el-select v-model="dataForm.teamList" :placeholder="$t('code.eightDTeam')" multiple>
 | 
			
		||||
            <el-option v-for="item in teamList" :key="item.id" :label="item.teamName" :value="item.id">
 | 
			
		||||
            </el-option>
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-col>
 | 
			
		||||
    </el-row>
 | 
			
		||||
  </el-form>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -146,62 +202,64 @@ export default {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
        submitURL: "/code/startEightDiscipline",
 | 
			
		||||
        infoURL: "/code/startEightDiscipline/{id}",
 | 
			
		||||
        getDictURL: '/sys/dict/data/page',
 | 
			
		||||
        customerListURL: '/basic/qmsCustomer/page',
 | 
			
		||||
        productListURL: '/basic/qmsProduct/page',
 | 
			
		||||
        teamListURL: '/basic/qmsTeam/page',
 | 
			
		||||
        getDictURL: "/sys/dict/data/page",
 | 
			
		||||
        customerListURL: "/basic/qmsCustomer/page",
 | 
			
		||||
        productListURL: "/basic/qmsProduct/page",
 | 
			
		||||
        teamListURL: "/basic/qmsTeam/page",
 | 
			
		||||
      },
 | 
			
		||||
      defectList: [],
 | 
			
		||||
      teamList:[],
 | 
			
		||||
      teamList: [],
 | 
			
		||||
      customerList: [],
 | 
			
		||||
      productList: [],
 | 
			
		||||
      dutyList: [],
 | 
			
		||||
      examineStatusList: [
 | 
			
		||||
        {
 | 
			
		||||
          id: 0,
 | 
			
		||||
          name: '不需要审批'
 | 
			
		||||
          name: "不需要审批",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          id: 1,
 | 
			
		||||
          name: '需要审批'
 | 
			
		||||
        }
 | 
			
		||||
          name: "需要审批",
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
      options: [{
 | 
			
		||||
      options: [
 | 
			
		||||
        {
 | 
			
		||||
          value: 0,
 | 
			
		||||
        label: '不可用'
 | 
			
		||||
          label: "不可用",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          value: 1,
 | 
			
		||||
        label: '可用'
 | 
			
		||||
        }],
 | 
			
		||||
          label: "可用",
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
      eightDisciplineTypeList: [
 | 
			
		||||
        {
 | 
			
		||||
          value: 0,
 | 
			
		||||
          label: '重复发生问题 '
 | 
			
		||||
          value: '0',
 | 
			
		||||
          label: "重复发生问题 ",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          value: 1,
 | 
			
		||||
          label: '1客诉问题'
 | 
			
		||||
          value: '1',
 | 
			
		||||
          label: "1客诉问题",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          value: 2,
 | 
			
		||||
          label: '重大质量问题'
 | 
			
		||||
        }
 | 
			
		||||
          value: '2',
 | 
			
		||||
          label: "重大质量问题",
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
      listQuery: {
 | 
			
		||||
        limit: 10,
 | 
			
		||||
        page: 1
 | 
			
		||||
        page: 1,
 | 
			
		||||
      },
 | 
			
		||||
      visible: false,
 | 
			
		||||
      dataForm: {
 | 
			
		||||
        actualResponsePeriod:null,
 | 
			
		||||
        actualResponsePeriod: null,
 | 
			
		||||
        batchNumber: null,
 | 
			
		||||
        code: null,
 | 
			
		||||
        customId: null,
 | 
			
		||||
        defectSourceId: null,
 | 
			
		||||
        description: null,
 | 
			
		||||
        eightDisciplineId: null,
 | 
			
		||||
        eightDisciplineStatus: null,
 | 
			
		||||
        eightDisciplineStatus: 0,
 | 
			
		||||
        eightDisciplineType: null,
 | 
			
		||||
        examineStatus: null,
 | 
			
		||||
        finalCompletionDate: null,
 | 
			
		||||
@@ -210,7 +268,7 @@ export default {
 | 
			
		||||
        orderNo: null,
 | 
			
		||||
        productId: null,
 | 
			
		||||
        productTypeId: null,
 | 
			
		||||
        teamList:undefined,
 | 
			
		||||
        teamList: undefined,
 | 
			
		||||
        requestResponseCycle: null,
 | 
			
		||||
        responsibilityAttributionId: null,
 | 
			
		||||
        sampleAcceptanceTime: null,
 | 
			
		||||
@@ -247,19 +305,19 @@ export default {
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  mounted () {
 | 
			
		||||
    this.getDict()
 | 
			
		||||
  mounted() {
 | 
			
		||||
    this.getDict();
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init(id, ) {
 | 
			
		||||
      this.dataForm.id = id || ""
 | 
			
		||||
    init(id) {
 | 
			
		||||
      this.dataForm.id = id || "";
 | 
			
		||||
      // console.log(11111)
 | 
			
		||||
      // this.dataForm.dictTypeId = dictTypeId || "";
 | 
			
		||||
      this.visible = true
 | 
			
		||||
      this.visible = true;
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs["dataForm"].resetFields();
 | 
			
		||||
        if (this.dataForm.id) {
 | 
			
		||||
          this.getInfo()
 | 
			
		||||
          this.getInfo();
 | 
			
		||||
        } else {
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
@@ -280,50 +338,50 @@ export default {
 | 
			
		||||
        .catch(() => {});
 | 
			
		||||
    },
 | 
			
		||||
    getDict() {
 | 
			
		||||
      this.$http.get(this.urlOptions.teamListURL, {
 | 
			
		||||
      this.$http
 | 
			
		||||
        .get(this.urlOptions.teamListURL, {
 | 
			
		||||
          params: {
 | 
			
		||||
            limit: 999,
 | 
			
		||||
            page: 1,
 | 
			
		||||
        }
 | 
			
		||||
          },
 | 
			
		||||
        })
 | 
			
		||||
        .then(({ data: res }) => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            console.log(res);
 | 
			
		||||
            this.teamList = res.data.list
 | 
			
		||||
            this.teamList = res.data.list;
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .catch(() => {
 | 
			
		||||
        })
 | 
			
		||||
      this.$http.get(this.urlOptions.getDictURL, {
 | 
			
		||||
        .catch(() => {});
 | 
			
		||||
      this.$http
 | 
			
		||||
        .get(this.urlOptions.getDictURL, {
 | 
			
		||||
          params: {
 | 
			
		||||
            limit: 999,
 | 
			
		||||
            page: 1,
 | 
			
		||||
          dictTypeId: '1664162193896206337'
 | 
			
		||||
        }
 | 
			
		||||
            dictTypeId: "1664162193896206337",
 | 
			
		||||
          },
 | 
			
		||||
        })
 | 
			
		||||
        .then(({ data: res }) => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            console.log(res);
 | 
			
		||||
            this.defectList = res.data.list
 | 
			
		||||
            this.defectList = res.data.list;
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .catch(() => {
 | 
			
		||||
        })
 | 
			
		||||
      this.$http.get(this.urlOptions.getDictURL, {
 | 
			
		||||
        .catch(() => {});
 | 
			
		||||
      this.$http
 | 
			
		||||
        .get(this.urlOptions.getDictURL, {
 | 
			
		||||
          params: {
 | 
			
		||||
            limit: 999,
 | 
			
		||||
            page: 1,
 | 
			
		||||
          dictTypeId: '1664162455184568321'
 | 
			
		||||
        }
 | 
			
		||||
            dictTypeId: "1664162455184568321",
 | 
			
		||||
          },
 | 
			
		||||
        })
 | 
			
		||||
        .then(({ data: res }) => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            console.log(res);
 | 
			
		||||
            this.dutyList = res.data.list
 | 
			
		||||
            this.dutyList = res.data.list;
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .catch(() => {
 | 
			
		||||
        })
 | 
			
		||||
        .catch(() => {});
 | 
			
		||||
    },
 | 
			
		||||
    // 表单提交
 | 
			
		||||
    dataFormSubmitHandle: debounce(
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,207 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2023-06-29 14:12:48
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2023-06-30 09:03:53
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <base-table border :table-props="tableProps" :table-data="tableData" @emitFun="inputChange" />
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicAdd from "@/mixins/basic-add";
 | 
			
		||||
import inputArea from "./inputArea";
 | 
			
		||||
import selectMember from "./selectMember";
 | 
			
		||||
import i18n from "@/i18n";
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: "stepName",
 | 
			
		||||
    label: i18n.t("disqualification.step"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "member",
 | 
			
		||||
    label: "成员",
 | 
			
		||||
    align: "center",
 | 
			
		||||
    subcomponent: selectMember,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "time",
 | 
			
		||||
    label: "时间(小时)",
 | 
			
		||||
    align: "center",
 | 
			
		||||
    subcomponent: inputArea,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "approver",
 | 
			
		||||
    label: "审批人",
 | 
			
		||||
    align: "center",
 | 
			
		||||
    subcomponent: selectMember,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "terminationApprover",
 | 
			
		||||
    label: "终止审批人",
 | 
			
		||||
    align: "center",
 | 
			
		||||
    subcomponent: selectMember,
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
export default {
 | 
			
		||||
  components: {
 | 
			
		||||
    inputArea,
 | 
			
		||||
    selectMember,
 | 
			
		||||
  },
 | 
			
		||||
  mixins: [basicAdd],
 | 
			
		||||
  props: {
 | 
			
		||||
    roleList: {
 | 
			
		||||
      type: Array,
 | 
			
		||||
      default: () => [],
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
        submitURL: "/code/startEightDisciplinePreliminaryAnalysis/",
 | 
			
		||||
      },
 | 
			
		||||
      tableProps,
 | 
			
		||||
      visible: false,
 | 
			
		||||
      tableData: [
 | 
			
		||||
        {
 | 
			
		||||
          stepName: "D3",
 | 
			
		||||
          step: 3,
 | 
			
		||||
          roleList: this.roleList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          stepName: "D4",
 | 
			
		||||
          step: 4,
 | 
			
		||||
          roleList: this.roleList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          stepName: "D5",
 | 
			
		||||
          step: 5,
 | 
			
		||||
          roleList: this.roleList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          stepName: "D6",
 | 
			
		||||
          step: 6,
 | 
			
		||||
          roleList: this.roleList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          stepName: "D7",
 | 
			
		||||
          step: 7,
 | 
			
		||||
          roleList: this.roleList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          stepName: "D8",
 | 
			
		||||
          step: 8,
 | 
			
		||||
          roleList: this.roleList,
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
      id: "",
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    dataRule() {
 | 
			
		||||
      return {
 | 
			
		||||
        // description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init(id) {
 | 
			
		||||
      this.id = id;
 | 
			
		||||
      this.visible = true;
 | 
			
		||||
      this.$nextTick(() => {});
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    inputChange(data) {
 | 
			
		||||
      switch (data.sType) {
 | 
			
		||||
        case 1:
 | 
			
		||||
          this.tableData[data._pageIndex - 1][data.prop] = data[data.prop];
 | 
			
		||||
          break;
 | 
			
		||||
        case 2:
 | 
			
		||||
          this.tableData[data._pageIndex - 1][data.prop] = data.string
 | 
			
		||||
            ? data.string.split("+")[0]
 | 
			
		||||
            : "";
 | 
			
		||||
          this.tableData[data._pageIndex - 1][data.prop + "Name"] = data.string
 | 
			
		||||
            ? data.string.split("+")[1]
 | 
			
		||||
            : "";
 | 
			
		||||
          break;
 | 
			
		||||
        default:
 | 
			
		||||
          console.log(val);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    formClear() {},
 | 
			
		||||
    // 表单提交
 | 
			
		||||
    dataFormSubmit() {
 | 
			
		||||
        let putData = {
 | 
			
		||||
          eightDisciplineStatus: 3,
 | 
			
		||||
          examineStatus: 1,
 | 
			
		||||
          id: this.id,
 | 
			
		||||
        };
 | 
			
		||||
        this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
 | 
			
		||||
          if (data && data.code === 0) {
 | 
			
		||||
            
 | 
			
		||||
          } else {
 | 
			
		||||
            this.$message.error(data.msg);
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
      this.tableData.forEach((item) => {
 | 
			
		||||
        item.startEightDisciplineId = this.id;
 | 
			
		||||
      });
 | 
			
		||||
      this.$http.post("/code/startEightDisciplineCreateTeam/save/list", this.tableData)
 | 
			
		||||
      .then(({ data: res }) => {
 | 
			
		||||
        if (res.code !== 0) {
 | 
			
		||||
          return this.$message.error(res.msg);
 | 
			
		||||
        }
 | 
			
		||||
        this.$message({
 | 
			
		||||
          message: this.$t("prompt.success"),
 | 
			
		||||
          type: "success",
 | 
			
		||||
          duration: 500,
 | 
			
		||||
          onClose: () => {
 | 
			
		||||
            this.visible = false;
 | 
			
		||||
            this.$emit("refreshDataList");
 | 
			
		||||
          },
 | 
			
		||||
        });
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
.mod-sys__menu {
 | 
			
		||||
  .menu-list,
 | 
			
		||||
  .icon-list {
 | 
			
		||||
    .el-input__inner,
 | 
			
		||||
    .el-input__suffix {
 | 
			
		||||
      cursor: pointer;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-popover {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-inner {
 | 
			
		||||
    width: 478px;
 | 
			
		||||
    max-height: 258px;
 | 
			
		||||
    overflow-x: hidden;
 | 
			
		||||
    overflow-y: auto;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-list {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    margin: -8px 0 0 -8px;
 | 
			
		||||
    > .el-button {
 | 
			
		||||
      padding: 8px;
 | 
			
		||||
      margin: 8px 0 0 8px;
 | 
			
		||||
      > span {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        vertical-align: middle;
 | 
			
		||||
        width: 18px;
 | 
			
		||||
        height: 18px;
 | 
			
		||||
        font-size: 18px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -0,0 +1,117 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="120px">
 | 
			
		||||
    <el-form-item prop="description" :label="$t('code.description')">
 | 
			
		||||
      <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="dataForm.description">
 | 
			
		||||
      </el-input>
 | 
			
		||||
    </el-form-item>
 | 
			
		||||
  </el-form>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicAdd from "@/mixins/basic-add";
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicAdd],
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
        submitURL: "/code/startEightDisciplineDescriptionCorrectiveAction",
 | 
			
		||||
      },
 | 
			
		||||
      visible: false,
 | 
			
		||||
      dataForm: {
 | 
			
		||||
        description: "",
 | 
			
		||||
        startEightDisciplineId: "",
 | 
			
		||||
      },
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    dataRule() {
 | 
			
		||||
      return {
 | 
			
		||||
        description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init(id) {
 | 
			
		||||
      this.dataForm.startEightDisciplineId = id;
 | 
			
		||||
      this.visible = true;
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs["dataForm"].resetFields();
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    // 表单提交
 | 
			
		||||
    dataFormSubmit() {
 | 
			
		||||
      this.$refs["dataForm"].validate((valid) => {
 | 
			
		||||
        if (!valid) {
 | 
			
		||||
          return false;
 | 
			
		||||
        }
 | 
			
		||||
        let putData = {
 | 
			
		||||
          eightDisciplineStatus: 6,
 | 
			
		||||
          examineStatus: 1,
 | 
			
		||||
          id: this.dataForm.startEightDisciplineId,
 | 
			
		||||
        };
 | 
			
		||||
        this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
 | 
			
		||||
          if (data && data.code === 0) {
 | 
			
		||||
          } else {
 | 
			
		||||
            this.$message.error(data.msg);
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
        this.$http
 | 
			
		||||
          .post(this.urlOptions.submitURL, this.dataForm)
 | 
			
		||||
          .then(({ data: res }) => {
 | 
			
		||||
            if (res.code !== 0) {
 | 
			
		||||
              return this.$message.error(res.msg);
 | 
			
		||||
            }
 | 
			
		||||
            this.$message({
 | 
			
		||||
              message: this.$t("prompt.success"),
 | 
			
		||||
              type: "success",
 | 
			
		||||
              duration: 500,
 | 
			
		||||
              onClose: () => {
 | 
			
		||||
                this.visible = false;
 | 
			
		||||
                this.$emit("refreshDataList");
 | 
			
		||||
              },
 | 
			
		||||
            });
 | 
			
		||||
          })
 | 
			
		||||
          .catch(() => {});
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
.mod-sys__menu {
 | 
			
		||||
  .menu-list,
 | 
			
		||||
  .icon-list {
 | 
			
		||||
    .el-input__inner,
 | 
			
		||||
    .el-input__suffix {
 | 
			
		||||
      cursor: pointer;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-popover {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-inner {
 | 
			
		||||
    width: 478px;
 | 
			
		||||
    max-height: 258px;
 | 
			
		||||
    overflow-x: hidden;
 | 
			
		||||
    overflow-y: auto;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-list {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    margin: -8px 0 0 -8px;
 | 
			
		||||
    > .el-button {
 | 
			
		||||
      padding: 8px;
 | 
			
		||||
      margin: 8px 0 0 8px;
 | 
			
		||||
      > span {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        vertical-align: middle;
 | 
			
		||||
        width: 18px;
 | 
			
		||||
        height: 18px;
 | 
			
		||||
        font-size: 18px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -0,0 +1,117 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="120px">
 | 
			
		||||
    <el-form-item prop="description" :label="$t('code.description')">
 | 
			
		||||
      <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="dataForm.description">
 | 
			
		||||
      </el-input>
 | 
			
		||||
    </el-form-item>
 | 
			
		||||
  </el-form>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicAdd from "@/mixins/basic-add";
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicAdd],
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
        submitURL: "/code/startEightDisciplinePreliminaryAnalysis/",
 | 
			
		||||
      },
 | 
			
		||||
      visible: false,
 | 
			
		||||
      dataForm: {
 | 
			
		||||
        description: "",
 | 
			
		||||
        startEightDisciplineId: "",
 | 
			
		||||
      },
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    dataRule() {
 | 
			
		||||
      return {
 | 
			
		||||
        description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init(data) {
 | 
			
		||||
      this.dataForm.startEightDisciplineId = data.id;
 | 
			
		||||
      this.visible = true;
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs["dataForm"].resetFields();
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    // 表单提交
 | 
			
		||||
    dataFormSubmit() {
 | 
			
		||||
      this.$refs["dataForm"].validate((valid) => {
 | 
			
		||||
        if (!valid) {
 | 
			
		||||
          return false;
 | 
			
		||||
        }
 | 
			
		||||
        let putData = {
 | 
			
		||||
          eightDisciplineStatus: 2,
 | 
			
		||||
          examineStatus: 1,
 | 
			
		||||
          id: this.dataForm.startEightDisciplineId,
 | 
			
		||||
        };
 | 
			
		||||
        this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
 | 
			
		||||
          if (data && data.code === 0) {
 | 
			
		||||
          } else {
 | 
			
		||||
            this.$message.error(data.msg);
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
        this.$http
 | 
			
		||||
          .post(this.urlOptions.submitURL, this.dataForm)
 | 
			
		||||
          .then(({ data: res }) => {
 | 
			
		||||
            if (res.code !== 0) {
 | 
			
		||||
              return this.$message.error(res.msg);
 | 
			
		||||
            }
 | 
			
		||||
            this.$message({
 | 
			
		||||
              message: this.$t("prompt.success"),
 | 
			
		||||
              type: "success",
 | 
			
		||||
              duration: 500,
 | 
			
		||||
              onClose: () => {
 | 
			
		||||
                this.visible = false;
 | 
			
		||||
                this.$emit("refreshDataList");
 | 
			
		||||
              },
 | 
			
		||||
            });
 | 
			
		||||
          })
 | 
			
		||||
          .catch(() => {});
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
.mod-sys__menu {
 | 
			
		||||
  .menu-list,
 | 
			
		||||
  .icon-list {
 | 
			
		||||
    .el-input__inner,
 | 
			
		||||
    .el-input__suffix {
 | 
			
		||||
      cursor: pointer;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-popover {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-inner {
 | 
			
		||||
    width: 478px;
 | 
			
		||||
    max-height: 258px;
 | 
			
		||||
    overflow-x: hidden;
 | 
			
		||||
    overflow-y: auto;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-list {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    margin: -8px 0 0 -8px;
 | 
			
		||||
    > .el-button {
 | 
			
		||||
      padding: 8px;
 | 
			
		||||
      margin: 8px 0 0 8px;
 | 
			
		||||
      > span {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        vertical-align: middle;
 | 
			
		||||
        width: 18px;
 | 
			
		||||
        height: 18px;
 | 
			
		||||
        font-size: 18px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -0,0 +1,117 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="120px">
 | 
			
		||||
    <el-form-item prop="description" :label="$t('code.description')">
 | 
			
		||||
      <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="dataForm.description">
 | 
			
		||||
      </el-input>
 | 
			
		||||
    </el-form-item>
 | 
			
		||||
  </el-form>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicAdd from "@/mixins/basic-add";
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicAdd],
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
        submitURL: "/code/startEightDisciplinePreventRecurrence",
 | 
			
		||||
      },
 | 
			
		||||
      visible: false,
 | 
			
		||||
      dataForm: {
 | 
			
		||||
        description: "",
 | 
			
		||||
        startEightDisciplineId: "",
 | 
			
		||||
      },
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    dataRule() {
 | 
			
		||||
      return {
 | 
			
		||||
        description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init(id) {
 | 
			
		||||
      this.dataForm.startEightDisciplineId = id;
 | 
			
		||||
      this.visible = true;
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs["dataForm"].resetFields();
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    // 表单提交
 | 
			
		||||
    dataFormSubmit() {
 | 
			
		||||
      this.$refs["dataForm"].validate((valid) => {
 | 
			
		||||
        if (!valid) {
 | 
			
		||||
          return false;
 | 
			
		||||
        }
 | 
			
		||||
        let putData = {
 | 
			
		||||
          eightDisciplineStatus: 8,
 | 
			
		||||
          examineStatus: 1,
 | 
			
		||||
          id: this.dataForm.startEightDisciplineId,
 | 
			
		||||
        };
 | 
			
		||||
        this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
 | 
			
		||||
          if (data && data.code === 0) {
 | 
			
		||||
          } else {
 | 
			
		||||
            this.$message.error(data.msg);
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
        this.$http
 | 
			
		||||
          .post(this.urlOptions.submitURL, this.dataForm)
 | 
			
		||||
          .then(({ data: res }) => {
 | 
			
		||||
            if (res.code !== 0) {
 | 
			
		||||
              return this.$message.error(res.msg);
 | 
			
		||||
            }
 | 
			
		||||
            this.$message({
 | 
			
		||||
              message: this.$t("prompt.success"),
 | 
			
		||||
              type: "success",
 | 
			
		||||
              duration: 500,
 | 
			
		||||
              onClose: () => {
 | 
			
		||||
                this.visible = false;
 | 
			
		||||
                this.$emit("refreshDataList");
 | 
			
		||||
              },
 | 
			
		||||
            });
 | 
			
		||||
          })
 | 
			
		||||
          .catch(() => {});
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
.mod-sys__menu {
 | 
			
		||||
  .menu-list,
 | 
			
		||||
  .icon-list {
 | 
			
		||||
    .el-input__inner,
 | 
			
		||||
    .el-input__suffix {
 | 
			
		||||
      cursor: pointer;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-popover {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-inner {
 | 
			
		||||
    width: 478px;
 | 
			
		||||
    max-height: 258px;
 | 
			
		||||
    overflow-x: hidden;
 | 
			
		||||
    overflow-y: auto;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-list {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    margin: -8px 0 0 -8px;
 | 
			
		||||
    > .el-button {
 | 
			
		||||
      padding: 8px;
 | 
			
		||||
      margin: 8px 0 0 8px;
 | 
			
		||||
      > span {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        vertical-align: middle;
 | 
			
		||||
        width: 18px;
 | 
			
		||||
        height: 18px;
 | 
			
		||||
        font-size: 18px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -0,0 +1,117 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="120px">
 | 
			
		||||
    <el-form-item prop="problemType" label="问题类型">
 | 
			
		||||
      <el-input type="textarea" :rows="2" placeholder="请输入工艺问题" v-model="dataForm.problemType">
 | 
			
		||||
      </el-input>
 | 
			
		||||
    </el-form-item>
 | 
			
		||||
  </el-form>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicAdd from "@/mixins/basic-add";
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicAdd],
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
        submitURL: "/code/startEightDisciplineRootCauseAnalysis",
 | 
			
		||||
      },
 | 
			
		||||
      visible: false,
 | 
			
		||||
      dataForm: {
 | 
			
		||||
        problemType: "",
 | 
			
		||||
        startEightDisciplineId: "",
 | 
			
		||||
      },
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    dataRule() {
 | 
			
		||||
      return {
 | 
			
		||||
        problemType: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init(data) {
 | 
			
		||||
      this.dataForm.startEightDisciplineId = data.id;
 | 
			
		||||
      this.visible = true;
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs["dataForm"].resetFields();
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    // 表单提交
 | 
			
		||||
    dataFormSubmit() {
 | 
			
		||||
      this.$refs["dataForm"].validate((valid) => {
 | 
			
		||||
        if (!valid) {
 | 
			
		||||
          return false;
 | 
			
		||||
        }
 | 
			
		||||
        let putData = {
 | 
			
		||||
          eightDisciplineStatus: 5,
 | 
			
		||||
          examineStatus: 1,
 | 
			
		||||
          id: this.dataForm.startEightDisciplineId,
 | 
			
		||||
        };
 | 
			
		||||
        this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
 | 
			
		||||
          if (data && data.code === 0) {
 | 
			
		||||
          } else {
 | 
			
		||||
            this.$message.error(data.msg);
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
        this.$http
 | 
			
		||||
          .post(this.urlOptions.submitURL, this.dataForm)
 | 
			
		||||
          .then(({ data: res }) => {
 | 
			
		||||
            if (res.code !== 0) {
 | 
			
		||||
              return this.$message.error(res.msg);
 | 
			
		||||
            }
 | 
			
		||||
            this.$message({
 | 
			
		||||
              message: this.$t("prompt.success"),
 | 
			
		||||
              type: "success",
 | 
			
		||||
              duration: 500,
 | 
			
		||||
              onClose: () => {
 | 
			
		||||
                this.visible = false;
 | 
			
		||||
                this.$emit("refreshDataList");
 | 
			
		||||
              },
 | 
			
		||||
            });
 | 
			
		||||
          })
 | 
			
		||||
          .catch(() => {});
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
.mod-sys__menu {
 | 
			
		||||
  .menu-list,
 | 
			
		||||
  .icon-list {
 | 
			
		||||
    .el-input__inner,
 | 
			
		||||
    .el-input__suffix {
 | 
			
		||||
      cursor: pointer;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-popover {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-inner {
 | 
			
		||||
    width: 478px;
 | 
			
		||||
    max-height: 258px;
 | 
			
		||||
    overflow-x: hidden;
 | 
			
		||||
    overflow-y: auto;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-list {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    margin: -8px 0 0 -8px;
 | 
			
		||||
    > .el-button {
 | 
			
		||||
      padding: 8px;
 | 
			
		||||
      margin: 8px 0 0 8px;
 | 
			
		||||
      > span {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        vertical-align: middle;
 | 
			
		||||
        width: 18px;
 | 
			
		||||
        height: 18px;
 | 
			
		||||
        font-size: 18px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -0,0 +1,116 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="120px">
 | 
			
		||||
    <el-form-item prop="description" :label="$t('code.description')">
 | 
			
		||||
      <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="dataForm.description">
 | 
			
		||||
      </el-input>
 | 
			
		||||
    </el-form-item>
 | 
			
		||||
  </el-form>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicAdd from "@/mixins/basic-add";
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicAdd],
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
        submitURL: "/code/startEightDisciplineSummaryExperience",
 | 
			
		||||
      },
 | 
			
		||||
      visible: false,
 | 
			
		||||
      dataForm: {
 | 
			
		||||
        description: "",
 | 
			
		||||
        startEightDisciplineId: "",
 | 
			
		||||
      },
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    dataRule() {
 | 
			
		||||
      return {
 | 
			
		||||
        description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init(id) {
 | 
			
		||||
      this.dataForm.startEightDisciplineId = id;
 | 
			
		||||
      this.visible = true;
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs["dataForm"].resetFields();
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    // 表单提交
 | 
			
		||||
    dataFormSubmit() {
 | 
			
		||||
      this.$refs["dataForm"].validate((valid) => {
 | 
			
		||||
        if (!valid) {
 | 
			
		||||
          return false;
 | 
			
		||||
        }
 | 
			
		||||
        let putData = {
 | 
			
		||||
          eightDisciplineStatus: 9,
 | 
			
		||||
          id: this.dataForm.startEightDisciplineId,
 | 
			
		||||
        };
 | 
			
		||||
        this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
 | 
			
		||||
          if (data && data.code === 0) {
 | 
			
		||||
          } else {
 | 
			
		||||
            this.$message.error(data.msg);
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
        this.$http
 | 
			
		||||
          .post(this.urlOptions.submitURL, this.dataForm)
 | 
			
		||||
          .then(({ data: res }) => {
 | 
			
		||||
            if (res.code !== 0) {
 | 
			
		||||
              return this.$message.error(res.msg);
 | 
			
		||||
            }
 | 
			
		||||
            this.$message({
 | 
			
		||||
              message: this.$t("prompt.success"),
 | 
			
		||||
              type: "success",
 | 
			
		||||
              duration: 500,
 | 
			
		||||
              onClose: () => {
 | 
			
		||||
                this.visible = false;
 | 
			
		||||
                this.$emit("refreshDataList");
 | 
			
		||||
              },
 | 
			
		||||
            });
 | 
			
		||||
          })
 | 
			
		||||
          .catch(() => {});
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
.mod-sys__menu {
 | 
			
		||||
  .menu-list,
 | 
			
		||||
  .icon-list {
 | 
			
		||||
    .el-input__inner,
 | 
			
		||||
    .el-input__suffix {
 | 
			
		||||
      cursor: pointer;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-popover {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-inner {
 | 
			
		||||
    width: 478px;
 | 
			
		||||
    max-height: 258px;
 | 
			
		||||
    overflow-x: hidden;
 | 
			
		||||
    overflow-y: auto;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-list {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    margin: -8px 0 0 -8px;
 | 
			
		||||
    > .el-button {
 | 
			
		||||
      padding: 8px;
 | 
			
		||||
      margin: 8px 0 0 8px;
 | 
			
		||||
      > span {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        vertical-align: middle;
 | 
			
		||||
        width: 18px;
 | 
			
		||||
        height: 18px;
 | 
			
		||||
        font-size: 18px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -0,0 +1,225 @@
 | 
			
		||||
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2023-06-29 14:12:48
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2023-06-30 09:07:57
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <base-table border :table-props="tableProps" :table-data="tableData" @emitFun="inputChange" />
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicAdd from "@/mixins/basic-add";
 | 
			
		||||
import inputArea from "./inputArea";
 | 
			
		||||
import selectMember from "./selectMember";
 | 
			
		||||
import selectTime from "./selectTime";
 | 
			
		||||
import i18n from "@/i18n";
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: "containmentLocaleName",
 | 
			
		||||
    label: "遏制区域设置",
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "developCountermeasuresName",
 | 
			
		||||
    label: "拟定对策",
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "controlleQuantity",
 | 
			
		||||
    label: "应受控数量",
 | 
			
		||||
    align: "center",
 | 
			
		||||
    subcomponent: inputArea,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "actualQuantity",
 | 
			
		||||
    label: "实际数量",
 | 
			
		||||
    align: "center",
 | 
			
		||||
    subcomponent: inputArea,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "defectQuantity",
 | 
			
		||||
    label: "不良数量",
 | 
			
		||||
    align: "center",
 | 
			
		||||
    subcomponent: inputArea,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "userName",
 | 
			
		||||
    label: "负责人",
 | 
			
		||||
    align: "center",
 | 
			
		||||
    subcomponent: selectMember,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "completionDate",
 | 
			
		||||
    label: "完成日期",
 | 
			
		||||
    align: "center",
 | 
			
		||||
    subcomponent: selectTime,
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
export default {
 | 
			
		||||
  components: {
 | 
			
		||||
    inputArea,
 | 
			
		||||
    selectMember,
 | 
			
		||||
  },
 | 
			
		||||
  mixins: [basicAdd],
 | 
			
		||||
  props: {
 | 
			
		||||
    roleList: {
 | 
			
		||||
      type: Array,
 | 
			
		||||
      default: () => [],
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
        submitURL: "/code/startEightDisciplinePreliminaryAnalysis/",
 | 
			
		||||
      },
 | 
			
		||||
      tableProps,
 | 
			
		||||
      visible: false,
 | 
			
		||||
      tableData: [
 | 
			
		||||
        {
 | 
			
		||||
          containmentLocaleName: "装配线",
 | 
			
		||||
          containmentLocale: 1,
 | 
			
		||||
          developCountermeasuresName: "让步接收",
 | 
			
		||||
          developCountermeasures: 1,
 | 
			
		||||
          roleList: this.roleList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          containmentLocaleName: "生产线",
 | 
			
		||||
          containmentLocale: 2,
 | 
			
		||||
          developCountermeasuresName: "分选返工",
 | 
			
		||||
          developCountermeasures: 2,
 | 
			
		||||
          roleList: this.roleList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          containmentLocaleName: "实验室",
 | 
			
		||||
          containmentLocale: 3,
 | 
			
		||||
          developCountermeasuresName: "隔离",
 | 
			
		||||
          developCountermeasures: 3,
 | 
			
		||||
          roleList: this.roleList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          containmentLocaleName: "成品在途",
 | 
			
		||||
          containmentLocale: 4,
 | 
			
		||||
          developCountermeasuresName: "退换货",
 | 
			
		||||
          developCountermeasures: 4,
 | 
			
		||||
          roleList: this.roleList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          containmentLocaleName: "第三方中间商",
 | 
			
		||||
          containmentLocale: 5,
 | 
			
		||||
          developCountermeasuresName: "通知供应商",
 | 
			
		||||
          developCountermeasures: 5,
 | 
			
		||||
          roleList: this.roleList,
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
      id: "",
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    dataRule() {
 | 
			
		||||
      return {
 | 
			
		||||
        // description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init(id) {
 | 
			
		||||
      this.id = id;
 | 
			
		||||
      this.visible = true;
 | 
			
		||||
      this.$nextTick(() => {});
 | 
			
		||||
    },
 | 
			
		||||
    inputChange(data) {
 | 
			
		||||
      switch (data.sType) {
 | 
			
		||||
        case 1:
 | 
			
		||||
          this.tableData[data._pageIndex - 1][data.prop] = data[data.prop];
 | 
			
		||||
          break;
 | 
			
		||||
        case 2:
 | 
			
		||||
          this.tableData[data._pageIndex - 1].userName = data.string
 | 
			
		||||
            ? data.string.split("+")[1]
 | 
			
		||||
            : "";
 | 
			
		||||
          this.tableData[data._pageIndex - 1].userId = data.string ? data.string.split("+")[0] : "";
 | 
			
		||||
          break;
 | 
			
		||||
        case 3:
 | 
			
		||||
          this.tableData[data._pageIndex - 1][data.prop] = data.time;
 | 
			
		||||
          break;
 | 
			
		||||
        default:
 | 
			
		||||
          console.log(val);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    formClear() {},
 | 
			
		||||
    // 表单提交
 | 
			
		||||
    dataFormSubmit() {
 | 
			
		||||
      console.log(this.tableData);
 | 
			
		||||
          let putData = {
 | 
			
		||||
            eightDisciplineStatus: 4,
 | 
			
		||||
            examineStatus: 1,
 | 
			
		||||
            id: this.id,
 | 
			
		||||
          };
 | 
			
		||||
          this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
 | 
			
		||||
            if (data && data.code === 0) {
 | 
			
		||||
            } else {
 | 
			
		||||
              this.$message.error(data.msg);
 | 
			
		||||
            }
 | 
			
		||||
          });
 | 
			
		||||
        this.tableData.forEach((item) => {
 | 
			
		||||
          item.startEightDisciplineId = this.id;
 | 
			
		||||
        });
 | 
			
		||||
          this.$http.post("/code/startEightDisciplineTemporaryTreatmentMeasures/save/list", this.tableData)
 | 
			
		||||
          .then(({ data: res }) => {
 | 
			
		||||
            if (res.code !== 0) {
 | 
			
		||||
              return this.$message.error(res.msg);
 | 
			
		||||
            }
 | 
			
		||||
            this.$message({
 | 
			
		||||
              message: this.$t("prompt.success"),
 | 
			
		||||
              type: "success",
 | 
			
		||||
              duration: 500,
 | 
			
		||||
              onClose: () => {
 | 
			
		||||
                this.visible = false;
 | 
			
		||||
                this.$emit("refreshDataList");
 | 
			
		||||
              },
 | 
			
		||||
            });
 | 
			
		||||
          });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
.mod-sys__menu {
 | 
			
		||||
  .menu-list,
 | 
			
		||||
  .icon-list {
 | 
			
		||||
    .el-input__inner,
 | 
			
		||||
    .el-input__suffix {
 | 
			
		||||
      cursor: pointer;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-popover {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-inner {
 | 
			
		||||
    width: 478px;
 | 
			
		||||
    max-height: 258px;
 | 
			
		||||
    overflow-x: hidden;
 | 
			
		||||
    overflow-y: auto;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-list {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    margin: -8px 0 0 -8px;
 | 
			
		||||
    > .el-button {
 | 
			
		||||
      padding: 8px;
 | 
			
		||||
      margin: 8px 0 0 8px;
 | 
			
		||||
      > span {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        vertical-align: middle;
 | 
			
		||||
        width: 18px;
 | 
			
		||||
        height: 18px;
 | 
			
		||||
        font-size: 18px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -0,0 +1,117 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="120px">
 | 
			
		||||
    <el-form-item prop="description" :label="$t('code.description')">
 | 
			
		||||
      <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="dataForm.description">
 | 
			
		||||
      </el-input>
 | 
			
		||||
    </el-form-item>
 | 
			
		||||
  </el-form>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicAdd from "@/mixins/basic-add";
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicAdd],
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
        submitURL: "/code/startEightDisciplineValidation",
 | 
			
		||||
      },
 | 
			
		||||
      visible: false,
 | 
			
		||||
      dataForm: {
 | 
			
		||||
        description: "",
 | 
			
		||||
        startEightDisciplineId: "",
 | 
			
		||||
      },
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    dataRule() {
 | 
			
		||||
      return {
 | 
			
		||||
        description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init(id) {
 | 
			
		||||
      this.dataForm.startEightDisciplineId = id;
 | 
			
		||||
      this.visible = true;
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs["dataForm"].resetFields();
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    // 表单提交
 | 
			
		||||
    dataFormSubmit() {
 | 
			
		||||
      this.$refs["dataForm"].validate((valid) => {
 | 
			
		||||
        if (!valid) {
 | 
			
		||||
          return false;
 | 
			
		||||
        }
 | 
			
		||||
        let putData = {
 | 
			
		||||
          eightDisciplineStatus: 7,
 | 
			
		||||
          examineStatus: 1,
 | 
			
		||||
          id: this.dataForm.startEightDisciplineId,
 | 
			
		||||
        };
 | 
			
		||||
        this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
 | 
			
		||||
          if (data && data.code === 0) {
 | 
			
		||||
          } else {
 | 
			
		||||
            this.$message.error(data.msg);
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
        this.$http
 | 
			
		||||
          .post(this.urlOptions.submitURL, this.dataForm)
 | 
			
		||||
          .then(({ data: res }) => {
 | 
			
		||||
            if (res.code !== 0) {
 | 
			
		||||
              return this.$message.error(res.msg);
 | 
			
		||||
            }
 | 
			
		||||
            this.$message({
 | 
			
		||||
              message: this.$t("prompt.success"),
 | 
			
		||||
              type: "success",
 | 
			
		||||
              duration: 500,
 | 
			
		||||
              onClose: () => {
 | 
			
		||||
                this.visible = false;
 | 
			
		||||
                this.$emit("refreshDataList");
 | 
			
		||||
              },
 | 
			
		||||
            });
 | 
			
		||||
          })
 | 
			
		||||
          .catch(() => {});
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
.mod-sys__menu {
 | 
			
		||||
  .menu-list,
 | 
			
		||||
  .icon-list {
 | 
			
		||||
    .el-input__inner,
 | 
			
		||||
    .el-input__suffix {
 | 
			
		||||
      cursor: pointer;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-popover {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-inner {
 | 
			
		||||
    width: 478px;
 | 
			
		||||
    max-height: 258px;
 | 
			
		||||
    overflow-x: hidden;
 | 
			
		||||
    overflow-y: auto;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-list {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    margin: -8px 0 0 -8px;
 | 
			
		||||
    > .el-button {
 | 
			
		||||
      padding: 8px;
 | 
			
		||||
      margin: 8px 0 0 8px;
 | 
			
		||||
      > span {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        vertical-align: middle;
 | 
			
		||||
        width: 18px;
 | 
			
		||||
        height: 18px;
 | 
			
		||||
        font-size: 18px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
							
								
								
									
										208
									
								
								src/views/modules/code/components/startEightGrade-add.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										208
									
								
								src/views/modules/code/components/startEightGrade-add.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,208 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2023-06-29 14:12:48
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2023-06-30 10:58:16
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <base-table border show-summary :table-props="tableProps" :table-data="tableData" @emitFun="inputChange" />
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicAdd from "@/mixins/basic-add";
 | 
			
		||||
import selectMember from "./selectMember";
 | 
			
		||||
import i18n from "@/i18n";
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: "stepName",
 | 
			
		||||
    label: i18n.t("disqualification.step"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "desc",
 | 
			
		||||
    label: "打分项",
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "gradeList",
 | 
			
		||||
    label: "打分",
 | 
			
		||||
    align: "center",
 | 
			
		||||
    subcomponent: selectMember,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "grade",
 | 
			
		||||
    label: "分数",
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
const gradeList = [
 | 
			
		||||
  { id: 1, username: "优" },
 | 
			
		||||
  { id: 2, username: "良" },
 | 
			
		||||
  { id: 3, username: "差" },
 | 
			
		||||
];
 | 
			
		||||
const score = [10, 8, 0];
 | 
			
		||||
export default {
 | 
			
		||||
  components: {
 | 
			
		||||
    selectMember,
 | 
			
		||||
  },
 | 
			
		||||
  mixins: [basicAdd],
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
        submitURL: "/code/startEightDisciplinePreliminaryAnalysis/",
 | 
			
		||||
      },
 | 
			
		||||
      tableProps,
 | 
			
		||||
      score,
 | 
			
		||||
      visible: false,
 | 
			
		||||
      tableData: [
 | 
			
		||||
        {
 | 
			
		||||
          stepName: "D1",
 | 
			
		||||
          step: 1,
 | 
			
		||||
          desc: "初步分析",
 | 
			
		||||
          roleList: gradeList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          stepName: "D2",
 | 
			
		||||
          step: 2,
 | 
			
		||||
          desc: "创建团队",
 | 
			
		||||
          roleList: gradeList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          stepName: "D3",
 | 
			
		||||
          step: 3,
 | 
			
		||||
          desc: "临时处理措施",
 | 
			
		||||
          roleList: gradeList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          stepName: "D4",
 | 
			
		||||
          step: 4,
 | 
			
		||||
          desc: "根本原因分析",
 | 
			
		||||
          roleList: gradeList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          stepName: "D5",
 | 
			
		||||
          step: 5,
 | 
			
		||||
          desc: "纠正措施描述",
 | 
			
		||||
          roleList: gradeList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          stepName: "D6",
 | 
			
		||||
          step: 6,
 | 
			
		||||
          desc: "有效性验证",
 | 
			
		||||
          roleList: gradeList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          stepName: "D7",
 | 
			
		||||
          step: 7,
 | 
			
		||||
          desc: "预防再发生",
 | 
			
		||||
          roleList: gradeList,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          stepName: "D8",
 | 
			
		||||
          step: 8,
 | 
			
		||||
          desc: "总结与经验分享",
 | 
			
		||||
          roleList: gradeList,
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
      id: "",
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    dataRule() {
 | 
			
		||||
      return {
 | 
			
		||||
        // description: [{ required: true, message: this.$t("validate.required"), trigger: "blur" }],
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init(id) {
 | 
			
		||||
      this.id = id;
 | 
			
		||||
      this.visible = true;
 | 
			
		||||
      this.$nextTick(() => {});
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    inputChange(data) {
 | 
			
		||||
      switch (data.sType) {
 | 
			
		||||
        case 1:
 | 
			
		||||
          this.tableData[data._pageIndex - 1][data.prop] = data[data.prop];
 | 
			
		||||
          break;
 | 
			
		||||
        case 2:
 | 
			
		||||
          this.tableData[data._pageIndex - 1].gradeStatus = data.string
 | 
			
		||||
            ? data.string.split("+")[0]
 | 
			
		||||
            : "";
 | 
			
		||||
          if (this.tableData[data._pageIndex - 1].gradeStatus) {
 | 
			
		||||
            this.$set(
 | 
			
		||||
              this.tableData[data._pageIndex - 1],
 | 
			
		||||
              'grade',
 | 
			
		||||
              this.score[this.tableData[data._pageIndex - 1].gradeStatus - 1]
 | 
			
		||||
            );
 | 
			
		||||
          }
 | 
			
		||||
          break;
 | 
			
		||||
        default:
 | 
			
		||||
          console.log(val);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    formClear() {},
 | 
			
		||||
    // 表单提交
 | 
			
		||||
    dataFormSubmit() {
 | 
			
		||||
        this.tableData.forEach((item) => {
 | 
			
		||||
          item.startEightDisciplineId = this.id;
 | 
			
		||||
        });
 | 
			
		||||
          this.$http.post("/code/startEightGrade/save/list", this.tableData)
 | 
			
		||||
          .then(({ data: res }) => {
 | 
			
		||||
            if (res.code !== 0) {
 | 
			
		||||
              return this.$message.error(res.msg);
 | 
			
		||||
            }
 | 
			
		||||
            this.$message({
 | 
			
		||||
              message: this.$t("prompt.success"),
 | 
			
		||||
              type: "success",
 | 
			
		||||
              duration: 500,
 | 
			
		||||
              onClose: () => {
 | 
			
		||||
                this.visible = false;
 | 
			
		||||
                this.$emit("refreshDataList");
 | 
			
		||||
              },
 | 
			
		||||
            });
 | 
			
		||||
          });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
.mod-sys__menu {
 | 
			
		||||
  .menu-list,
 | 
			
		||||
  .icon-list {
 | 
			
		||||
    .el-input__inner,
 | 
			
		||||
    .el-input__suffix {
 | 
			
		||||
      cursor: pointer;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-popover {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-inner {
 | 
			
		||||
    width: 478px;
 | 
			
		||||
    max-height: 258px;
 | 
			
		||||
    overflow-x: hidden;
 | 
			
		||||
    overflow-y: auto;
 | 
			
		||||
  }
 | 
			
		||||
  &-icon-list {
 | 
			
		||||
    width: 458px;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    margin: -8px 0 0 -8px;
 | 
			
		||||
    > .el-button {
 | 
			
		||||
      padding: 8px;
 | 
			
		||||
      margin: 8px 0 0 8px;
 | 
			
		||||
      > span {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        vertical-align: middle;
 | 
			
		||||
        width: 18px;
 | 
			
		||||
        height: 18px;
 | 
			
		||||
        font-size: 18px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-01-11 09:24:58
 | 
			
		||||
 * @LastEditTime: 2023-06-05 09:12:25
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-06-28 16:06:37
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -37,6 +37,7 @@ import eightDisciplineAdd from "./components/eightDiscipline-add"
 | 
			
		||||
// import disposalMethodSearch from "./components/disposalMethodSearch"
 | 
			
		||||
import available from "./components/available.vue"
 | 
			
		||||
import basicSearch from "@/mixins/basic-search"
 | 
			
		||||
import codeFilter from '@/filters/code-filter'
 | 
			
		||||
import i18n from "@/i18n"
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
@@ -52,7 +53,8 @@ const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'eightDisciplineType',
 | 
			
		||||
    label: i18n.t("code.eightDisciplineType"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: codeFilter('eightDisciplineType'),
 | 
			
		||||
  },
 | 
			
		||||
   {
 | 
			
		||||
     prop: 'problemStatus',
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-01-11 09:24:58
 | 
			
		||||
 * @LastEditTime: 2023-06-05 09:12:12
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-06-29 11:02:36
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
        </el-badge> -->
 | 
			
		||||
      </SearchBar>
 | 
			
		||||
      <base-table :table-props="tableProps" :page="listQuery.page" :limit="listQuery.limit" :table-data="tableData">
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="120" label="操作" :method-list="tableBtn"
 | 
			
		||||
          @clickBtn="handleClick" />
 | 
			
		||||
      </base-table>
 | 
			
		||||
      <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
 | 
			
		||||
@@ -29,6 +29,8 @@ import basicPage from "@/mixins/basic-page"
 | 
			
		||||
// import transferSchemeAdd from "./components/transferScheme-add"
 | 
			
		||||
// import transferSchemeSearch from "./components/transferSchemeSearch.vue"
 | 
			
		||||
import basicSearch from "@/mixins/basic-search"
 | 
			
		||||
import { timeFormatter } from "@/filters/code-filter"
 | 
			
		||||
import codeFilter from '@/filters/code-filter'
 | 
			
		||||
import i18n from "@/i18n"
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
@@ -39,12 +41,14 @@ const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'eightDisciplineType',
 | 
			
		||||
    label: i18n.t("code.eightDisciplineType"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: codeFilter('eightDisciplineType'),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'occurrenceDate',
 | 
			
		||||
    label: i18n.t("code.occurrenceDate"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: timeFormatter,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'productName',
 | 
			
		||||
@@ -76,6 +80,10 @@ const tableBtn = [
 | 
			
		||||
    type: "delete",
 | 
			
		||||
    btnName: "删除",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    type: "approve",
 | 
			
		||||
    btnName: "审批",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicPage, basicSearch],
 | 
			
		||||
@@ -94,7 +102,7 @@ export default {
 | 
			
		||||
      listQuery: {
 | 
			
		||||
        limit: 10,
 | 
			
		||||
        page: 1,
 | 
			
		||||
        eightDisciplineStatus: 8
 | 
			
		||||
        examineStatus:1
 | 
			
		||||
      },
 | 
			
		||||
      searchOrEditTitle: '',
 | 
			
		||||
      searchOrUpdateVisible: false,
 | 
			
		||||
@@ -105,23 +113,23 @@ export default {
 | 
			
		||||
          placeholder: i18n.t('code.title'),
 | 
			
		||||
          param: 'title'
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          type: 'select',
 | 
			
		||||
          label: i18n.t('code.examineStatus'),
 | 
			
		||||
          selectOptions: [
 | 
			
		||||
            {
 | 
			
		||||
              id: 0,
 | 
			
		||||
              name: '不需要审批',
 | 
			
		||||
            },
 | 
			
		||||
             {
 | 
			
		||||
               id: 1,
 | 
			
		||||
               name: '需要审批',
 | 
			
		||||
            }
 | 
			
		||||
          ],
 | 
			
		||||
          param: 'examineStatus',
 | 
			
		||||
          clearable: true,
 | 
			
		||||
          filterable: true
 | 
			
		||||
        },
 | 
			
		||||
        // {
 | 
			
		||||
        //   type: 'select',
 | 
			
		||||
        //   label: i18n.t('code.examineStatus'),
 | 
			
		||||
        //   selectOptions: [
 | 
			
		||||
        //     {
 | 
			
		||||
        //       id: 0,
 | 
			
		||||
        //       name: '不需要审批',
 | 
			
		||||
        //     },
 | 
			
		||||
        //      {
 | 
			
		||||
        //        id: 1,
 | 
			
		||||
        //        name: '需要审批',
 | 
			
		||||
        //     }
 | 
			
		||||
        //   ],
 | 
			
		||||
        //   param: 'examineStatus',
 | 
			
		||||
        //   clearable: true,
 | 
			
		||||
        //   filterable: true
 | 
			
		||||
        // },
 | 
			
		||||
        {
 | 
			
		||||
          type: "button",
 | 
			
		||||
          btnName: "搜索",
 | 
			
		||||
@@ -189,6 +197,33 @@ export default {
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data.id);
 | 
			
		||||
        });
 | 
			
		||||
      } else if (val.type === "approve") {
 | 
			
		||||
        this.$confirm(`确定对此条数据进行审批操作?`, "提示", {
 | 
			
		||||
          confirmButtonText: "确定",
 | 
			
		||||
          cancelButtonText: "取消",
 | 
			
		||||
          type: "warning",
 | 
			
		||||
        })
 | 
			
		||||
          .then(() => {
 | 
			
		||||
            let putData = {
 | 
			
		||||
              examineStatus: 0,
 | 
			
		||||
              id: val.data.id,
 | 
			
		||||
            };
 | 
			
		||||
            this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
 | 
			
		||||
              if (data && data.code === 0) {
 | 
			
		||||
                this.$message({
 | 
			
		||||
                  message: "操作成功",
 | 
			
		||||
                  type: "success",
 | 
			
		||||
                  duration: 1500,
 | 
			
		||||
                  onClose: () => {
 | 
			
		||||
                    this.getDataList();
 | 
			
		||||
                  },
 | 
			
		||||
                });
 | 
			
		||||
              } else {
 | 
			
		||||
                this.$message.error(data.msg);
 | 
			
		||||
              }
 | 
			
		||||
            });
 | 
			
		||||
          })
 | 
			
		||||
          .catch(() => {});
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    buttonClick(val) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,27 +1,48 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-01-11 09:24:58
 | 
			
		||||
 * @LastEditTime: 2023-06-05 09:11:52
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-06-29 11:15:25
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <el-card shadow="never" class="aui-card--fill">
 | 
			
		||||
    <div class="mod-sys__user">
 | 
			
		||||
      <SearchBar :formConfigs="formConfig" ref="ruleForm" @headBtnClick="buttonClick">
 | 
			
		||||
        <el-badge :value="1" class="item">
 | 
			
		||||
        <!-- <el-badge :value="1" class="item">
 | 
			
		||||
          <el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
 | 
			
		||||
        </el-badge>
 | 
			
		||||
        </el-badge> -->
 | 
			
		||||
      </SearchBar>
 | 
			
		||||
      <base-table :table-props="tableProps" :page="listQuery.page" :limit="listQuery.limit" :table-data="tableData">
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
 | 
			
		||||
          @clickBtn="handleClick" />
 | 
			
		||||
      <base-table
 | 
			
		||||
        :table-props="tableProps"
 | 
			
		||||
        :page="listQuery.page"
 | 
			
		||||
        :limit="listQuery.limit"
 | 
			
		||||
        :table-data="tableData"
 | 
			
		||||
      >
 | 
			
		||||
        <method-btn
 | 
			
		||||
          v-if="tableBtn.length"
 | 
			
		||||
          slot="handleBtn"
 | 
			
		||||
          :width="150"
 | 
			
		||||
          label="操作"
 | 
			
		||||
          :method-list="tableBtn"
 | 
			
		||||
          @clickBtn="handleClick"
 | 
			
		||||
        />
 | 
			
		||||
      </base-table>
 | 
			
		||||
      <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
 | 
			
		||||
        @pagination="getDataList" />
 | 
			
		||||
      <pagination
 | 
			
		||||
        :limit.sync="listQuery.limit"
 | 
			
		||||
        :page.sync="listQuery.page"
 | 
			
		||||
        :total="listQuery.total"
 | 
			
		||||
        @pagination="getDataList"
 | 
			
		||||
      />
 | 
			
		||||
      <!-- 弹窗, 新增 / 修改 -->
 | 
			
		||||
      <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" @cancel="handleCancel"
 | 
			
		||||
        @confirm="handleConfirm" :before-close="handleCancel">
 | 
			
		||||
      <base-dialog
 | 
			
		||||
        :dialogTitle="addOrEditTitle"
 | 
			
		||||
        :dialogVisible="addOrUpdateVisible"
 | 
			
		||||
        @cancel="handleCancel"
 | 
			
		||||
        @confirm="handleConfirm"
 | 
			
		||||
        :before-close="handleCancel"
 | 
			
		||||
        width="70%"
 | 
			
		||||
      >
 | 
			
		||||
        <startEightDiscipline-add ref="addOrUpdate" @refreshDataList="successSubmit">
 | 
			
		||||
        </startEightDiscipline-add>
 | 
			
		||||
        <!-- <el-row slot="footer" type="flex" justify="end"> </el-row> -->
 | 
			
		||||
@@ -31,33 +52,37 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicPage from "@/mixins/basic-page"
 | 
			
		||||
import startEightDisciplineAdd from "./components/startEightDiscipline-add"
 | 
			
		||||
import basicPage from "@/mixins/basic-page";
 | 
			
		||||
import startEightDisciplineAdd from "./components/startEightDiscipline-add";
 | 
			
		||||
// import AddOrUpdate from './params-add-or-update'
 | 
			
		||||
// import customSamplingSearch from "./components/customSamplingSearch"
 | 
			
		||||
// import available from "./components/available.vue"
 | 
			
		||||
import basicSearch from "@/mixins/basic-search"
 | 
			
		||||
import i18n from "@/i18n"
 | 
			
		||||
import basicSearch from "@/mixins/basic-search";
 | 
			
		||||
import codeFilter from "@/filters/code-filter";
 | 
			
		||||
import { timeFormatter } from "@/filters/code-filter";
 | 
			
		||||
import i18n from "@/i18n";
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'title',
 | 
			
		||||
    prop: "title",
 | 
			
		||||
    label: i18n.t("code.title"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'code',
 | 
			
		||||
    prop: "code",
 | 
			
		||||
    label: i18n.t("code.code"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'eightDisciplineType',
 | 
			
		||||
    prop: "eightDisciplineType",
 | 
			
		||||
    label: i18n.t("code.eightDisciplineType"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: "center",
 | 
			
		||||
    filter: codeFilter("eightDisciplineType"),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'occurrenceDate',
 | 
			
		||||
    prop: "occurrenceDate",
 | 
			
		||||
    label: i18n.t("code.occurrenceDate"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: "center",
 | 
			
		||||
    filter: timeFormatter,
 | 
			
		||||
  },
 | 
			
		||||
  // {
 | 
			
		||||
  //   prop: 'productName',
 | 
			
		||||
@@ -70,16 +95,17 @@ const tableProps = [
 | 
			
		||||
  //   align: 'center'
 | 
			
		||||
  // },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'description',
 | 
			
		||||
    prop: "description",
 | 
			
		||||
    label: i18n.t("code.description"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'userId',
 | 
			
		||||
    label: i18n.t("code.userId"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
    prop: "examineStatus",
 | 
			
		||||
    label: i18n.t("code.examineStatus"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
    filter: codeFilter("examineStatus"),
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
const tableBtn = [
 | 
			
		||||
  {
 | 
			
		||||
    type: "edit",
 | 
			
		||||
@@ -89,12 +115,16 @@ const tableBtn = [
 | 
			
		||||
    type: "delete",
 | 
			
		||||
    btnName: "删除",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    type: "CAR",
 | 
			
		||||
    btnName: "启动CAR",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicPage, basicSearch],
 | 
			
		||||
  components: {
 | 
			
		||||
    // customSamplingSearch,
 | 
			
		||||
    startEightDisciplineAdd
 | 
			
		||||
    startEightDisciplineAdd,
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
@@ -104,9 +134,15 @@ export default {
 | 
			
		||||
      },
 | 
			
		||||
      tableProps,
 | 
			
		||||
      tableBtn,
 | 
			
		||||
      searchOrEditTitle: '',
 | 
			
		||||
      searchOrEditTitle: "",
 | 
			
		||||
      searchOrUpdateVisible: false,
 | 
			
		||||
      formConfig: [
 | 
			
		||||
        {
 | 
			
		||||
          type: "input",
 | 
			
		||||
          label: i18n.t("code.title"),
 | 
			
		||||
          placeholder: i18n.t("code.title"),
 | 
			
		||||
          param: "title",
 | 
			
		||||
        },
 | 
			
		||||
        // {
 | 
			
		||||
        //   type: "",
 | 
			
		||||
        //   label: i18n.t("params.paramCode"),
 | 
			
		||||
@@ -118,17 +154,24 @@ export default {
 | 
			
		||||
        // },
 | 
			
		||||
        {
 | 
			
		||||
          type: "button",
 | 
			
		||||
          btnName: "新增",
 | 
			
		||||
          name: "add",
 | 
			
		||||
          btnName: "搜索",
 | 
			
		||||
          name: "search",
 | 
			
		||||
          color: "primary",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          type: "button",
 | 
			
		||||
          btnName: "搜索",
 | 
			
		||||
          name: "search",
 | 
			
		||||
          btnName: "新增",
 | 
			
		||||
          name: "add",
 | 
			
		||||
          color: "primary",
 | 
			
		||||
        }
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
      listQuery: {
 | 
			
		||||
        limit: 10,
 | 
			
		||||
        page: 1,
 | 
			
		||||
        total: 1,
 | 
			
		||||
        eightDisciplineStatus: 0,
 | 
			
		||||
        examineStatus: 0
 | 
			
		||||
      },
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  // components: {
 | 
			
		||||
@@ -148,19 +191,19 @@ export default {
 | 
			
		||||
      this.searchOrEditTitle = "搜索";
 | 
			
		||||
      this.searchOrUpdateVisible = true;
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs.searchOrUpdate.init()
 | 
			
		||||
        this.$refs.searchOrUpdate.init();
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    conditionSearchSubmit(dataForm) {
 | 
			
		||||
      // console.log(key);
 | 
			
		||||
      // console.log(key);
 | 
			
		||||
      // this.listQuery.key = key;
 | 
			
		||||
      this.listQuery.customSamplingCode = dataForm.customSamplingCode
 | 
			
		||||
      this.listQuery.customSamplingCode = dataForm.customSamplingCode;
 | 
			
		||||
      // this.listQuery.name = dataForm.name
 | 
			
		||||
      // this.listQuery.failureTypeStatus = dataForm.failureTypeStatus
 | 
			
		||||
      this.listQuery.page = 1
 | 
			
		||||
      this.getDataList()
 | 
			
		||||
      this.searchOrUpdateVisible = false
 | 
			
		||||
      this.listQuery.page = 1;
 | 
			
		||||
      this.getDataList();
 | 
			
		||||
      this.searchOrUpdateVisible = false;
 | 
			
		||||
      // console.log(11111);
 | 
			
		||||
      // this.conditionSearchSubmit();
 | 
			
		||||
    },
 | 
			
		||||
@@ -173,7 +216,9 @@ export default {
 | 
			
		||||
          type: "warning",
 | 
			
		||||
        })
 | 
			
		||||
          .then(() => {
 | 
			
		||||
            this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => {
 | 
			
		||||
            this.$http
 | 
			
		||||
              .delete(this.urlOptions.deleteURL, { data: [val.data.id] })
 | 
			
		||||
              .then(({ data }) => {
 | 
			
		||||
                if (data && data.code === 0) {
 | 
			
		||||
                  this.$message({
 | 
			
		||||
                    message: "操作成功",
 | 
			
		||||
@@ -188,13 +233,41 @@ export default {
 | 
			
		||||
                }
 | 
			
		||||
              });
 | 
			
		||||
          })
 | 
			
		||||
          .catch(() => { });
 | 
			
		||||
      } else if (val.type === 'edit') {
 | 
			
		||||
        this.addOrUpdateVisible = true
 | 
			
		||||
        this.addOrEditTitle = this.$t('edit')
 | 
			
		||||
          .catch(() => {});
 | 
			
		||||
      } else if (val.type === "edit") {
 | 
			
		||||
        this.addOrUpdateVisible = true;
 | 
			
		||||
        this.addOrEditTitle = this.$t("edit");
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data.id);
 | 
			
		||||
        });
 | 
			
		||||
      } else if (val.type === "CAR") {
 | 
			
		||||
        this.$confirm(`确定对此条数据进行启动CAR操作?`, "提示", {
 | 
			
		||||
          confirmButtonText: "确定",
 | 
			
		||||
          cancelButtonText: "取消",
 | 
			
		||||
          type: "warning",
 | 
			
		||||
        })
 | 
			
		||||
          .then(() => {
 | 
			
		||||
            let putData = {
 | 
			
		||||
              eightDisciplineStatus: 1,
 | 
			
		||||
              examineStatus: 1,
 | 
			
		||||
              id: val.data.id,
 | 
			
		||||
            };
 | 
			
		||||
            this.$http.put("/code/startEightDiscipline", putData).then(({ data }) => {
 | 
			
		||||
              if (data && data.code === 0) {
 | 
			
		||||
                this.$message({
 | 
			
		||||
                  message: "操作成功",
 | 
			
		||||
                  type: "success",
 | 
			
		||||
                  duration: 1500,
 | 
			
		||||
                  onClose: () => {
 | 
			
		||||
                    this.getDataList();
 | 
			
		||||
                  },
 | 
			
		||||
                });
 | 
			
		||||
              } else {
 | 
			
		||||
                this.$message.error(data.msg);
 | 
			
		||||
              }
 | 
			
		||||
            });
 | 
			
		||||
          })
 | 
			
		||||
          .catch(() => {});
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    buttonClick(val) {
 | 
			
		||||
@@ -202,20 +275,20 @@ export default {
 | 
			
		||||
        case "search":
 | 
			
		||||
          // this.listQuery.paramCode = val.paramCode;
 | 
			
		||||
          this.listQuery.page = 1;
 | 
			
		||||
          this.listQuery.code = null
 | 
			
		||||
          this.listQuery.name = null
 | 
			
		||||
          this.listQuery.failureTypeStatus = null
 | 
			
		||||
          this.listQuery.title = val.title ? val.title : "";
 | 
			
		||||
          this.listQuery.failureTypeStatus = null;
 | 
			
		||||
          this.listQuery.eightDisciplineStatus = 0;
 | 
			
		||||
          this.getDataList();
 | 
			
		||||
          break;
 | 
			
		||||
        case "add":
 | 
			
		||||
          this.addOrEditTitle = this.$t('add')
 | 
			
		||||
          this.addOrEditTitle = this.$t("add");
 | 
			
		||||
          this.addOrUpdateVisible = true;
 | 
			
		||||
          this.addOrUpdateHandle()
 | 
			
		||||
          this.addOrUpdateHandle();
 | 
			
		||||
          break;
 | 
			
		||||
        default:
 | 
			
		||||
          console.log(val)
 | 
			
		||||
          console.log(val);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-01-11 09:24:58
 | 
			
		||||
 * @LastEditTime: 2023-06-05 09:11:39
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-06-29 15:56:04
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -13,62 +13,94 @@
 | 
			
		||||
          <el-button type="primary" size="small" @click="conditionSearch">条件搜索</el-button>
 | 
			
		||||
        </el-badge> -->
 | 
			
		||||
      </SearchBar>
 | 
			
		||||
      <base-table :table-props="tableProps" :page="listQuery.page" :limit="listQuery.limit" :table-data="tableData">
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
 | 
			
		||||
          @clickBtn="handleClick" />
 | 
			
		||||
      <base-table
 | 
			
		||||
        :table-props="tableProps"
 | 
			
		||||
        :page="listQuery.page"
 | 
			
		||||
        :limit="listQuery.limit"
 | 
			
		||||
        :table-data="tableData"
 | 
			
		||||
      >
 | 
			
		||||
        <method-btn
 | 
			
		||||
          v-if="tableBtn.length"
 | 
			
		||||
          slot="handleBtn"
 | 
			
		||||
          :width="120"
 | 
			
		||||
          label="操作"
 | 
			
		||||
          :method-list="tableBtn"
 | 
			
		||||
          @clickBtn="handleClick"
 | 
			
		||||
        />
 | 
			
		||||
      </base-table>
 | 
			
		||||
      <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
 | 
			
		||||
        @pagination="getDataList" />
 | 
			
		||||
      <pagination
 | 
			
		||||
        :limit.sync="listQuery.limit"
 | 
			
		||||
        :page.sync="listQuery.page"
 | 
			
		||||
        :total="listQuery.total"
 | 
			
		||||
        @pagination="getDataList"
 | 
			
		||||
      />
 | 
			
		||||
      <!-- 弹窗, 新增 / 修改 -->
 | 
			
		||||
      <base-dialog
 | 
			
		||||
        :dialogTitle="teamSetTitle"
 | 
			
		||||
        :dialogVisible="teamSetVisible"
 | 
			
		||||
        @cancel="handleCancel"
 | 
			
		||||
        @confirm="handleConfirm"
 | 
			
		||||
        :before-close="handleCancel"
 | 
			
		||||
      >
 | 
			
		||||
        <add-or-update
 | 
			
		||||
          ref="teamSet"
 | 
			
		||||
          :roleList="roleList"
 | 
			
		||||
          @refreshDataList="successSubmit"
 | 
			
		||||
        ></add-or-update>
 | 
			
		||||
      </base-dialog>
 | 
			
		||||
    </div>
 | 
			
		||||
  </el-card>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicPage from "@/mixins/basic-page"
 | 
			
		||||
import basicPage from "@/mixins/basic-page";
 | 
			
		||||
// import transferRecordsAdd from "./components/transferRecords-add"
 | 
			
		||||
// import AddOrUpdate from './params-add-or-update'
 | 
			
		||||
import AddOrUpdate from "./components/startEightDisciplineCreateTeam-add";
 | 
			
		||||
// import transferRecordsSearch from "./components/transferRecordsSearch"
 | 
			
		||||
// import available from "./components/available.vue"
 | 
			
		||||
import basicSearch from "@/mixins/basic-search"
 | 
			
		||||
import i18n from "@/i18n"
 | 
			
		||||
import basicSearch from "@/mixins/basic-search";
 | 
			
		||||
import { timeFormatter } from "@/filters/code-filter";
 | 
			
		||||
import codeFilter from "@/filters/code-filter";
 | 
			
		||||
import i18n from "@/i18n";
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'productName',
 | 
			
		||||
    label: i18n.t("quality.productName"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    prop: "title",
 | 
			
		||||
    label: i18n.t("code.title"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'supplierName',
 | 
			
		||||
    label: i18n.t("quality.supplierName"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    prop: "eightDisciplineType",
 | 
			
		||||
    label: i18n.t("oss.type"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
    filter: codeFilter("eightDisciplineType"),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'transferOutName',
 | 
			
		||||
    label: i18n.t("quality.transferOutName"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    prop: "occurrenceDate",
 | 
			
		||||
    label: i18n.t("gage.createDate"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
    filter: timeFormatter,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
     prop: 'transferInName',
 | 
			
		||||
     label: i18n.t("quality.transferInName"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    prop: "productName",
 | 
			
		||||
    label: i18n.t("code.productName"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'dataSources',
 | 
			
		||||
    label: i18n.t("quality.dataSources"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    prop: "customName",
 | 
			
		||||
    label: i18n.t("gage.connection"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
     prop: 'remark',
 | 
			
		||||
     label: i18n.t("quality.remark"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    prop: "description",
 | 
			
		||||
    label: i18n.t("basic.remark"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'userName',
 | 
			
		||||
    label: i18n.t("quality.userName"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
    prop: "userId",
 | 
			
		||||
    label: i18n.t("code.userId"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
const tableBtn = [
 | 
			
		||||
  {
 | 
			
		||||
    type: "edit",
 | 
			
		||||
@@ -78,12 +110,15 @@ const tableBtn = [
 | 
			
		||||
    type: "delete",
 | 
			
		||||
    btnName: "删除",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    type: "team",
 | 
			
		||||
    btnName: "团队",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicPage, basicSearch],
 | 
			
		||||
  components: {
 | 
			
		||||
    // transferRecordsSearch,
 | 
			
		||||
    // transferRecordsAdd
 | 
			
		||||
    AddOrUpdate,
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
@@ -93,12 +128,16 @@ export default {
 | 
			
		||||
      },
 | 
			
		||||
      tableProps,
 | 
			
		||||
      tableBtn,
 | 
			
		||||
      teamSetTitle: "",
 | 
			
		||||
      teamSetVisible: false,
 | 
			
		||||
      listQuery: {
 | 
			
		||||
        limit: 10,
 | 
			
		||||
        page: 1,
 | 
			
		||||
        eightDisciplineStatus: 2
 | 
			
		||||
        eightDisciplineStatus: 2,
 | 
			
		||||
        examineStatus: 0,
 | 
			
		||||
      },
 | 
			
		||||
      searchOrEditTitle: '',
 | 
			
		||||
      roleList: [],
 | 
			
		||||
      searchOrEditTitle: "",
 | 
			
		||||
      searchOrUpdateVisible: false,
 | 
			
		||||
      formConfig: [
 | 
			
		||||
        // {
 | 
			
		||||
@@ -111,23 +150,20 @@ export default {
 | 
			
		||||
        //   type: "separate",
 | 
			
		||||
        // },
 | 
			
		||||
        {
 | 
			
		||||
          type: 'input',
 | 
			
		||||
          label: i18n.t('code.title'),
 | 
			
		||||
          placeholder: i18n.t('code.title'),
 | 
			
		||||
          param: 'title'
 | 
			
		||||
          type: "input",
 | 
			
		||||
          label: i18n.t("code.title"),
 | 
			
		||||
          placeholder: i18n.t("code.title"),
 | 
			
		||||
          param: "title",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          type: "button",
 | 
			
		||||
          btnName: "搜索",
 | 
			
		||||
          name: "search",
 | 
			
		||||
          color: "primary",
 | 
			
		||||
        }
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  // components: {
 | 
			
		||||
  //   AddOrUpdate,
 | 
			
		||||
  // },
 | 
			
		||||
  methods: {
 | 
			
		||||
    //search-bar点击
 | 
			
		||||
    handleProductCancel() {
 | 
			
		||||
@@ -161,7 +197,9 @@ export default {
 | 
			
		||||
          type: "warning",
 | 
			
		||||
        })
 | 
			
		||||
          .then(() => {
 | 
			
		||||
            this.$http.delete(this.urlOptions.deleteURL, { data: [val.data.id] }).then(({ data }) => {
 | 
			
		||||
            this.$http
 | 
			
		||||
              .delete(this.urlOptions.deleteURL, { data: [val.data.id] })
 | 
			
		||||
              .then(({ data }) => {
 | 
			
		||||
                if (data && data.code === 0) {
 | 
			
		||||
                  this.$message({
 | 
			
		||||
                    message: "操作成功",
 | 
			
		||||
@@ -176,32 +214,54 @@ export default {
 | 
			
		||||
                }
 | 
			
		||||
              });
 | 
			
		||||
          })
 | 
			
		||||
          .catch(() => { });
 | 
			
		||||
      } else if (val.type === 'edit') {
 | 
			
		||||
        this.addOrUpdateVisible = true
 | 
			
		||||
        this.addOrEditTitle = this.$t('edit')
 | 
			
		||||
          .catch(() => {});
 | 
			
		||||
      } else if (val.type === "edit") {
 | 
			
		||||
        this.addOrUpdateVisible = true;
 | 
			
		||||
        this.addOrEditTitle = this.$t("edit");
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data.id);
 | 
			
		||||
        });
 | 
			
		||||
      } else if (val.type === "team") {
 | 
			
		||||
        this.$http
 | 
			
		||||
          .get("/sys/user/list")
 | 
			
		||||
          .then(({ data: res }) => {
 | 
			
		||||
            if (res.code === 0) {
 | 
			
		||||
              this.roleList = res.data;
 | 
			
		||||
              this.teamSetVisible = true;
 | 
			
		||||
              this.teamSetTitle = "团队";
 | 
			
		||||
              this.$nextTick(() => {
 | 
			
		||||
                this.$refs.teamSet.init(val.data.id);
 | 
			
		||||
              });
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
          .catch(() => {});
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    handleCancel() {
 | 
			
		||||
      this.$refs.teamSet.formClear();
 | 
			
		||||
      this.teamSetVisible = false;
 | 
			
		||||
      this.teamSetTitle = "";
 | 
			
		||||
    },
 | 
			
		||||
    handleConfirm() {
 | 
			
		||||
      this.$refs.teamSet.dataFormSubmit();
 | 
			
		||||
    },
 | 
			
		||||
    buttonClick(val) {
 | 
			
		||||
      switch (val.btnName) {
 | 
			
		||||
        case "search":
 | 
			
		||||
          // this.listQuery.paramCode = val.paramCode;
 | 
			
		||||
          this.listQuery.page = 1;
 | 
			
		||||
          this.listQuery.title = val.title ? val.title : ''
 | 
			
		||||
          this.listQuery.title = val.title ? val.title : "";
 | 
			
		||||
          this.getDataList();
 | 
			
		||||
          break;
 | 
			
		||||
        case "add":
 | 
			
		||||
          this.addOrEditTitle = this.$t('add')
 | 
			
		||||
          this.addOrEditTitle = this.$t("add");
 | 
			
		||||
          this.addOrUpdateVisible = true;
 | 
			
		||||
          this.addOrUpdateHandle()
 | 
			
		||||
          this.addOrUpdateHandle();
 | 
			
		||||
          break;
 | 
			
		||||
        default:
 | 
			
		||||
          console.log(val)
 | 
			
		||||
          console.log(val);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-01-11 09:24:58
 | 
			
		||||
 * @LastEditTime: 2023-06-05 09:11:18
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-06-30 09:26:26
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -14,12 +14,21 @@
 | 
			
		||||
        </el-badge> -->
 | 
			
		||||
      </SearchBar>
 | 
			
		||||
      <base-table :table-props="tableProps" :page="listQuery.page" :limit="listQuery.limit" :table-data="tableData">
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="120" label="操作" :method-list="tableBtn"
 | 
			
		||||
          @clickBtn="handleClick" />
 | 
			
		||||
      </base-table>
 | 
			
		||||
      <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
 | 
			
		||||
        @pagination="getDataList" />
 | 
			
		||||
      <!-- 弹窗, 新增 / 修改 -->
 | 
			
		||||
      <base-dialog
 | 
			
		||||
        :dialogTitle="addOrEditTitle"
 | 
			
		||||
        :dialogVisible="addOrUpdateVisible"
 | 
			
		||||
        @cancel="handleCancel"
 | 
			
		||||
        @confirm="handleConfirm"
 | 
			
		||||
        :before-close="handleCancel"
 | 
			
		||||
      >
 | 
			
		||||
        <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
 | 
			
		||||
      </base-dialog>
 | 
			
		||||
    </div>
 | 
			
		||||
  </el-card>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -31,7 +40,10 @@ import basicPage from "@/mixins/basic-page"
 | 
			
		||||
// import AddOrUpdate from './params-add-or-update'
 | 
			
		||||
// import transferSchemeSearch from "./components/transferSchemeSearch.vue"
 | 
			
		||||
// import available from "./components/available.vue"
 | 
			
		||||
import AddOrUpdate from './components/startEightDisciplineDescriptionCorrectiveAction-add.vue'
 | 
			
		||||
import basicSearch from "@/mixins/basic-search"
 | 
			
		||||
import codeFilter from '@/filters/code-filter'
 | 
			
		||||
import { timeFormatter } from "@/filters/code-filter"
 | 
			
		||||
import i18n from "@/i18n"
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
@@ -47,12 +59,14 @@ const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'eightDisciplineType',
 | 
			
		||||
    label: i18n.t("code.eightDisciplineType"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: codeFilter('eightDisciplineType'),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'occurrenceDate',
 | 
			
		||||
    label: i18n.t("code.occurrenceDate"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: timeFormatter,
 | 
			
		||||
  },
 | 
			
		||||
  // {
 | 
			
		||||
  //   prop: 'productName',
 | 
			
		||||
@@ -84,12 +98,15 @@ const tableBtn = [
 | 
			
		||||
    type: "delete",
 | 
			
		||||
    btnName: "删除",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    type: "corrective",
 | 
			
		||||
    btnName: "纠正",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicPage, basicSearch],
 | 
			
		||||
  components: {
 | 
			
		||||
    // transferSchemeSearch,
 | 
			
		||||
    // transferSchemeAdd
 | 
			
		||||
    AddOrUpdate,
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
@@ -102,7 +119,8 @@ export default {
 | 
			
		||||
      listQuery: {
 | 
			
		||||
        limit: 10,
 | 
			
		||||
        page: 1,
 | 
			
		||||
        eightDisciplineStatus: 5
 | 
			
		||||
        eightDisciplineStatus: 5,
 | 
			
		||||
        examineStatus: 0
 | 
			
		||||
      },
 | 
			
		||||
      searchOrEditTitle: '',
 | 
			
		||||
      searchOrUpdateVisible: false,
 | 
			
		||||
@@ -180,6 +198,12 @@ export default {
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data.id);
 | 
			
		||||
        });
 | 
			
		||||
      } else if (val.type === "corrective") {
 | 
			
		||||
        this.addOrUpdateVisible = true
 | 
			
		||||
        this.addOrEditTitle = "纠正措施描述"
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data.id);
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    buttonClick(val) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-01-11 09:24:58
 | 
			
		||||
 * @LastEditTime: 2023-06-05 09:11:07
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-06-29 13:57:15
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -14,12 +14,21 @@
 | 
			
		||||
        </el-badge> -->
 | 
			
		||||
      </SearchBar>
 | 
			
		||||
      <base-table :table-props="tableProps" :page="listQuery.page" :limit="listQuery.limit" :table-data="tableData">
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="110" label="操作" :method-list="tableBtn"
 | 
			
		||||
          @clickBtn="handleClick" />
 | 
			
		||||
      </base-table>
 | 
			
		||||
      <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
 | 
			
		||||
        @pagination="getDataList" />
 | 
			
		||||
      <!-- 弹窗, 新增 / 修改 -->
 | 
			
		||||
      <base-dialog
 | 
			
		||||
        :dialogTitle="addOrEditTitle"
 | 
			
		||||
        :dialogVisible="addOrUpdateVisible"
 | 
			
		||||
        @cancel="handleCancel"
 | 
			
		||||
        @confirm="handleConfirm"
 | 
			
		||||
        :before-close="handleCancel"
 | 
			
		||||
      >
 | 
			
		||||
        <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
 | 
			
		||||
      </base-dialog>
 | 
			
		||||
    </div>
 | 
			
		||||
  </el-card>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -27,11 +36,13 @@
 | 
			
		||||
<script>
 | 
			
		||||
import basicPage from "@/mixins/basic-page"
 | 
			
		||||
// import InspectionPositionAdd from "./components/InspectionPosition-add"
 | 
			
		||||
// import AddOrUpdate from './params-add-or-update'
 | 
			
		||||
import AddOrUpdate from './components/startEightDisciplinePreliminaryAnalysis-add.vue'
 | 
			
		||||
// import failureTypeSearch from "./components/failureTypeSearch"
 | 
			
		||||
// import available from "./components/available.vue"
 | 
			
		||||
import basicSearch from "@/mixins/basic-search"
 | 
			
		||||
import i18n from "@/i18n"
 | 
			
		||||
import codeFilter from '@/filters/code-filter'
 | 
			
		||||
import { timeFormatter } from "@/filters/code-filter"
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'title',
 | 
			
		||||
@@ -46,12 +57,14 @@ const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'eightDisciplineType',
 | 
			
		||||
    label: i18n.t("code.eightDisciplineType"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: codeFilter('eightDisciplineType'),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'occurrenceDate',
 | 
			
		||||
    label: i18n.t("code.occurrenceDate"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: timeFormatter,
 | 
			
		||||
  },
 | 
			
		||||
  // {
 | 
			
		||||
  //   prop: 'productName',
 | 
			
		||||
@@ -83,12 +96,15 @@ const tableBtn = [
 | 
			
		||||
    type: "delete",
 | 
			
		||||
    btnName: "删除",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    type: "analysis",
 | 
			
		||||
    btnName: "分析",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicPage, basicSearch],
 | 
			
		||||
  components: {
 | 
			
		||||
    // failureTypeSearch,
 | 
			
		||||
    // InspectionPositionAdd
 | 
			
		||||
    AddOrUpdate,
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
@@ -102,7 +118,8 @@ export default {
 | 
			
		||||
      listQuery: {
 | 
			
		||||
        limit: 10,
 | 
			
		||||
        page: 1,
 | 
			
		||||
        eightDisciplineStatus:1
 | 
			
		||||
        eightDisciplineStatus:1,
 | 
			
		||||
        examineStatus: 0
 | 
			
		||||
      },
 | 
			
		||||
      searchOrUpdateVisible: false,
 | 
			
		||||
      formConfig: [
 | 
			
		||||
@@ -188,6 +205,12 @@ export default {
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data.id);
 | 
			
		||||
        });
 | 
			
		||||
      } else if (val.type === "analysis") {
 | 
			
		||||
        this.addOrUpdateVisible = true
 | 
			
		||||
        this.addOrEditTitle = "初步分析"
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data);
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    buttonClick(val) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-01-11 09:24:58
 | 
			
		||||
 * @LastEditTime: 2023-06-05 09:10:50
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-06-30 09:34:16
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -14,12 +14,21 @@
 | 
			
		||||
        </el-badge> -->
 | 
			
		||||
      </SearchBar>
 | 
			
		||||
      <base-table :table-props="tableProps" :page="listQuery.page" :limit="listQuery.limit" :table-data="tableData">
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="120" label="操作" :method-list="tableBtn"
 | 
			
		||||
          @clickBtn="handleClick" />
 | 
			
		||||
      </base-table>
 | 
			
		||||
      <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
 | 
			
		||||
        @pagination="getDataList" />
 | 
			
		||||
      <!-- 弹窗, 新增 / 修改 -->
 | 
			
		||||
      <base-dialog
 | 
			
		||||
        :dialogTitle="addOrEditTitle"
 | 
			
		||||
        :dialogVisible="addOrUpdateVisible"
 | 
			
		||||
        @cancel="handleCancel"
 | 
			
		||||
        @confirm="handleConfirm"
 | 
			
		||||
        :before-close="handleCancel"
 | 
			
		||||
      >
 | 
			
		||||
        <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
 | 
			
		||||
      </base-dialog>
 | 
			
		||||
    </div>
 | 
			
		||||
  </el-card>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -31,7 +40,10 @@ import basicPage from "@/mixins/basic-page"
 | 
			
		||||
// import AddOrUpdate from './params-add-or-update'
 | 
			
		||||
// import transferSchemeSearch from "./components/transferSchemeSearch.vue"
 | 
			
		||||
// import available from "./components/available.vue"
 | 
			
		||||
import AddOrUpdate from './components/startEightDisciplinePreventRecurrence-add.vue'
 | 
			
		||||
import basicSearch from "@/mixins/basic-search"
 | 
			
		||||
import { timeFormatter } from "@/filters/code-filter"
 | 
			
		||||
import codeFilter from '@/filters/code-filter'
 | 
			
		||||
import i18n from "@/i18n"
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
@@ -47,12 +59,14 @@ const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'eightDisciplineType',
 | 
			
		||||
    label: i18n.t("code.eightDisciplineType"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: codeFilter('eightDisciplineType'),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'occurrenceDate',
 | 
			
		||||
    label: i18n.t("code.occurrenceDate"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: timeFormatter,
 | 
			
		||||
  },
 | 
			
		||||
  // {
 | 
			
		||||
  //   prop: 'productName',
 | 
			
		||||
@@ -84,12 +98,15 @@ const tableBtn = [
 | 
			
		||||
    type: "delete",
 | 
			
		||||
    btnName: "删除",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    type: "prevent",
 | 
			
		||||
    btnName: "预防",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicPage, basicSearch],
 | 
			
		||||
  components: {
 | 
			
		||||
    // transferSchemeSearch,
 | 
			
		||||
    // transferSchemeAdd
 | 
			
		||||
    AddOrUpdate,
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
@@ -102,7 +119,8 @@ export default {
 | 
			
		||||
      listQuery: {
 | 
			
		||||
        limit: 10,
 | 
			
		||||
        page: 1,
 | 
			
		||||
        eightDisciplineStatus: 6
 | 
			
		||||
        eightDisciplineStatus: 7,
 | 
			
		||||
        examineStatus: 0
 | 
			
		||||
      },
 | 
			
		||||
      searchOrEditTitle: '',
 | 
			
		||||
      searchOrUpdateVisible: false,
 | 
			
		||||
@@ -180,6 +198,12 @@ export default {
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data.id);
 | 
			
		||||
        });
 | 
			
		||||
      } else if (val.type === "prevent") {
 | 
			
		||||
        this.addOrUpdateVisible = true
 | 
			
		||||
        this.addOrEditTitle = "预防再发生"
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data.id);
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    buttonClick(val) {
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,155 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <el-card shadow="never" class="aui-card--fill">
 | 
			
		||||
    <div class="mod-sys__user">
 | 
			
		||||
      <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
 | 
			
		||||
      <base-table
 | 
			
		||||
        :table-props="tableProps"
 | 
			
		||||
        :page="listQuery.page"
 | 
			
		||||
        :limit="listQuery.limit"
 | 
			
		||||
        :table-data="tableData"
 | 
			
		||||
      >
 | 
			
		||||
      </base-table>
 | 
			
		||||
      <pagination
 | 
			
		||||
        :limit.sync="listQuery.limit"
 | 
			
		||||
        :page.sync="listQuery.page"
 | 
			
		||||
        :total="listQuery.total"
 | 
			
		||||
        @pagination="getDataList"
 | 
			
		||||
      />
 | 
			
		||||
    </div>
 | 
			
		||||
  </el-card>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicPage from "@/mixins/basic-page";
 | 
			
		||||
import codeFilter from "@/filters/code-filter";
 | 
			
		||||
import { timeFormatter } from "@/filters/code-filter"
 | 
			
		||||
import i18n from "@/i18n";
 | 
			
		||||
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: "title",
 | 
			
		||||
    label: i18n.t("code.title"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "code",
 | 
			
		||||
    label: i18n.t("code.code"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "eightDisciplineType",
 | 
			
		||||
    label: i18n.t("code.eightDisciplineType"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
    filter: codeFilter("eightDisciplineType"),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "occurrenceDate",
 | 
			
		||||
    label: i18n.t("code.occurrenceDate"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
    filter: timeFormatter,
 | 
			
		||||
  },
 | 
			
		||||
  // {
 | 
			
		||||
  //   prop: 'productName',
 | 
			
		||||
  //   label: i18n.t("code.productName"),
 | 
			
		||||
  //   align: 'center'
 | 
			
		||||
  // },
 | 
			
		||||
  // {
 | 
			
		||||
  //   prop: 'customName',
 | 
			
		||||
  //   label: i18n.t("code.customName"),
 | 
			
		||||
  //   align: 'center'
 | 
			
		||||
  // },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "description",
 | 
			
		||||
    label: i18n.t("code.description"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "examineStatus",
 | 
			
		||||
    label: i18n.t("code.examineStatus"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
    filter: codeFilter("examineStatus"),
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
const eightDisciplineStatusArr = [
 | 
			
		||||
  {
 | 
			
		||||
    name: "D0",
 | 
			
		||||
    id: 0,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D1",
 | 
			
		||||
    id: 1,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D2",
 | 
			
		||||
    id: 2,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D3",
 | 
			
		||||
    id: 3,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D4",
 | 
			
		||||
    id: 4,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D5",
 | 
			
		||||
    id: 5,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D6",
 | 
			
		||||
    id: 6,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D7",
 | 
			
		||||
    id: 7,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D8",
 | 
			
		||||
    id: 8,
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicPage],
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
        getDataListURL: "/code/startEightDiscipline/page",
 | 
			
		||||
        deleteURL: "/code/startEightDiscipline",
 | 
			
		||||
      },
 | 
			
		||||
      tableProps,
 | 
			
		||||
      eightDisciplineStatusArr,
 | 
			
		||||
      tableData: [],
 | 
			
		||||
      formConfig: [
 | 
			
		||||
        {
 | 
			
		||||
          type: "select",
 | 
			
		||||
          label: "状态",
 | 
			
		||||
          selectOptions: eightDisciplineStatusArr,
 | 
			
		||||
          param: "status",
 | 
			
		||||
          defaultSelect: "",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          type: "button",
 | 
			
		||||
          btnName: "搜索",
 | 
			
		||||
          name: "search",
 | 
			
		||||
          color: "primary",
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    //search-bar点击
 | 
			
		||||
    buttonClick(val) {
 | 
			
		||||
      switch (val.btnName) {
 | 
			
		||||
        case "search":
 | 
			
		||||
          this.listQuery.eightDisciplineStatus = val.status;
 | 
			
		||||
          this.listQuery.page = 1;
 | 
			
		||||
          this.getDataList();
 | 
			
		||||
          break;
 | 
			
		||||
        default:
 | 
			
		||||
          console.log(val);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-01-11 09:24:58
 | 
			
		||||
 * @LastEditTime: 2023-06-05 09:10:40
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-06-30 09:21:25
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -14,12 +14,21 @@
 | 
			
		||||
        </el-badge> -->
 | 
			
		||||
      </SearchBar>
 | 
			
		||||
      <base-table :table-props="tableProps" :page="listQuery.page" :limit="listQuery.limit" :table-data="tableData">
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="120" label="操作" :method-list="tableBtn"
 | 
			
		||||
          @clickBtn="handleClick" />
 | 
			
		||||
      </base-table>
 | 
			
		||||
      <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
 | 
			
		||||
        @pagination="getDataList" />
 | 
			
		||||
      <!-- 弹窗, 新增 / 修改 -->
 | 
			
		||||
      <base-dialog
 | 
			
		||||
        :dialogTitle="addOrEditTitle"
 | 
			
		||||
        :dialogVisible="addOrUpdateVisible"
 | 
			
		||||
        @cancel="handleCancel"
 | 
			
		||||
        @confirm="handleConfirm"
 | 
			
		||||
        :before-close="handleCancel"
 | 
			
		||||
      >
 | 
			
		||||
        <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
 | 
			
		||||
      </base-dialog>
 | 
			
		||||
    </div>
 | 
			
		||||
  </el-card>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -30,7 +39,10 @@ import basicPage from "@/mixins/basic-page"
 | 
			
		||||
// import AddOrUpdate from './params-add-or-update'
 | 
			
		||||
// import transferSchemeSearch from "./components/transferSchemeSearch.vue"
 | 
			
		||||
// import available from "./components/available.vue"
 | 
			
		||||
import AddOrUpdate from './components/startEightDisciplineRootCauseAnalysis-add.vue'
 | 
			
		||||
import basicSearch from "@/mixins/basic-search"
 | 
			
		||||
import { timeFormatter } from "@/filters/code-filter"
 | 
			
		||||
import codeFilter from '@/filters/code-filter'
 | 
			
		||||
import i18n from "@/i18n"
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
@@ -46,12 +58,14 @@ const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'eightDisciplineType',
 | 
			
		||||
    label: i18n.t("code.eightDisciplineType"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: codeFilter('eightDisciplineType'),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'occurrenceDate',
 | 
			
		||||
    label: i18n.t("code.occurrenceDate"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: timeFormatter,
 | 
			
		||||
  },
 | 
			
		||||
  // {
 | 
			
		||||
  //   prop: 'productName',
 | 
			
		||||
@@ -83,12 +97,15 @@ const tableBtn = [
 | 
			
		||||
    type: "delete",
 | 
			
		||||
    btnName: "删除",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    type: "analysis",
 | 
			
		||||
    btnName: "分析",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicPage, basicSearch],
 | 
			
		||||
  components: {
 | 
			
		||||
    // transferSchemeSearch,
 | 
			
		||||
    // transferSchemeAdd
 | 
			
		||||
    AddOrUpdate,
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
@@ -101,7 +118,8 @@ export default {
 | 
			
		||||
      listQuery: {
 | 
			
		||||
        limit: 10,
 | 
			
		||||
        page: 1,
 | 
			
		||||
        eightDisciplineStatus: 4
 | 
			
		||||
        eightDisciplineStatus: 4,
 | 
			
		||||
        examineStatus: 0
 | 
			
		||||
      },
 | 
			
		||||
      searchOrEditTitle: '',
 | 
			
		||||
      searchOrUpdateVisible: false,
 | 
			
		||||
@@ -179,6 +197,12 @@ export default {
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data.id);
 | 
			
		||||
        });
 | 
			
		||||
      } else if (val.type === "analysis") {
 | 
			
		||||
        this.addOrUpdateVisible = true
 | 
			
		||||
        this.addOrEditTitle = "根本原因分析"
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data);
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    buttonClick(val) {
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,8 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-01-11 09:24:58
 | 
			
		||||
 * @LastEditTime: 2023-06-05 09:10:30
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-06-30 09:37:58
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -15,12 +15,21 @@
 | 
			
		||||
        </el-badge> -->
 | 
			
		||||
      </SearchBar>
 | 
			
		||||
      <base-table :table-props="tableProps" :page="listQuery.page" :limit="listQuery.limit" :table-data="tableData">
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="120" label="操作" :method-list="tableBtn"
 | 
			
		||||
          @clickBtn="handleClick" />
 | 
			
		||||
      </base-table>
 | 
			
		||||
      <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
 | 
			
		||||
        @pagination="getDataList" />
 | 
			
		||||
      <!-- 弹窗, 新增 / 修改 -->
 | 
			
		||||
      <base-dialog
 | 
			
		||||
        :dialogTitle="addOrEditTitle"
 | 
			
		||||
        :dialogVisible="addOrUpdateVisible"
 | 
			
		||||
        @cancel="handleCancel"
 | 
			
		||||
        @confirm="handleConfirm"
 | 
			
		||||
        :before-close="handleCancel"
 | 
			
		||||
      >
 | 
			
		||||
        <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
 | 
			
		||||
      </base-dialog>
 | 
			
		||||
    </div>
 | 
			
		||||
  </el-card>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -31,7 +40,10 @@ import basicPage from "@/mixins/basic-page"
 | 
			
		||||
// import AddOrUpdate from './params-add-or-update'
 | 
			
		||||
// import transferSchemeSearch from "./components/transferSchemeSearch.vue"
 | 
			
		||||
// import available from "./components/available.vue"
 | 
			
		||||
import AddOrUpdate from './components/startEightDisciplineSummaryExperience-add.vue'
 | 
			
		||||
import basicSearch from "@/mixins/basic-search"
 | 
			
		||||
import { timeFormatter } from "@/filters/code-filter"
 | 
			
		||||
import codeFilter from '@/filters/code-filter'
 | 
			
		||||
import i18n from "@/i18n"
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
@@ -47,12 +59,14 @@ const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'eightDisciplineType',
 | 
			
		||||
    label: i18n.t("code.eightDisciplineType"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: codeFilter('eightDisciplineType'),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'occurrenceDate',
 | 
			
		||||
    label: i18n.t("code.occurrenceDate"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: timeFormatter,
 | 
			
		||||
  },
 | 
			
		||||
  // {
 | 
			
		||||
  //   prop: 'productName',
 | 
			
		||||
@@ -84,12 +98,15 @@ const tableBtn = [
 | 
			
		||||
    type: "delete",
 | 
			
		||||
    btnName: "删除",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    type: "summary",
 | 
			
		||||
    btnName: "总结",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicPage, basicSearch],
 | 
			
		||||
  components: {
 | 
			
		||||
    // transferSchemeSearch,
 | 
			
		||||
    // transferSchemeAdd
 | 
			
		||||
    AddOrUpdate,
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
@@ -102,7 +119,8 @@ export default {
 | 
			
		||||
      listQuery: {
 | 
			
		||||
        limit: 10,
 | 
			
		||||
        page: 1,
 | 
			
		||||
        eightDisciplineStatus: 8
 | 
			
		||||
        eightDisciplineStatus: 8,
 | 
			
		||||
        examineStatus: 0
 | 
			
		||||
      },
 | 
			
		||||
      searchOrEditTitle: '',
 | 
			
		||||
      searchOrUpdateVisible: false,
 | 
			
		||||
@@ -180,6 +198,12 @@ export default {
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data.id);
 | 
			
		||||
        });
 | 
			
		||||
      } else if (val.type === "summary") {
 | 
			
		||||
        this.addOrUpdateVisible = true
 | 
			
		||||
        this.addOrEditTitle = "总结与经验分享"
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data.id);
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    buttonClick(val) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-01-11 09:24:58
 | 
			
		||||
 * @LastEditTime: 2023-06-05 09:13:01
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-06-29 16:48:05
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -14,23 +14,41 @@
 | 
			
		||||
        </el-badge> -->
 | 
			
		||||
      </SearchBar>
 | 
			
		||||
      <base-table :table-props="tableProps" :page="listQuery.page" :limit="listQuery.limit" :table-data="tableData">
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="120" label="操作" :method-list="tableBtn"
 | 
			
		||||
          @clickBtn="handleClick" />
 | 
			
		||||
      </base-table>
 | 
			
		||||
      <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
 | 
			
		||||
        @pagination="getDataList" />
 | 
			
		||||
      
 | 
			
		||||
      <!-- 弹窗, 新增 / 修改 -->
 | 
			
		||||
      <base-dialog
 | 
			
		||||
        :dialogTitle="teamSetTitle"
 | 
			
		||||
        :dialogVisible="teamSetVisible"
 | 
			
		||||
        @cancel="handleCancel"
 | 
			
		||||
        @confirm="handleConfirm"
 | 
			
		||||
        :before-close="handleCancel"
 | 
			
		||||
        width=70%
 | 
			
		||||
      >
 | 
			
		||||
        <add-or-update
 | 
			
		||||
          ref="teamSet"
 | 
			
		||||
          :roleList="roleList"
 | 
			
		||||
          @refreshDataList="successSubmit"
 | 
			
		||||
        ></add-or-update>
 | 
			
		||||
      </base-dialog>
 | 
			
		||||
    </div>
 | 
			
		||||
  </el-card>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicPage from "@/mixins/basic-page"
 | 
			
		||||
import AddOrUpdate from "./components/startEightDisciplineTemporaryTreatmentMeasures-add";
 | 
			
		||||
// import samplingPlanAdd from "./components/samplingPlan-add"
 | 
			
		||||
// import AddOrUpdate from './params-add-or-update'
 | 
			
		||||
// import failureTypeSearch from "./components/failureTypeSearch"
 | 
			
		||||
// import available from "./components/available.vue"
 | 
			
		||||
import basicSearch from "@/mixins/basic-search"
 | 
			
		||||
import { timeFormatter } from "@/filters/code-filter"
 | 
			
		||||
import codeFilter from '@/filters/code-filter'
 | 
			
		||||
import i18n from "@/i18n"
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
@@ -46,12 +64,14 @@ const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'eightDisciplineType',
 | 
			
		||||
    label: i18n.t("code.eightDisciplineType"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: codeFilter('eightDisciplineType'),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'occurrenceDate',
 | 
			
		||||
    label: i18n.t("code.occurrenceDate"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: timeFormatter,
 | 
			
		||||
  },
 | 
			
		||||
  // {
 | 
			
		||||
  //   prop: 'productName',
 | 
			
		||||
@@ -83,12 +103,15 @@ const tableBtn = [
 | 
			
		||||
    type: "delete",
 | 
			
		||||
    btnName: "删除",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    type: "measure",
 | 
			
		||||
    btnName: "措施",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicPage, basicSearch],
 | 
			
		||||
  components: {
 | 
			
		||||
    // failureTypeSearch,
 | 
			
		||||
    // samplingPlanAdd
 | 
			
		||||
    AddOrUpdate,
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
@@ -96,10 +119,14 @@ export default {
 | 
			
		||||
        getDataListURL: "/code/startEightDiscipline/page",
 | 
			
		||||
        deleteURL: "/code/startEightDiscipline",
 | 
			
		||||
      },
 | 
			
		||||
      roleList: [],
 | 
			
		||||
      teamSetTitle: "",
 | 
			
		||||
      teamSetVisible: false,
 | 
			
		||||
      listQuery: {
 | 
			
		||||
        limit: 10,
 | 
			
		||||
        page: 1,
 | 
			
		||||
        eightDisciplineStatus: 3
 | 
			
		||||
        eightDisciplineStatus: 3,
 | 
			
		||||
        examineStatus: 0
 | 
			
		||||
      },
 | 
			
		||||
      tableProps,
 | 
			
		||||
      tableBtn,
 | 
			
		||||
@@ -188,7 +215,29 @@ export default {
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data.id);
 | 
			
		||||
        });
 | 
			
		||||
      } else if (val.type === "measure") {
 | 
			
		||||
        this.$http
 | 
			
		||||
          .get("/sys/user/list")
 | 
			
		||||
          .then(({ data: res }) => {
 | 
			
		||||
            if (res.code === 0) {
 | 
			
		||||
              this.roleList = res.data;
 | 
			
		||||
              this.teamSetVisible = true;
 | 
			
		||||
              this.teamSetTitle = "措施";
 | 
			
		||||
              this.$nextTick(() => {
 | 
			
		||||
                this.$refs.teamSet.init(val.data.id);
 | 
			
		||||
              });
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
          .catch(() => {});
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    handleCancel() {
 | 
			
		||||
      this.$refs.teamSet.formClear();
 | 
			
		||||
      this.teamSetVisible = false;
 | 
			
		||||
      this.teamSetTitle = "";
 | 
			
		||||
    },
 | 
			
		||||
    handleConfirm() {
 | 
			
		||||
      this.$refs.teamSet.dataFormSubmit();
 | 
			
		||||
    },
 | 
			
		||||
    buttonClick(val) {
 | 
			
		||||
      switch (val.btnName) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-01-11 09:24:58
 | 
			
		||||
 * @LastEditTime: 2023-06-05 09:09:59
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-06-30 09:31:04
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -14,12 +14,21 @@
 | 
			
		||||
        </el-badge> -->
 | 
			
		||||
      </SearchBar>
 | 
			
		||||
      <base-table :table-props="tableProps" :page="listQuery.page" :limit="listQuery.limit" :table-data="tableData">
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="100" label="操作" :method-list="tableBtn"
 | 
			
		||||
        <method-btn v-if="tableBtn.length" slot="handleBtn" :width="120" label="操作" :method-list="tableBtn"
 | 
			
		||||
          @clickBtn="handleClick" />
 | 
			
		||||
      </base-table>
 | 
			
		||||
      <pagination :limit.sync="listQuery.limit" :page.sync="listQuery.page" :total="listQuery.total"
 | 
			
		||||
        @pagination="getDataList" />
 | 
			
		||||
      <!-- 弹窗, 新增 / 修改 -->
 | 
			
		||||
      <base-dialog
 | 
			
		||||
        :dialogTitle="addOrEditTitle"
 | 
			
		||||
        :dialogVisible="addOrUpdateVisible"
 | 
			
		||||
        @cancel="handleCancel"
 | 
			
		||||
        @confirm="handleConfirm"
 | 
			
		||||
        :before-close="handleCancel"
 | 
			
		||||
      >
 | 
			
		||||
        <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
 | 
			
		||||
      </base-dialog>
 | 
			
		||||
    </div>
 | 
			
		||||
  </el-card>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -30,7 +39,10 @@ import basicPage from "@/mixins/basic-page"
 | 
			
		||||
// import AddOrUpdate from './params-add-or-update'
 | 
			
		||||
// import transferSchemeSearch from "./components/transferSchemeSearch.vue"
 | 
			
		||||
// import available from "./components/available.vue"
 | 
			
		||||
import AddOrUpdate from './components/startEightDisciplineValidation-add.vue'
 | 
			
		||||
import basicSearch from "@/mixins/basic-search"
 | 
			
		||||
import { timeFormatter } from "@/filters/code-filter"
 | 
			
		||||
import codeFilter from '@/filters/code-filter'
 | 
			
		||||
import i18n from "@/i18n"
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
@@ -46,12 +58,14 @@ const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'eightDisciplineType',
 | 
			
		||||
    label: i18n.t("code.eightDisciplineType"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: codeFilter('eightDisciplineType'),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'occurrenceDate',
 | 
			
		||||
    label: i18n.t("code.occurrenceDate"),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
    align: 'center',
 | 
			
		||||
    filter: timeFormatter,
 | 
			
		||||
  },
 | 
			
		||||
  // {
 | 
			
		||||
  //   prop: 'productName',
 | 
			
		||||
@@ -83,12 +97,15 @@ const tableBtn = [
 | 
			
		||||
    type: "delete",
 | 
			
		||||
    btnName: "删除",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    type: "validation",
 | 
			
		||||
    btnName: "验证",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicPage, basicSearch],
 | 
			
		||||
  components: {
 | 
			
		||||
    // transferSchemeSearch,
 | 
			
		||||
    // transferSchemeAdd
 | 
			
		||||
    AddOrUpdate,
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
@@ -101,7 +118,8 @@ export default {
 | 
			
		||||
      listQuery: {
 | 
			
		||||
        limit: 10,
 | 
			
		||||
        page: 1,
 | 
			
		||||
        eightDisciplineStatus: 7
 | 
			
		||||
        eightDisciplineStatus: 6,
 | 
			
		||||
        examineStatus: 0
 | 
			
		||||
      },
 | 
			
		||||
      searchOrEditTitle: '',
 | 
			
		||||
      searchOrUpdateVisible: false,
 | 
			
		||||
@@ -179,6 +197,12 @@ export default {
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data.id);
 | 
			
		||||
        });
 | 
			
		||||
      } else if (val.type === "validation") {
 | 
			
		||||
        this.addOrUpdateVisible = true
 | 
			
		||||
        this.addOrEditTitle = "有效性验证"
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs.addOrUpdate.init(val.data.id);
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    buttonClick(val) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										139
									
								
								src/views/modules/code/startEightGrade.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										139
									
								
								src/views/modules/code/startEightGrade.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,139 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <el-card shadow="never" class="aui-card--fill">
 | 
			
		||||
    <div class="mod-sys__user">
 | 
			
		||||
      <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
 | 
			
		||||
      <base-table
 | 
			
		||||
        :table-props="tableProps"
 | 
			
		||||
        :page="listQuery.page"
 | 
			
		||||
        :limit="listQuery.limit"
 | 
			
		||||
        :table-data="tableData"
 | 
			
		||||
      >
 | 
			
		||||
        <method-btn
 | 
			
		||||
          v-if="tableBtn.length"
 | 
			
		||||
          slot="handleBtn"
 | 
			
		||||
          :width="60"
 | 
			
		||||
          :label="$t('handle')"
 | 
			
		||||
          :method-list="tableBtn"
 | 
			
		||||
          @clickBtn="handleClick"
 | 
			
		||||
        />
 | 
			
		||||
      </base-table>
 | 
			
		||||
      <pagination
 | 
			
		||||
        :limit.sync="listQuery.limit"
 | 
			
		||||
        :page.sync="listQuery.page"
 | 
			
		||||
        :total="listQuery.total"
 | 
			
		||||
        @pagination="getDataList"
 | 
			
		||||
      />
 | 
			
		||||
      <!-- 弹窗, 新增 / 修改 -->
 | 
			
		||||
      <base-dialog
 | 
			
		||||
        :dialogTitle="addOrEditTitle"
 | 
			
		||||
        :dialogVisible="addOrUpdateVisible"
 | 
			
		||||
        @cancel="handleCancel"
 | 
			
		||||
        @confirm="handleConfirm"
 | 
			
		||||
        :before-close="handleCancel"
 | 
			
		||||
      >
 | 
			
		||||
        <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
 | 
			
		||||
      </base-dialog>
 | 
			
		||||
    </div>
 | 
			
		||||
  </el-card>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import AddOrUpdate from "./components/startEightGrade-add";
 | 
			
		||||
import basicPage from "@/mixins/basic-page";
 | 
			
		||||
import codeFilter from "@/filters/code-filter";
 | 
			
		||||
import { timeFormatter } from "@/filters/code-filter";
 | 
			
		||||
import i18n from "@/i18n";
 | 
			
		||||
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: "title",
 | 
			
		||||
    label: i18n.t("code.title"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "code",
 | 
			
		||||
    label: i18n.t("code.code"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "eightDisciplineType",
 | 
			
		||||
    label: i18n.t("code.eightDisciplineType"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
    filter: codeFilter("eightDisciplineType"),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "occurrenceDate",
 | 
			
		||||
    label: i18n.t("code.occurrenceDate"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
    filter: timeFormatter,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "description",
 | 
			
		||||
    label: i18n.t("code.description"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "examineStatus",
 | 
			
		||||
    label: i18n.t("code.examineStatus"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
    filter: codeFilter("examineStatus"),
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
const tableBtn = [
 | 
			
		||||
  {
 | 
			
		||||
    type: "grade",
 | 
			
		||||
    btnName: "打分",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicPage],
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
        getDataListURL: "/code/startEightDiscipline/page",
 | 
			
		||||
        deleteURL: "/code/startEightDiscipline",
 | 
			
		||||
      },
 | 
			
		||||
      tableProps,
 | 
			
		||||
      tableBtn,
 | 
			
		||||
      listQuery: {
 | 
			
		||||
        limit: 10,
 | 
			
		||||
        page: 1,
 | 
			
		||||
        total: 1,
 | 
			
		||||
        eightDisciplineStatus: 9,
 | 
			
		||||
        examineStatus: 0,
 | 
			
		||||
      },
 | 
			
		||||
      tableData: [],
 | 
			
		||||
      formConfig: [
 | 
			
		||||
        {
 | 
			
		||||
          type: "button",
 | 
			
		||||
          btnName: "搜索",
 | 
			
		||||
          name: "search",
 | 
			
		||||
          color: "primary",
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  components: {
 | 
			
		||||
    AddOrUpdate,
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    //search-bar点击
 | 
			
		||||
    buttonClick(val) {
 | 
			
		||||
      switch (val.btnName) {
 | 
			
		||||
        case "search":
 | 
			
		||||
          this.listQuery.page = 1;
 | 
			
		||||
          this.getDataList();
 | 
			
		||||
          break;
 | 
			
		||||
        default:
 | 
			
		||||
          console.log(val);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    otherMethods(val) {
 | 
			
		||||
      this.addOrEditTitle = "打分";
 | 
			
		||||
      this.addOrUpdateVisible = true;
 | 
			
		||||
      this.addOrUpdateHandle(val.data.id);
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zhp
 | 
			
		||||
 * @Date: 2023-01-11 09:24:58
 | 
			
		||||
 * @LastEditTime: 2023-06-20 15:52:27
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-06-28 15:52:07
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -42,7 +42,7 @@
 | 
			
		||||
          <el-input v-model="dataForm.sampleSize" :placeholder="$t('code.sampleSize')"></el-input>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <el-form-item>
 | 
			
		||||
          <el-button type="primary" @click="getOriginalData">{{ $t('code.originalData') }}}</el-button>
 | 
			
		||||
          <el-button type="primary" @click="getOriginalData">{{ $t('code.originalData') }}</el-button>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
      </el-form>
 | 
			
		||||
    </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,53 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-11-18 14:16:25
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2023-06-30 16:23:19
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
<el-descriptions title="">
 | 
			
		||||
    <el-descriptions-item label="标题">{{ dataInfo.title }}</el-descriptions-item>
 | 
			
		||||
    <el-descriptions-item label="产品">{{ dataInfo.productName }}</el-descriptions-item>
 | 
			
		||||
    <el-descriptions-item label="发生日期">{{ dataInfo.occurrenceDate | timeFormatter }}</el-descriptions-item>
 | 
			
		||||
    <el-descriptions-item label="配套产品/系统">{{ dataInfo.supportProducts }}</el-descriptions-item>
 | 
			
		||||
    <el-descriptions-item label="启动人">{{ dataInfo.userName }}</el-descriptions-item>
 | 
			
		||||
    <el-descriptions-item label="8D类型">{{ eightDisciplineType[dataInfo.eightDisciplineType] }}</el-descriptions-item>
 | 
			
		||||
</el-descriptions>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import codeFilter from "@/filters/code-filter";
 | 
			
		||||
import { timeFormatter } from "@/filters/code-filter";
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
        dataInfo: '',
 | 
			
		||||
    eightDisciplineType: {
 | 
			
		||||
    1: '客诉问题',
 | 
			
		||||
    2: '重大质量问题',
 | 
			
		||||
    0: '重复发生问题',
 | 
			
		||||
  },
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init(id) {
 | 
			
		||||
        console.log(codeFilter('eightDisciplineType'))
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
      this.$http
 | 
			
		||||
        .get(`/code/startEightDiscipline/${id}`)
 | 
			
		||||
        .then(({ data: res }) => {
 | 
			
		||||
          this.dataListLoading = false;
 | 
			
		||||
          if (res.code !== 0) {
 | 
			
		||||
            this.dataInfo = '';
 | 
			
		||||
            return this.$message.error(res.msg);
 | 
			
		||||
          }
 | 
			
		||||
          this.dataInfo = res.data;
 | 
			
		||||
        })
 | 
			
		||||
        .catch(() => {
 | 
			
		||||
        })
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
@@ -0,0 +1,129 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2023-01-04 10:29:40
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2023-06-30 16:24:04
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <el-tabs v-model="activeName"  type="border-card" @tab-click="handleClick">
 | 
			
		||||
    <el-tab-pane label="(D0)启动CAR" name="D0">
 | 
			
		||||
      <tabD0
 | 
			
		||||
        v-show="D0Visible"
 | 
			
		||||
        ref="D0Ref"
 | 
			
		||||
        />
 | 
			
		||||
    </el-tab-pane>
 | 
			
		||||
    <el-tab-pane label="(D1)初步分析" name="D1">
 | 
			
		||||
      <tabD1
 | 
			
		||||
        v-show="D1Visible"
 | 
			
		||||
        ref="D1Ref"
 | 
			
		||||
        />
 | 
			
		||||
    </el-tab-pane>
 | 
			
		||||
    <el-tab-pane label="(D2)创建团队" name="D2">
 | 
			
		||||
      <tabD2
 | 
			
		||||
        v-show="D2Visible"
 | 
			
		||||
        ref="D2Ref"
 | 
			
		||||
        />
 | 
			
		||||
    </el-tab-pane>
 | 
			
		||||
    <el-tab-pane label="(D3)临时处理措施" name="D3">
 | 
			
		||||
      <tabD3
 | 
			
		||||
        v-show="D3Visible"
 | 
			
		||||
        ref="D3Ref"
 | 
			
		||||
        />
 | 
			
		||||
    </el-tab-pane>
 | 
			
		||||
    <el-tab-pane label="(D4)根本原因分析" name="D4">
 | 
			
		||||
      <tabD4
 | 
			
		||||
        v-show="D4Visible"
 | 
			
		||||
        ref="D4Ref"
 | 
			
		||||
        />
 | 
			
		||||
    </el-tab-pane>
 | 
			
		||||
    <el-tab-pane label="(D5)纠正措施描述" name="D5">
 | 
			
		||||
      <tabD5
 | 
			
		||||
        v-show="D5Visible"
 | 
			
		||||
        ref="D5Ref"
 | 
			
		||||
        />
 | 
			
		||||
    </el-tab-pane>
 | 
			
		||||
    <el-tab-pane label="(D6)有效性验证" name="D6">
 | 
			
		||||
      <tabD6
 | 
			
		||||
        v-show="D6Visible"
 | 
			
		||||
        ref="D6Ref"
 | 
			
		||||
        />
 | 
			
		||||
    </el-tab-pane>
 | 
			
		||||
    <el-tab-pane label="(D7)预防再发生" name="D7">
 | 
			
		||||
      <tabD7
 | 
			
		||||
        v-show="D7Visible"
 | 
			
		||||
        ref="D7Ref"
 | 
			
		||||
        />
 | 
			
		||||
    </el-tab-pane>
 | 
			
		||||
    <el-tab-pane label="(D8)总结与经验分享" name="D8">
 | 
			
		||||
      <tabD8
 | 
			
		||||
        v-show="D8Visible"
 | 
			
		||||
        ref="D8Ref"
 | 
			
		||||
        />
 | 
			
		||||
    </el-tab-pane>
 | 
			
		||||
  </el-tabs>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import tabD0 from "./eightDisciplineList-D0"
 | 
			
		||||
import tabD1 from "./eightDisciplineList-D1"
 | 
			
		||||
import tabD2 from "./eightDisciplineList-D2"
 | 
			
		||||
import tabD3 from "./eightDisciplineList-D3"
 | 
			
		||||
import tabD4 from "./eightDisciplineList-D4"
 | 
			
		||||
import tabD5 from "./eightDisciplineList-D5"
 | 
			
		||||
import tabD6 from "./eightDisciplineList-D6"
 | 
			
		||||
import tabD7 from "./eightDisciplineList-D7"
 | 
			
		||||
import tabD8 from "./eightDisciplineList-D8"
 | 
			
		||||
export default {
 | 
			
		||||
  components: {
 | 
			
		||||
    tabD0,tabD1,tabD2,
 | 
			
		||||
    tabD3,tabD4,tabD5,
 | 
			
		||||
    tabD6,tabD7,tabD8,
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      visible: false,
 | 
			
		||||
      activeName: "D0",
 | 
			
		||||
      D0Visible: false,
 | 
			
		||||
      D1Visible: false,
 | 
			
		||||
      D2Visible: false,
 | 
			
		||||
      D3Visible: false,
 | 
			
		||||
      D4Visible: false,
 | 
			
		||||
      D5Visible: false,
 | 
			
		||||
      D6Visible: false,
 | 
			
		||||
      D7Visible: false,
 | 
			
		||||
      D8Visible: false,
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    dataRule() {
 | 
			
		||||
      return {
 | 
			
		||||
        id: ''
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init(id) {
 | 
			
		||||
      this.id = id
 | 
			
		||||
      this.visible = true;
 | 
			
		||||
      this.D0Visible = true
 | 
			
		||||
      this.oldTab = 'D0Visible'
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
          this.$refs.D0Ref.init(this.id);
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    handleClick(val) {
 | 
			
		||||
        this[this.oldTab] = false;
 | 
			
		||||
        this[val.name+'Visible'] = true;
 | 
			
		||||
        this.oldTab = val.name+'Visible'
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.$refs[val.name+'Ref'].init(this.id);
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
    dataFormSubmit() {
 | 
			
		||||
      this.$emit("refreshDataList");
 | 
			
		||||
    },
 | 
			
		||||
    formClear() {},
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
							
								
								
									
										150
									
								
								src/views/modules/managementCenter/components/searchs.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										150
									
								
								src/views/modules/managementCenter/components/searchs.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,150 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2023-01-04 10:29:40
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2023-06-30 14:53:49
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <el-form :model="dataForm" ref="dataForm" label-width="120px">
 | 
			
		||||
    <el-form-item prop="title" :label="$t('code.title')">
 | 
			
		||||
      <el-input v-model="dataForm.title" :placeholder="$t('code.title')" clearable></el-input>
 | 
			
		||||
    </el-form-item>
 | 
			
		||||
    <el-form-item prop="customId" label="客户">
 | 
			
		||||
      <el-select v-model="dataForm.customId" filterable clearable placeholder="请选择客户">
 | 
			
		||||
        <el-option
 | 
			
		||||
          v-for="item in this.urlOptions.optionArr.arr0"
 | 
			
		||||
          :key="item.id"
 | 
			
		||||
          :label="item.customerName"
 | 
			
		||||
          :value="item.id"
 | 
			
		||||
        >
 | 
			
		||||
        </el-option>
 | 
			
		||||
      </el-select>
 | 
			
		||||
    </el-form-item>
 | 
			
		||||
    <el-form-item prop="productId" label="产品">
 | 
			
		||||
      <el-select v-model="dataForm.productId" filterable clearable placeholder="请选择产品">
 | 
			
		||||
        <el-option
 | 
			
		||||
          v-for="item in this.urlOptions.optionArr.arr1"
 | 
			
		||||
          :key="item.id"
 | 
			
		||||
          :label="item.productName"
 | 
			
		||||
          :value="item.id"
 | 
			
		||||
        >
 | 
			
		||||
        </el-option>
 | 
			
		||||
      </el-select>
 | 
			
		||||
    </el-form-item>
 | 
			
		||||
    <el-form-item prop="eightDisciplineStatus" label="步骤">
 | 
			
		||||
      <el-select
 | 
			
		||||
        v-model="dataForm.eightDisciplineStatus"
 | 
			
		||||
        filterable
 | 
			
		||||
        clearable
 | 
			
		||||
        placeholder="请选择步骤"
 | 
			
		||||
      >
 | 
			
		||||
        <el-option
 | 
			
		||||
          v-for="item in eightDisciplineStatusArr"
 | 
			
		||||
          :key="item.id"
 | 
			
		||||
          :label="item.name"
 | 
			
		||||
          :value="item.id"
 | 
			
		||||
        >
 | 
			
		||||
        </el-option>
 | 
			
		||||
      </el-select>
 | 
			
		||||
    </el-form-item>
 | 
			
		||||
    <el-form-item prop="occurrenceDate" label="发生时间">
 | 
			
		||||
      <el-date-picker
 | 
			
		||||
        v-model="dataForm.occurrenceDate"
 | 
			
		||||
        type="date"
 | 
			
		||||
        :style="{ width: '100%' }"
 | 
			
		||||
        format="yyyy-MM-dd"
 | 
			
		||||
        valueFormat="yyyy-MM-ddTHH:mm:ss"
 | 
			
		||||
        placeholder="选择日期"
 | 
			
		||||
      >
 | 
			
		||||
      </el-date-picker>
 | 
			
		||||
    </el-form-item>
 | 
			
		||||
  </el-form>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicAdd from "@/mixins/basic-add";
 | 
			
		||||
 | 
			
		||||
const eightDisciplineStatusArr = [
 | 
			
		||||
  {
 | 
			
		||||
    name: "D0",
 | 
			
		||||
    id: 0,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D1",
 | 
			
		||||
    id: 1,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D2",
 | 
			
		||||
    id: 2,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D3",
 | 
			
		||||
    id: 3,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D4",
 | 
			
		||||
    id: 4,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D5",
 | 
			
		||||
    id: 5,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D6",
 | 
			
		||||
    id: 6,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D7",
 | 
			
		||||
    id: 7,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "D8",
 | 
			
		||||
    id: 8,
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicAdd],
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
        optionArrUrl: ["/basic/qmsCustomer/page", "/basic/qmsProduct/page"],
 | 
			
		||||
      },
 | 
			
		||||
      visible: false,
 | 
			
		||||
      eightDisciplineStatusArr,
 | 
			
		||||
      dataForm: {
 | 
			
		||||
        title: "",
 | 
			
		||||
        eightDisciplineStatus: "",
 | 
			
		||||
        occurrenceDate: "",
 | 
			
		||||
        customId: "",
 | 
			
		||||
        productId: "",
 | 
			
		||||
      },
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    dataRule() {
 | 
			
		||||
      return {
 | 
			
		||||
        // paramCode: [
 | 
			
		||||
        //   {
 | 
			
		||||
        //     required: true,
 | 
			
		||||
        //     message: this.$t("validate.required"),
 | 
			
		||||
        //     trigger: "blur",
 | 
			
		||||
        //   },
 | 
			
		||||
        // ],
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init() {
 | 
			
		||||
      this.visible = true;
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs["dataForm"].resetFields();
 | 
			
		||||
        this.getArr();
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    dataFormSubmit() {
 | 
			
		||||
      this.$emit("refreshDataList", this.dataForm);
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
							
								
								
									
										189
									
								
								src/views/modules/managementCenter/eightDisciplineList.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										189
									
								
								src/views/modules/managementCenter/eightDisciplineList.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,189 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <el-card shadow="never" class="aui-card--fill">
 | 
			
		||||
    <div class="mod-sys__user">
 | 
			
		||||
      <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick">
 | 
			
		||||
        <el-badge :value="5" class="item">
 | 
			
		||||
          <el-button type="primary" size="small" @click="searchsClick">条件搜索</el-button>
 | 
			
		||||
        </el-badge>
 | 
			
		||||
      </search-bar>
 | 
			
		||||
      <base-table
 | 
			
		||||
        :table-props="tableProps"
 | 
			
		||||
        :page="listQuery.page"
 | 
			
		||||
        :limit="listQuery.limit"
 | 
			
		||||
        :table-data="tableData"
 | 
			
		||||
      >
 | 
			
		||||
        <method-btn
 | 
			
		||||
          v-if="tableBtn.length"
 | 
			
		||||
          slot="handleBtn"
 | 
			
		||||
          :width="100"
 | 
			
		||||
          :label="$t('handle')"
 | 
			
		||||
          :method-list="tableBtn"
 | 
			
		||||
          @clickBtn="handleClick"
 | 
			
		||||
        />
 | 
			
		||||
      </base-table>
 | 
			
		||||
      <pagination
 | 
			
		||||
        :limit.sync="listQuery.limit"
 | 
			
		||||
        :page.sync="listQuery.page"
 | 
			
		||||
        :total="listQuery.total"
 | 
			
		||||
        @pagination="getDataList"
 | 
			
		||||
      />
 | 
			
		||||
      <!-- 弹窗, 条件搜索-->
 | 
			
		||||
      <base-dialog
 | 
			
		||||
        :dialogTitle="searchsTitle"
 | 
			
		||||
        :dialogVisible="searchsVisible"
 | 
			
		||||
        @cancel="searchsCancel"
 | 
			
		||||
        @confirm="searchsConfirm"
 | 
			
		||||
        :before-close="searchsCancel"
 | 
			
		||||
      >
 | 
			
		||||
        <searchs ref="searchsRef" @refreshDataList="searchsSubmit"></searchs>
 | 
			
		||||
      </base-dialog>
 | 
			
		||||
      <!-- 弹窗, 新增 / 修改 -->
 | 
			
		||||
      <base-dialog
 | 
			
		||||
        :dialogTitle="addOrEditTitle"
 | 
			
		||||
        :dialogVisible="addOrUpdateVisible"
 | 
			
		||||
        @cancel="handleCancel"
 | 
			
		||||
        @confirm="handleConfirm"
 | 
			
		||||
        :before-close="handleCancel"
 | 
			
		||||
        width=80%
 | 
			
		||||
      >
 | 
			
		||||
        <add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
 | 
			
		||||
      </base-dialog>
 | 
			
		||||
    </div>
 | 
			
		||||
  </el-card>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import AddOrUpdate from "./components/eightDisciplineList-detail";
 | 
			
		||||
import Searchs from "./components/searchs";
 | 
			
		||||
import basicPage from "@/mixins/basic-page";
 | 
			
		||||
import codeFilter from "@/filters/code-filter";
 | 
			
		||||
import { timeFormatter } from "@/filters/code-filter";
 | 
			
		||||
import i18n from "@/i18n";
 | 
			
		||||
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: "title",
 | 
			
		||||
    label: i18n.t("code.title"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "code",
 | 
			
		||||
    label: i18n.t("code.code"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "eightDisciplineType",
 | 
			
		||||
    label: i18n.t("code.eightDisciplineType"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
    filter: codeFilter("eightDisciplineType"),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "occurrenceDate",
 | 
			
		||||
    label: i18n.t("code.occurrenceDate"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
    filter: timeFormatter,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "description",
 | 
			
		||||
    label: i18n.t("code.description"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "examineStatus",
 | 
			
		||||
    label: i18n.t("code.examineStatus"),
 | 
			
		||||
    align: "center",
 | 
			
		||||
    filter: codeFilter("examineStatus"),
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
const tableBtn = [
 | 
			
		||||
  {
 | 
			
		||||
    type: "delete",
 | 
			
		||||
    btnName: i18n.t("delete"),
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    type: "detail",
 | 
			
		||||
    btnName: "详情",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicPage],
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
        getDataListURL: "/code/startEightDiscipline/eight/page",
 | 
			
		||||
        deleteURL: "/code/startEightDiscipline",
 | 
			
		||||
      },
 | 
			
		||||
      tableProps,
 | 
			
		||||
      tableBtn,
 | 
			
		||||
      tableData: [],
 | 
			
		||||
      formConfig: [
 | 
			
		||||
        {
 | 
			
		||||
          type: "button",
 | 
			
		||||
          btnName: "搜索",
 | 
			
		||||
          name: "search",
 | 
			
		||||
          color: "primary",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          type: "button",
 | 
			
		||||
          btnName: i18n.t("export"),
 | 
			
		||||
          name: "export",
 | 
			
		||||
          color: "primary",
 | 
			
		||||
          plain: true,
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  components: {
 | 
			
		||||
    AddOrUpdate,
 | 
			
		||||
    Searchs,
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    // 获取数据列表
 | 
			
		||||
    getDataList() {
 | 
			
		||||
      this.dataListLoading = true;
 | 
			
		||||
      this.$http
 | 
			
		||||
        .post(this.urlOptions.getDataListURL, this.listQuery)
 | 
			
		||||
        .then(({ data: res }) => {
 | 
			
		||||
          this.dataListLoading = false;
 | 
			
		||||
          if (res.code !== 0) {
 | 
			
		||||
            this.tableData = [];
 | 
			
		||||
            this.listQuery.total = 0;
 | 
			
		||||
            return this.$message.error(res.msg);
 | 
			
		||||
          }
 | 
			
		||||
          this.tableData = res.data.list;
 | 
			
		||||
          this.listQuery.total = res.data.total;
 | 
			
		||||
        })
 | 
			
		||||
        .catch(() => {
 | 
			
		||||
          this.dataListLoading = false;
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
    //search-bar点击
 | 
			
		||||
    searchsClick() {
 | 
			
		||||
      this.searchsTitle = "条件搜索";
 | 
			
		||||
      this.searchsHandle();
 | 
			
		||||
    },
 | 
			
		||||
    buttonClick(val) {
 | 
			
		||||
      switch (val.btnName) {
 | 
			
		||||
        case "search":
 | 
			
		||||
          this.listQuery = {};
 | 
			
		||||
          this.listQuery.page = 1;
 | 
			
		||||
          this.listQuery.limit = 10;
 | 
			
		||||
          this.listQuery.total = 1;
 | 
			
		||||
          this.getDataList();
 | 
			
		||||
          break;
 | 
			
		||||
        case "export":
 | 
			
		||||
          this.exportHandle("工厂管理");
 | 
			
		||||
          break;
 | 
			
		||||
        default:
 | 
			
		||||
          console.log(val);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    otherMethods(val) {
 | 
			
		||||
      this.addOrEditTitle = "详情";
 | 
			
		||||
      this.addOrUpdateVisible = true;
 | 
			
		||||
      this.addOrUpdateHandle(val.data.id);
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
@@ -1,76 +0,0 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-11-18 14:16:25
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2023-01-05 10:54:13
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
    <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
 | 
			
		||||
      <el-form-item label="编码" prop="code">
 | 
			
		||||
        <el-input v-model="dataForm.code" placeholder="编码"></el-input>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
      <el-form-item label="名称" prop="name">
 | 
			
		||||
        <el-input v-model="dataForm.name" placeholder="名称"></el-input>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
      <el-form-item label="单位分类" prop="type">
 | 
			
		||||
        <el-select
 | 
			
		||||
          v-model="dataForm.type"
 | 
			
		||||
          filterable
 | 
			
		||||
          placeholder="请选择单位分类"
 | 
			
		||||
        >
 | 
			
		||||
          <el-option
 | 
			
		||||
            v-for="item in typeArr"
 | 
			
		||||
            :key="item.value"
 | 
			
		||||
            :label="item.name"
 | 
			
		||||
            :value="item.value"
 | 
			
		||||
          >
 | 
			
		||||
          </el-option>
 | 
			
		||||
        </el-select>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
    </el-form>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicAdd from '@/mixins/basic-add'
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicAdd],
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
          submitURL: '/basic/unit/',
 | 
			
		||||
          infoURL: '/basic/unit'
 | 
			
		||||
      },
 | 
			
		||||
        dataForm: {
 | 
			
		||||
          id: '',
 | 
			
		||||
          code: '',
 | 
			
		||||
          name: '',
 | 
			
		||||
          type: ''
 | 
			
		||||
        },
 | 
			
		||||
        typeArr: [
 | 
			
		||||
          {
 | 
			
		||||
            name: '不可计数',
 | 
			
		||||
            value: 2
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            name: '可计数',
 | 
			
		||||
            value: 1
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        dataRule: {
 | 
			
		||||
          code: [
 | 
			
		||||
            { required: true, message: '编码不能为空', trigger: 'blur' }
 | 
			
		||||
          ],
 | 
			
		||||
          name: [
 | 
			
		||||
            { required: true, message: '名称不能为空', trigger: 'blur' }
 | 
			
		||||
          ],
 | 
			
		||||
          type: [
 | 
			
		||||
            { required: true, message: '单位分类不能为空', trigger: 'change' }
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
</script>
 | 
			
		||||
@@ -1,177 +0,0 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2023-01-04 10:29:40
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2023-01-06 09:54:57
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <el-card shadow="never" class="aui-card--fill">
 | 
			
		||||
    <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
 | 
			
		||||
    <base-table
 | 
			
		||||
      :table-props="tableProps"
 | 
			
		||||
      :page="listQuery.page"
 | 
			
		||||
      :limit="listQuery.limit"
 | 
			
		||||
      :table-data="tableData"
 | 
			
		||||
    >
 | 
			
		||||
      <method-btn
 | 
			
		||||
        v-if="tableBtn.length"
 | 
			
		||||
        slot="handleBtn"
 | 
			
		||||
        :width="100"
 | 
			
		||||
        label="操作"
 | 
			
		||||
        :method-list="tableBtn"
 | 
			
		||||
        @clickBtn="handleClick"
 | 
			
		||||
      />
 | 
			
		||||
    </base-table>
 | 
			
		||||
    <pagination
 | 
			
		||||
      :limit.sync="listQuery.limit"
 | 
			
		||||
      :page.sync="listQuery.page"
 | 
			
		||||
      :total="listQuery.total"
 | 
			
		||||
      @pagination="getDataList"
 | 
			
		||||
    />
 | 
			
		||||
    <!-- 弹窗, 新增 / 修改 -->
 | 
			
		||||
    <base-dialog
 | 
			
		||||
      :dialogTitle="addOrEditTitle"
 | 
			
		||||
      :dialogVisible="addOrUpdateVisible"
 | 
			
		||||
      @cancel="handleCancel"
 | 
			
		||||
      @confirm="handleConfirm"
 | 
			
		||||
      :before-close="handleCancel"
 | 
			
		||||
    >
 | 
			
		||||
      <add-or-update ref="addOrUpdate" @successSubmit="successSubmit" />
 | 
			
		||||
    </base-dialog>
 | 
			
		||||
  </el-card>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import AddOrUpdate from "./components/unitList-add";
 | 
			
		||||
import basicPage from "@/mixins/basic-page";
 | 
			
		||||
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: "date",
 | 
			
		||||
    label: "日期",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "name",
 | 
			
		||||
    label: "姓名",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "sex",
 | 
			
		||||
    label: "性别",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "age",
 | 
			
		||||
    label: "年龄",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: "address",
 | 
			
		||||
    label: "地址",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
const tableBtn = [
 | 
			
		||||
  {
 | 
			
		||||
    type: "edit",
 | 
			
		||||
    btnName: "编辑",
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    type: "delete",
 | 
			
		||||
    btnName: "删除",
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
export default {
 | 
			
		||||
  mixins: [basicPage],
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      urlOptions: {
 | 
			
		||||
        getDataListURL: "/basic/unit/page",
 | 
			
		||||
        deleteURL: "/basic/unit",
 | 
			
		||||
        statusUrl: "/basic/unit/status",
 | 
			
		||||
        exportUrl: "/basic/unit/export",
 | 
			
		||||
      },
 | 
			
		||||
      tableProps,
 | 
			
		||||
      tableBtn,
 | 
			
		||||
      tableData: [
 | 
			
		||||
        {
 | 
			
		||||
          date: "2016-05-02",
 | 
			
		||||
          name: "王小虎",
 | 
			
		||||
          sex: "男",
 | 
			
		||||
          id:111,
 | 
			
		||||
          age: 18,
 | 
			
		||||
          address: "上海市普陀区金沙江路 1518 弄",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          date: "2016-05-04",
 | 
			
		||||
          name: "王小虎",
 | 
			
		||||
          sex: "男",
 | 
			
		||||
          age: 18,
 | 
			
		||||
          address: "上海市普陀区金沙江路 1517 弄",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          date: "2016-05-01",
 | 
			
		||||
          name: "王小虎",
 | 
			
		||||
          sex: "男",
 | 
			
		||||
          age: 18,
 | 
			
		||||
          address: "上海市普陀区金沙江路 1519 弄",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          date: "2016-05-03",
 | 
			
		||||
          name: "王小虎",
 | 
			
		||||
          sex: "男",
 | 
			
		||||
          age: 18,
 | 
			
		||||
          address: "上海市普陀区金沙江路 1516 弄",
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
      formConfig: [
 | 
			
		||||
        {
 | 
			
		||||
          type: "input",
 | 
			
		||||
          label: "名称",
 | 
			
		||||
          placeholder: "请输入名称",
 | 
			
		||||
          param: "xm1",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          type: "input",
 | 
			
		||||
          label: "编码",
 | 
			
		||||
          placeholder: "请输入编码",
 | 
			
		||||
          param: "xm2",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          type: "button",
 | 
			
		||||
          btnName: "查询",
 | 
			
		||||
          name: "search",
 | 
			
		||||
          color: "primary",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          type: "button",
 | 
			
		||||
          btnName: "新增",
 | 
			
		||||
          name: "add",
 | 
			
		||||
          color: "primary",
 | 
			
		||||
          plain: true,
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  components: {
 | 
			
		||||
    AddOrUpdate,
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    //search-bar点击
 | 
			
		||||
    buttonClick(val) {
 | 
			
		||||
      switch (val.btnName) {
 | 
			
		||||
        case "search":
 | 
			
		||||
          this.listQuery.xm1 = val.xm1;
 | 
			
		||||
          this.listQuery.xm2 = val.xm2;
 | 
			
		||||
          this.listQuery.page = 1;
 | 
			
		||||
          this.getDataList();
 | 
			
		||||
          break;
 | 
			
		||||
        case "add":
 | 
			
		||||
          this.addOrEditTitle = '新增'
 | 
			
		||||
          this.addOrUpdateVisible = true;
 | 
			
		||||
          this.addOrUpdateHandle()
 | 
			
		||||
          break;
 | 
			
		||||
        default:
 | 
			
		||||
          console.log(val)
 | 
			
		||||
       }
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
		Reference in New Issue
	
	Block a user