| | |
| | | :prelang="prelang" |
| | | :options="options" |
| | | :ajaxFun="ajaxFun" |
| | | @queryParam="getQueryParam($event)" |
| | | ref="processconfiguration" |
| | | > |
| | | <template #toolbar></template> |
| | |
| | | ref="addOrUpdate" |
| | | @refreshDataList="getData" |
| | | ></table-form> |
| | | <table></table> |
| | | </basic-container> |
| | | <div> |
| | | <el-dialog title="最终处置意见" :visible.sync="dialogVisible" width="30%"> |
| | | <el-form label-width="120px"> |
| | | <div v-if="type === '原材料检验'"> |
| | | <!-- <el-form-item label="最终处置意见:"> |
| | | <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="WayIdea" /> |
| | | </el-form-item> --> |
| | | <el-radio-group v-model="checkList"> |
| | | <el-radio label="返修">返修</el-radio> |
| | | <el-radio label="换货">换货</el-radio> |
| | | <el-radio label="退货">退货</el-radio> |
| | | <el-radio label="让步接收">让步接收</el-radio> |
| | | <el-radio label="接收">接收</el-radio> |
| | | </el-radio-group> |
| | | </div> |
| | | <div v-if="type === '产品检验' "> |
| | | <el-radio-group v-model="checkList"> |
| | | <el-radio label="返修">返修</el-radio> |
| | | <el-radio label="接收">接收</el-radio> |
| | | <el-radio label="降级使用">降级使用</el-radio> |
| | | <el-radio label="报废">报废</el-radio> |
| | | <el-radio label="降为他用">降为他用</el-radio> |
| | | </el-radio-group> |
| | | </div> |
| | | <div v-if="type === '过程检验'"> |
| | | <el-radio-group v-model="checkList"> |
| | | <el-row> |
| | | <div style="padding: 20px;"> |
| | | <el-radio label="返修">返修</el-radio> |
| | | <el-radio label="接收">接收</el-radio> |
| | | <el-radio label="降级使用">降级使用</el-radio> |
| | | <el-radio label="报废">报废</el-radio> |
| | | </div> |
| | | <div style="padding: 20px;"> |
| | | <el-radio label="返工">返工</el-radio> |
| | | <el-radio label="降为他用">降为他用</el-radio> |
| | | </div> |
| | | </el-row> |
| | | </el-radio-group> |
| | | </div> |
| | | </el-form> |
| | | <span slot="footer" > |
| | | <el-button @click="WayCancel()">取 消</el-button> |
| | | <el-button type="primary" @click="WaySure()">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getqualityUnqualifiedConfiguration, |
| | | delqualityUnqualifiedConfiguration |
| | | import { |
| | | UnqualifiedList, |
| | | pullInsUnapi, |
| | | AuditSuggestion, |
| | | exportData |
| | | } from '@/api/quality/unqualifiedprocess' |
| | | import TableForm from './table-form' |
| | | import { mapGetters } from 'vuex' |
| | | import { remote } from '@/api/admin/dict' |
| | | // import { remote } from '@/api/admin/dict' |
| | | import { transform } from '@/util/fileTransform' |
| | | import ttable from '@/views/common/ztt-table.vue' |
| | | export default { |
| | | data() { |
| | | return { |
| | | ajaxFun: getqualityUnqualifiedConfiguration, |
| | | queryParam: {}, |
| | | checkList: "", |
| | | // WayIdea:'', |
| | | UserId:{}, |
| | | type:'', |
| | | ajaxFun: UnqualifiedList,pullInsUnapi,AuditSuggestion, |
| | | addOrUpdateVisible: false, |
| | | multipleSelection: [], |
| | | typeOptions: [], |
| | |
| | | isShow: false, |
| | | url: '' |
| | | }, |
| | | dialogVisible: false, |
| | | prelang: 'operation', |
| | | options: { |
| | | height: 300, // 默认高度-为了表头固定 |
| | |
| | | multiSelect: true, // |
| | | seqNo: true, |
| | | isShowHide: true, // 是否显示显影按钮 |
| | | isSearch: false, // 高级查询按钮 |
| | | isRefresh: true, // 是否显示刷新按钮 |
| | | isSearch: true, // 高级查询按钮 |
| | | defaultOrderBy: { column: 'createTime', direction: 'desc' } |
| | | }, |
| | | table: { |
| | |
| | | data: [], |
| | | // 标题 |
| | | column: [ |
| | | // 编号 |
| | | // 产品大类 |
| | | { |
| | | minWidth: '140', |
| | | prop: 'workShop', |
| | | label: '车间', |
| | | sort: true, |
| | | prop: 'type', |
| | | label: '检验类型', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'select', |
| | | formatter: this.materialTypeList, |
| | | optList: () => { |
| | | return this.materialType |
| | | // render: { fun: this.addOrUpdateHandle } |
| | | } |
| | | }, |
| | | // 产品名称 |
| | | { |
| | | minWidth: '140', |
| | | prop: 'material', |
| | | label: '产品名称', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | render: { fun: this.addOrUpdateHandle } |
| | | }, |
| | | // 产品类型 |
| | | { |
| | | minWidth: '120', |
| | | prop: 'type', |
| | | label: '产品类型', |
| | | sort: true, |
| | | // 规格型号 |
| | | { |
| | | minWidth: '140', |
| | | prop: 'specs', |
| | | label: '规格型号', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'select', |
| | | formatter: this.formatType, |
| | | optList: () => { |
| | | return this.typeOptions |
| | | } |
| | | searchInfoType: 'text', |
| | | }, |
| | | // 处理方式 |
| | | { |
| | | minWidth: '200', |
| | | prop: 'processMode', |
| | | label: '处理方式', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'select', |
| | | formatter: this.formatProcessMode, |
| | | optList: () => { |
| | | return this.processModeOptions |
| | | } |
| | | }, |
| | | // 发起人 |
| | | // { |
| | | // minWidth: '200', |
| | | // prop: 'originator', |
| | | // label: '发起人', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'text' |
| | | // }, |
| | | // 审核人 |
| | | { |
| | | minWidth: '140', |
| | | prop: 'examiner', |
| | | label: '审核人', |
| | | sort: true, |
| | | prop: 'materialCode', |
| | | label: '零件号', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | searchInfoType: 'text', |
| | | }, |
| | | // 处理人 |
| | | { |
| | | minWidth: '120', |
| | | prop: 'handler', |
| | | label: '处理人', |
| | | sort: true, |
| | | // 不合格品数量 |
| | | { |
| | | minWidth: '140', |
| | | prop: 'number', |
| | | label: '不合格品数量', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | } |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '140', |
| | | prop: 'reason', |
| | | label: '现象描述', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | // 处理意见 |
| | | { |
| | | minWidth: '140', |
| | | prop: 'way', |
| | | label: '处理意见', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'faultyMaterials', |
| | | label: '是否瑕疵', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'select', |
| | | formatter: this.flaw, |
| | | optList: () => { |
| | | return this.insStateList |
| | | } |
| | | }, |
| | | // 申请人 |
| | | { |
| | | minWidth: '140', |
| | | prop: 'createUser', |
| | | label: '申请人', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | // 日期 |
| | | { |
| | | minWidth: '130', |
| | | width: '150', |
| | | prop: 'dealTime', |
| | | label: '审核时间', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'datetimerange', |
| | | formatter: this.formatDateTime, |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'state', |
| | | label: '状态', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'select', |
| | | formatter: this.formatInsState, |
| | | optList: () => { |
| | | return this.StateList |
| | | } |
| | | }, |
| | | // { |
| | | // minWidth: '120', |
| | | // prop: '', |
| | | // label: '产品名称', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'select', |
| | | // formatter: this.formatType, |
| | | // optList: () => { |
| | | // return this.typeOptions |
| | | // } |
| | | // }, |
| | | // 处理方式 |
| | | // { |
| | | // minWidth: '200', |
| | | // prop: 'processMode', |
| | | // label: '处理方式', |
| | | // sort: true, |
| | | // isTrue: true, |
| | | // isSearch: true, |
| | | // searchInfoType: 'select', |
| | | // formatter: this.formatProcessMode, |
| | | // optList: () => { |
| | | // return this.processModeOptions |
| | | // } |
| | | // }, |
| | | |
| | | ], |
| | | toolbar: [ |
| | | { |
| | | text: '新增', |
| | | type: 'primary', |
| | | fun: this.addOrUpdateHandle |
| | | } |
| | | // { |
| | | // text: '导出', |
| | | // type: 'primary', |
| | | // fun: this.handleExport |
| | | // }, |
| | | ], |
| | | operator: [ |
| | | // { |
| | | // text: '删除', |
| | | // type: 'text', |
| | | // size: 'small', |
| | | // fun: this.deleteHandle |
| | | // }, |
| | | { |
| | | text: '删除', |
| | | text: '提交审核', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.deleteHandle |
| | | fun: this.Submitreview |
| | | }, |
| | | { |
| | | text: '审核结果', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.AuditResult |
| | | } |
| | | ], |
| | | operatorConfig: { |
| | | fixed: 'right', |
| | | label: '操作', |
| | | width: 100, |
| | | width: 150, |
| | | minWidth: 100 |
| | | } |
| | | } |
| | | }, |
| | | materialType: [{label:'原材料检验',value:'原材料检验'},{label:'过程检验',value:'过程检验'},{label:'产品检验',value:'产品检验'},{label:'包装检验',value:'包装检验'}], |
| | | StateList: [{label:'全部',value:''},{label:'已提交审核',value:'1'},{label:'待处理',value:'0'},{label:'已处理',value:'2'}], |
| | | insStateList: [{label:'其他',value:''},{label:'瑕疵',value:'1'}], |
| | | } |
| | | }, |
| | | components: { |
| | | ttable, |
| | | TableForm, |
| | | ttable |
| | | }, |
| | | computed: { |
| | | ...mapGetters(['permissions']) |
| | | |
| | | }, |
| | | created() { |
| | | this.getType() |
| | | // this.getType() |
| | | }, |
| | | methods: { |
| | | getQueryParam(data){ |
| | | this.queryParam = data |
| | | }, |
| | | handleExport(){ |
| | | exportData(this.queryParam).then(res=>{ |
| | | this.downloadFun(res) |
| | | }).catch(error=>{ |
| | | console.log(error); |
| | | }) |
| | | }, |
| | | downloadFun(result){ |
| | | if(result == null || result == undefined){ |
| | | return; |
| | | } |
| | | var nameList = result.headers['content-disposition']; |
| | | nameList = decodeURI(nameList); |
| | | var fileName = nameList.split('=')[1]; |
| | | const blob = new Blob([result.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }) |
| | | const downloadElement = document.createElement('a') // 新建一个DOM节点 |
| | | const href = window.URL.createObjectURL(blob) // 创建下载的链接 |
| | | downloadElement.href = href |
| | | downloadElement.download = fileName // 下载后文件名 |
| | | document.body.appendChild(downloadElement) // 将新增的节点挂载到页面上 |
| | | downloadElement.click() // 点击下载 |
| | | document.body.removeChild(downloadElement) // 下载完成移除元素 |
| | | window.URL.revokeObjectURL(href) |
| | | }, |
| | | //审核结果 |
| | | AuditResult(row){ |
| | | this.UserId = row.id |
| | | this.type = row.type |
| | | this.dialogVisible = true; |
| | | |
| | | }, |
| | | WayCancel(){ |
| | | this.dialogVisible = false |
| | | this.checkList = null |
| | | this.WayIdea = null |
| | | }, |
| | | WaySure(){ |
| | | AuditSuggestion({id:this.UserId,way:this.checkList}).then( |
| | | res =>{ |
| | | this.checkList = null |
| | | this.WayIdea = null |
| | | this.$refs.processconfiguration.refreshData() |
| | | ;}) |
| | | this.dialogVisible = false |
| | | }, |
| | | //提交审核 |
| | | Submitreview(row){ |
| | | pullInsUnapi({id:row.id}).then(res =>{ |
| | | this.$refs.processconfiguration.refreshData() |
| | | }) |
| | | }, |
| | | |
| | | //状态 |
| | | formatInsState(row, column, cellValue){ |
| | | if(cellValue != undefined || cellValue != null){ |
| | | if(cellValue == 0){ |
| | | return "<span style='color:#E84738;'>待处理</span>" |
| | | } |
| | | if(cellValue == 1){ |
| | | return "<span style='color:#34BD66;'>已提交审核</span>" |
| | | } |
| | | if(cellValue == 2){ |
| | | return "<span style='color:#34BD66;'>已处理</span>" |
| | | } |
| | | } |
| | | }, |
| | | flaw(row, column, cellValue){ |
| | | if(cellValue != undefined || cellValue != null){ |
| | | if(cellValue == 1){ |
| | | return "<span style='color:#E84738;'>瑕疵品</span>" |
| | | } |
| | | return "<span style='color:#34BD66;'></span>" |
| | | } |
| | | }, |
| | | // 获取数据列表 |
| | | getData() { |
| | | this.$refs.processconfiguration.getDataList() |
| | | // this.$refs.processconfiguration.getDataList() |
| | | }, |
| | | handleSelectionChange(val) { |
| | | // 多行选中 |
| | |
| | | }) |
| | | return cellValue |
| | | }, |
| | | getType() { |
| | | remote('unqualified_handle_type').then((response) => { |
| | | if (response.data.code === 0) { |
| | | this.typeOptions = response.data.data |
| | | } |
| | | }) |
| | | remote('unqualified_process_mode').then((response) => { |
| | | if (response.data.code === 0) { |
| | | this.processModeOptions = response.data.data |
| | | } |
| | | }) |
| | | }, |
| | | // getType() { |
| | | // remote('unqualified_handle_type').then((response) => { |
| | | // if (response.data.code === 0) { |
| | | // this.typeOptions = response.data.data |
| | | // } |
| | | // }) |
| | | // remote('unqualified_process_mode').then((response) => { |
| | | // if (response.data.code === 0) { |
| | | // this.processModeOptions = response.data.data |
| | | // } |
| | | // }) |
| | | // }, |
| | | // 删除 |
| | | deleteHandle(row) { |
| | | this.$confirm('是否确认删除车间为:' + row.workShop, '提示', { |