| | |
| | | export function exportChecked(query) { |
| | | return request({ |
| | | url: '/insOrder/exportChecked', |
| | | method: 'get', |
| | | method: 'post', |
| | | data: query, |
| | | responseType:'blob' |
| | | }) |
| | |
| | | |
| | | .bg-1 { |
| | | width: 100%; |
| | | height: calc(100% - 50px); |
| | | min-height: calc(100vh - 90px); |
| | | overflow-y: auto; |
| | | padding: 20px 10px 10px; |
| | | // padding: 20px 10px 10px; |
| | | background: rgb(245, 247, 251); |
| | | } |
| | |
| | | <template> |
| | | <div> |
| | | <!-- 表格 --> |
| | | <el-table ref="multipleTable" v-loading="tableLoading" :border="border" :data="tableData" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" :height="height" |
| | | :highlight-current-row="highlightCurrentRow" :row-class-name="rowClassName" :row-style="rowStyle" |
| | | :row-key="rowKey" :span-method="spanMethod" stripe style="width: 100%" tooltip-effect="dark" @row-click="rowClick" |
| | | @current-change="currentChange" @selection-change="handleSelectionChange" class="lims-table"> |
| | | <el-table-column align="center" type="selection" width="55" v-if="isSelection" /> |
| | | <el-table-column align="center" label="序号" type="index" width="60" :index="indexMethod" /> |
| | | <el-table |
| | | ref="multipleTable" |
| | | v-loading="tableLoading" |
| | | :border="border" |
| | | :data="tableData" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" |
| | | :height="height" |
| | | :highlight-current-row="highlightCurrentRow" |
| | | :row-class-name="rowClassName" |
| | | :row-style="rowStyle" |
| | | :row-key="rowKey" |
| | | :span-method="spanMethod" |
| | | stripe |
| | | style="width: 100%" |
| | | tooltip-effect="dark" |
| | | @row-click="rowClick" |
| | | @current-change="currentChange" |
| | | @selection-change="handleSelectionChange" |
| | | class="lims-table" |
| | | > |
| | | <el-table-column |
| | | align="center" |
| | | type="selection" |
| | | width="55" |
| | | v-if="isSelection" |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | label="序号" |
| | | type="index" |
| | | width="60" |
| | | :index="indexMethod" |
| | | /> |
| | | |
| | | <el-table-column v-for="(item, index) in column" :key="index" :column-key="item.columnKey" |
| | | :filter-method="item.filterHandler" :filter-multiple="item.filterMultiple" :filtered-value="item.filteredValue" |
| | | :filters="item.filters" :fixed="item.fixed" :label="item.label" :min-width="item.minWidth" :prop="item.prop" |
| | | :show-overflow-tooltip="item.dataType === 'action' || item.dataType === 'slot' ? false : true" |
| | | :sortable="item.sortable ? true : false" :type="item.type" |
| | | :width="item.dataType === 'action' ? getWidth(item.operation) : item.width" align="center"> |
| | | <el-table-column |
| | | v-for="(item, index) in column" |
| | | :key="index" |
| | | :column-key="item.columnKey" |
| | | :filter-method="item.filterHandler" |
| | | :filter-multiple="item.filterMultiple" |
| | | :filtered-value="item.filteredValue" |
| | | :filters="item.filters" |
| | | :fixed="item.fixed" |
| | | :label="item.label" |
| | | :min-width="item.minWidth" |
| | | :prop="item.prop" |
| | | :show-overflow-tooltip=" |
| | | item.dataType === 'action' || item.dataType === 'slot' ? false : true |
| | | " |
| | | :sortable="item.sortable ? true : false" |
| | | :type="item.type" |
| | | :width=" |
| | | item.dataType === 'action' ? getWidth(item.operation) : item.width |
| | | " |
| | | align="center" |
| | | > |
| | | <!-- <div class="123" v-if="item.type == ''"> --> |
| | | <template v-if="item.hasOwnProperty('colunmTemplate')" :slot="item.colunmTemplate" slot-scope="scope"> |
| | | <slot v-if="item.theadSlot" :index="index" :name="item.theadSlot" :row="scope.row" /> |
| | | <template |
| | | v-if="item.hasOwnProperty('colunmTemplate')" |
| | | :slot="item.colunmTemplate" |
| | | slot-scope="scope" |
| | | > |
| | | <slot |
| | | v-if="item.theadSlot" |
| | | :index="index" |
| | | :name="item.theadSlot" |
| | | :row="scope.row" |
| | | /> |
| | | </template> |
| | | |
| | | <template slot-scope="scope"> |
| | | <!-- 插槽 --> |
| | | <div v-if="item.dataType == 'slot'"> |
| | | <slot v-if="item.slot" :index="scope.$index" :name="item.slot" :row="scope.row" /> |
| | | <slot |
| | | v-if="item.slot" |
| | | :index="scope.$index" |
| | | :name="item.slot" |
| | | :row="scope.row" |
| | | /> |
| | | </div> |
| | | <!-- 进度条 --> |
| | | <div v-else-if="item.dataType == 'progress'"> |
| | |
| | | </div> |
| | | <!-- 图片 --> |
| | | <div v-else-if="item.dataType == 'image'"> |
| | | <img :src="javaApi + '/img/' + scope.row[item.prop]" alt="" |
| | | style="width: 40px; height: 40px; margin-top: 10px" /> |
| | | <img |
| | | :src="javaApi + '/img/' + scope.row[item.prop]" |
| | | alt="" |
| | | style="width: 40px; height: 40px; margin-top: 10px" |
| | | /> |
| | | </div> |
| | | |
| | | <!-- tag --> |
| | | <div v-else-if="item.dataType == 'tag'"> |
| | | <el-tag v-if=" |
| | | typeof dataTypeFn(scope.row[item.prop], item.formatData) == |
| | | 'string' |
| | | " :title="scope.row[item.prop] | formatters(item.formatData)" |
| | | :type="formatType(scope.row[item.prop], item.formatType)">{{ scope.row[item.prop] | |
| | | formatters(item.formatData) }}</el-tag> |
| | | <el-tag v-for="(tag, index) in dataTypeFn( |
| | | scope.row[item.prop], |
| | | item.formatData |
| | | )" v-else-if=" |
| | | typeof dataTypeFn(scope.row[item.prop], item.formatData) == |
| | | 'object' |
| | | " :key="index" :title="scope.row[item.prop] | formatters(item.formatData)" |
| | | :type="formatType(tag, item.formatType)">{{ |
| | | <el-tag |
| | | v-if=" |
| | | typeof dataTypeFn(scope.row[item.prop], item.formatData) == |
| | | 'string' |
| | | " |
| | | :title="scope.row[item.prop] | formatters(item.formatData)" |
| | | :type="formatType(scope.row[item.prop], item.formatType)" |
| | | >{{ scope.row[item.prop] | formatters(item.formatData) }}</el-tag |
| | | > |
| | | <el-tag |
| | | v-for="(tag, index) in dataTypeFn( |
| | | scope.row[item.prop], |
| | | item.formatData |
| | | )" |
| | | v-else-if=" |
| | | typeof dataTypeFn(scope.row[item.prop], item.formatData) == |
| | | 'object' |
| | | " |
| | | :key="index" |
| | | :title="scope.row[item.prop] | formatters(item.formatData)" |
| | | :type="formatType(tag, item.formatType)" |
| | | >{{ |
| | | item.tagGroup |
| | | ? tag[item.tagGroup.label] |
| | | ? tag[item.tagGroup.label] |
| | | : tag |
| | | : tag |
| | | }}</el-tag> |
| | | <el-tag v-else :title="scope.row[item.prop] | formatters(item.formatData)" |
| | | :type="formatType(scope.row[item.prop], item.formatType)">{{ scope.row[item.prop] | |
| | | formatters(item.formatData) }}</el-tag> |
| | | }}</el-tag |
| | | > |
| | | <el-tag |
| | | v-else |
| | | :title="scope.row[item.prop] | formatters(item.formatData)" |
| | | :type="formatType(scope.row[item.prop], item.formatType)" |
| | | >{{ scope.row[item.prop] | formatters(item.formatData) }}</el-tag |
| | | > |
| | | </div> |
| | | |
| | | <!-- 按钮 --> |
| | | <div v-else-if="item.dataType == 'action'"> |
| | | <template v-for="(o, key) in item.operation"> |
| | | <el-button v-show="o.type != 'upload'" size="mini" v-if="o.showHide ? o.showHide(scope.row) : true" |
| | | :disabled="o.disabled ? o.disabled(scope.row) : false" :icon="iconFn(o)" :plain="o.plain" |
| | | :style="{ color: o.name === '删除' ? '#f56c6c' : o.color }" :type="o.type | typeFn(scope.row)" |
| | | @click="o.clickFun(scope.row)" :key="key"> |
| | | <el-button |
| | | v-show="o.type != 'upload'" |
| | | size="mini" |
| | | v-if="o.showHide ? o.showHide(scope.row) : true" |
| | | :disabled="o.disabled ? o.disabled(scope.row) : false" |
| | | :icon="iconFn(o)" |
| | | :plain="o.plain" |
| | | :style="{ color: o.name === '删除' ? '#f56c6c' : o.color }" |
| | | :type="o.type | typeFn(scope.row)" |
| | | @click="o.clickFun(scope.row)" |
| | | :key="key" |
| | | > |
| | | {{ o.name }} |
| | | </el-button> |
| | | <el-upload :action="javaApi + o.url + '?id=' + (o.uploadIdFun ? o.uploadIdFun(scope.row) : scope.row.id)" |
| | | size="mini" ref="upload" :multiple="o.multiple ? o.multiple : false" :limit="1" |
| | | :disabled="o.disabled ? o.disabled(scope.row) : false" :accept="o.accept |
| | | ? o.accept |
| | | : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' |
| | | " v-if="o.type == 'upload' && o.url" style="display: inline-block; width: 50px" |
| | | v-show="o.showHide ? o.showHide(scope.row) : true" :headers="uploadHeader" :on-error="onError" |
| | | :on-exceed="onExceed" :on-success="handleSuccessUp" :show-file-list="false" :key="key"> |
| | | <el-button :size="o.size ? o.size : 'small'" type="text" |
| | | :disabled="o.disabled ? o.disabled(scope.row) : false">{{ o.name }}</el-button> |
| | | <el-upload |
| | | :action=" |
| | | javaApi + |
| | | o.url + |
| | | '?id=' + |
| | | (o.uploadIdFun ? o.uploadIdFun(scope.row) : scope.row.id) |
| | | " |
| | | size="mini" |
| | | ref="upload" |
| | | :multiple="o.multiple ? o.multiple : false" |
| | | :limit="1" |
| | | :disabled="o.disabled ? o.disabled(scope.row) : false" |
| | | :accept=" |
| | | o.accept |
| | | ? o.accept |
| | | : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' |
| | | " |
| | | v-if="o.type == 'upload' && o.url" |
| | | style="display: inline-block; width: 50px" |
| | | v-show="o.showHide ? o.showHide(scope.row) : true" |
| | | :headers="uploadHeader" |
| | | :on-error="onError" |
| | | :on-exceed="onExceed" |
| | | :on-success="handleSuccessUp" |
| | | :show-file-list="false" |
| | | :key="key" |
| | | > |
| | | <el-button |
| | | :size="o.size ? o.size : 'small'" |
| | | type="text" |
| | | :disabled="o.disabled ? o.disabled(scope.row) : false" |
| | | >{{ o.name }}</el-button |
| | | > |
| | | </el-upload> |
| | | <el-upload action="#" :on-change="(file, fileList) => o.clickFun(scope.row, file, fileList) |
| | | " :multiple="o.multiple ? o.multiple : false" :limit="o.limit ? o.limit : 1" |
| | | :disabled="o.disabled ? o.disabled(scope.row) : false" :accept="o.accept |
| | | ? o.accept |
| | | : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' |
| | | " v-if="o.type == 'upload' && !o.url" style="display: inline-block; width: 50px" |
| | | v-show="o.showHide ? o.showHide(scope.row) : true" :auto-upload="false" :on-exceed="onExceed" |
| | | :show-file-list="false" :key="key"> |
| | | <el-button :size="o.size ? o.size : 'small'" type="text" |
| | | :disabled="o.disabled ? o.disabled(scope.row) : false">{{ o.name }}</el-button> |
| | | <el-upload |
| | | action="#" |
| | | :on-change=" |
| | | (file, fileList) => o.clickFun(scope.row, file, fileList) |
| | | " |
| | | :multiple="o.multiple ? o.multiple : false" |
| | | :limit="o.limit ? o.limit : 1" |
| | | :disabled="o.disabled ? o.disabled(scope.row) : false" |
| | | :accept=" |
| | | o.accept |
| | | ? o.accept |
| | | : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' |
| | | " |
| | | v-if="o.type == 'upload' && !o.url" |
| | | style="display: inline-block; width: 50px" |
| | | v-show="o.showHide ? o.showHide(scope.row) : true" |
| | | :auto-upload="false" |
| | | :on-exceed="onExceed" |
| | | :show-file-list="false" |
| | | :key="key" |
| | | > |
| | | <el-button |
| | | :size="o.size ? o.size : 'small'" |
| | | type="text" |
| | | :disabled="o.disabled ? o.disabled(scope.row) : false" |
| | | >{{ o.name }}</el-button |
| | | > |
| | | </el-upload> |
| | | </template> |
| | | </div> |
| | | <!-- 可点击的文字 --> |
| | | <div v-else-if="item.dataType == 'link'" class="cell link" style="width: 100%" |
| | | @click="goLink(scope.row, item.linkMethod)"> |
| | | <div |
| | | v-else-if="item.dataType == 'link'" |
| | | class="cell link" |
| | | style="width: 100%" |
| | | @click="goLink(scope.row, item.linkMethod)" |
| | | > |
| | | <span v-if="!item.formatData">{{ scope.row[item.prop] }}</span> |
| | | </div> |
| | | <!-- 默认纯展示数据 --> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination v-if="page" v-show="page.total > 0" :total="page.total" :layout="page.layout" :page.sync="page.current" |
| | | :limit.sync="page.size" @pagination="pagination" style="background-color: #fff;" /> |
| | | <pagination |
| | | v-if="page" |
| | | v-show="page.total > 0" |
| | | :total="page.total" |
| | | :layout="page.layout" |
| | | :page.sync="page.current" |
| | | :limit.sync="page.size" |
| | | @pagination="pagination" |
| | | style="background-color: #fff" |
| | | /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | name: "ZTTable", |
| | | filters: { |
| | | typeFn(val, row) { |
| | | // console.log(val, row, '11111111'); |
| | | if (typeof val === "function") { |
| | | return val(row); |
| | | } else return val; |
| | |
| | | handleSelectionChange: { |
| | | type: Function, |
| | | default: () => { |
| | | return () => { }; |
| | | return () => {}; |
| | | }, |
| | | }, |
| | | rowClick: { |
| | | type: Function, |
| | | default: () => { |
| | | return () => { }; |
| | | return () => {}; |
| | | }, |
| | | }, |
| | | currentChange: { |
| | | type: Function, |
| | | default: () => { |
| | | return () => { }; |
| | | return () => {}; |
| | | }, |
| | | }, |
| | | border: { |
| | |
| | | }, |
| | | rowClassName: { |
| | | type: Function, |
| | | default: () => { }, |
| | | default: () => {}, |
| | | }, |
| | | rowStyle: { |
| | | type: Function, |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .el-table>>>.el-table__empty-text { |
| | | .el-table >>> .el-table__empty-text { |
| | | text-align: center; |
| | | } |
| | | |
| | | >>>.cell { |
| | | >>> .cell { |
| | | padding: 0 !important; |
| | | } |
| | | |
| | |
| | | cursor: pointer; |
| | | } |
| | | |
| | | >>>.el-table__body-wrapper::-webkit-scrollbar { |
| | | >>> .el-table__body-wrapper::-webkit-scrollbar { |
| | | height: 14px; |
| | | /* 设置滚动条宽度 */ |
| | | } |
| | |
| | | <template> |
| | | <div class="bg-1"> |
| | | <div v-show="!configShow && !equipConfigShow && !cableConfigShow"> |
| | | <div |
| | | v-show="!configShow && !equipConfigShow && !cableConfigShow" |
| | | style="margin: 5px 15px" |
| | | > |
| | | <el-row class="title"> |
| | | <el-col :span="6" style="padding-left: 20px; text-align: left">委托单信息 总价:<span |
| | | style="color: #3a7bfa">¥{{ total }}</span></el-col> |
| | | <el-col :span="6" |
| | | >委托单信息 总价:<span style="color: #3a7bfa" |
| | | >¥{{ total }}</span |
| | | ></el-col |
| | | > |
| | | <el-col :span="18" style="text-align: right"> |
| | | <el-select v-model="template" size="medium" filterable placeholder="下单模板" style="margin-right: 10px" |
| | | v-show="active == 1" @change="selectInsOrderTemplateById"> |
| | | <el-option v-for="(a, ai) in templates" :key="ai" :value="a.id" :label="a.name"> |
| | | <el-select |
| | | v-model="template" |
| | | size="medium" |
| | | filterable |
| | | placeholder="下单模板" |
| | | style="margin-right: 10px" |
| | | v-show="active == 1" |
| | | @change="selectInsOrderTemplateById" |
| | | > |
| | | <el-option |
| | | v-for="(a, ai) in templates" |
| | | :key="ai" |
| | | :value="a.id" |
| | | :label="a.name" |
| | | > |
| | | <span style="float: left">{{ a.name }}</span> |
| | | <i class="el-icon-delete" style="float: right; color: #66b1ff; font-size: 16px" |
| | | @click.stop="handleDelete(a)"></i> |
| | | <i |
| | | class="el-icon-delete" |
| | | style="float: right; color: #66b1ff; font-size: 16px" |
| | | @click.stop="handleDelete(a)" |
| | | ></i> |
| | | </el-option> |
| | | </el-select> |
| | | <el-button size="medium" @click="templateDia = true" v-show="active == 1"> |
| | | <el-button |
| | | size="medium" |
| | | @click="templateDia = true" |
| | | v-show="active == 1" |
| | | > |
| | | <span style="color: #3a7bfa">保存模板</span> |
| | | </el-button> |
| | | <el-button size="medium" type="primary" @click="openCableConfig" v-if=" |
| | | active == 1 && |
| | | PROJECT == '装备电缆' && |
| | | addObj.sampleType != undefined && |
| | | addObj.sampleType.indexOf('电缆') > -1 |
| | | ">电缆配置</el-button> |
| | | <el-button size="medium" type="primary" @click="openEquipConfig" v-if="active == 1">子样品配置</el-button> |
| | | <el-button size="medium" type="primary" @click="openConfig" v-if="addObj.sampleType === '光缆'">光纤配置</el-button> |
| | | <el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-show="active == 1">提交</el-button> |
| | | <el-button |
| | | size="medium" |
| | | type="primary" |
| | | @click="openEquipConfig" |
| | | v-if="active == 1" |
| | | >子样品配置</el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="primary" |
| | | @click="openConfig" |
| | | v-if="addObj.sampleType === '光缆'" |
| | | >光纤配置</el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="primary" |
| | | @click="save" |
| | | :loading="saveLoad" |
| | | v-show="active == 1" |
| | | >提交</el-button |
| | | > |
| | | <!-- 审核 --> |
| | | <el-button size="medium" @click="upInsOrderOfState(2)" :loading="saveLoad" |
| | | v-show="active == 3 && addObj.companyId" :disabled="saveLoad">不通过</el-button> |
| | | <el-button size="medium" type="primary" @click="upInsOrderOfState(1)" :loading="saveLoad" |
| | | v-show="active == 3 && addObj.companyId">通过</el-button> |
| | | <el-button |
| | | size="medium" |
| | | @click="upInsOrderOfState(2)" |
| | | :loading="saveLoad" |
| | | v-show="active == 3 && addObj.companyId" |
| | | :disabled="saveLoad" |
| | | >不通过</el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="primary" |
| | | @click="upInsOrderOfState(1)" |
| | | :loading="saveLoad" |
| | | v-show="active == 3 && addObj.companyId" |
| | | >通过</el-button |
| | | > |
| | | <el-button size="medium" @click="$parent.playOrder(0)"> |
| | | <span style="color: #3a7bfa">返回</span> |
| | | </el-button> |
| | |
| | | </el-row> |
| | | </div> |
| | | <basic-container> |
| | | <div class="search" v-show="!configShow && !equipConfigShow && !cableConfigShow"> |
| | | <el-form :model="addObj" :rules="formRule" label-position="right" inline> |
| | | <div |
| | | class="search" |
| | | v-show="!configShow && !equipConfigShow && !cableConfigShow" |
| | | > |
| | | <el-form |
| | | :model="addObj" |
| | | :rules="formRule" |
| | | label-position="right" |
| | | inline |
| | | > |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="委托编号:" prop="entrustCode"> |
| | | <el-input v-model="addObj.entrustCode" size="small" class="search_input" placeholder="系统生成" |
| | | disabled></el-input> |
| | | <el-input |
| | | v-model="addObj.entrustCode" |
| | | size="small" |
| | | class="search_input" |
| | | placeholder="系统生成" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="检验类别:" prop="orderType"> |
| | | <el-select size="small" class="search_input" clearable v-model="addObj.orderType" |
| | | :disabled="active > 1"> |
| | | <el-option v-for="(a, ai) in orderType" :key="ai" :value="a.dictValue" |
| | | :label="a.dictLabel"></el-option> |
| | | <el-select |
| | | size="small" |
| | | class="search_input" |
| | | clearable |
| | | v-model="addObj.orderType" |
| | | :disabled="active > 1" |
| | | > |
| | | <el-option |
| | | v-for="(a, ai) in orderType" |
| | | :key="ai" |
| | | :value="a.dictValue" |
| | | :label="a.dictLabel" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="制单人:" prop="custom"> |
| | | <el-input size="small" class="search_input" clearable disabled v-model="addObj.custom"></el-input> |
| | | <el-input |
| | | size="small" |
| | | class="search_input" |
| | | clearable |
| | | disabled |
| | | v-model="addObj.custom" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="委托单位:" prop="company" class="company_input"> |
| | | <el-input readonly size="small" v-model="addObj.company" placeholder="选择委托单位"> |
| | | <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectUserDia = true" |
| | | :disabled="active > 1 || addObj.company != '中天科技检测中心' |
| | | "></el-button></template> |
| | | <el-form-item |
| | | label="委托单位:" |
| | | prop="company" |
| | | class="company_input" |
| | | > |
| | | <el-input |
| | | readonly |
| | | size="small" |
| | | v-model="addObj.company" |
| | | placeholder="选择委托单位" |
| | | > |
| | | <template slot="append" |
| | | ><el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="selectUserDia = true" |
| | | :disabled=" |
| | | active > 1 || addObj.company != '中天科技检测中心' |
| | | " |
| | | ></el-button |
| | | ></template> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="联系方式:" prop="phone"> |
| | | <el-input size="small" placeholder="请输入" class="search_input" clearable :readonly="active > 1" |
| | | v-model="addObj.phone"></el-input> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | class="search_input" |
| | | clearable |
| | | :readonly="active > 1" |
| | | v-model="addObj.phone" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="紧急程度:" prop="type"> |
| | | <el-select @change="changeType" size="small" class="search_input" clearable v-model="addObj.type" |
| | | :disabled="active > 1"> |
| | | <el-option v-for="(a, ai) in type" :key="ai" :value="a.dictValue" :label="a.dictLabel"></el-option> |
| | | <el-select |
| | | @change="changeType" |
| | | size="small" |
| | | class="search_input" |
| | | clearable |
| | | v-model="addObj.type" |
| | | :disabled="active > 1" |
| | | > |
| | | <el-option |
| | | v-for="(a, ai) in type" |
| | | :key="ai" |
| | | :value="a.dictValue" |
| | | :label="a.dictLabel" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="样品名称:" prop="sample" class="sample_input"> |
| | | <el-form-item |
| | | label="样品名称:" |
| | | prop="sample" |
| | | class="sample_input" |
| | | > |
| | | <el-input readonly size="small" v-model="addObj.sample"> |
| | | <template slot="append"><el-button slot="append" icon="el-icon-search" |
| | | @click="selectStandardTree = true" :disabled="active > 1"></el-button></template> |
| | | <template slot="append" |
| | | ><el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="selectStandardTree = true" |
| | | :disabled="active > 1" |
| | | ></el-button |
| | | ></template> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="样品数量:" prop="sampleNum"> |
| | | <el-input-number size="small" v-model="addObj.sampleNum" :min="1" :max="100" :precision="0" |
| | | @change="addStandardTree" :disabled="active > 1"></el-input-number> |
| | | <el-input-number |
| | | size="small" |
| | | v-model="addObj.sampleNum" |
| | | :min="1" |
| | | :max="100" |
| | | :precision="0" |
| | | @change="addStandardTree" |
| | | :disabled="active > 1" |
| | | ></el-input-number> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="来样方式:" prop="formType"> |
| | | <el-select v-model="addObj.formType" size="small" class="search_input" :disabled="active > 1"> |
| | | <el-option v-for="(a, ai) in formType" :key="ai" :label="a.dictLabel" |
| | | :value="a.dictValue"></el-option> |
| | | <el-select |
| | | v-model="addObj.formType" |
| | | size="small" |
| | | class="search_input" |
| | | :disabled="active > 1" |
| | | > |
| | | <el-option |
| | | v-for="(a, ai) in formType" |
| | | :key="ai" |
| | | :label="a.dictLabel" |
| | | :value="a.dictValue" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="样品处理方式:" prop="processing" class="processing_input"> |
| | | <el-form-item |
| | | label="样品处理方式:" |
| | | prop="processing" |
| | | class="processing_input" |
| | | > |
| | | <el-radio-group v-model="addObj.processing" size="mini"> |
| | | <el-radio :label="0">委托单位取回</el-radio> |
| | | <el-radio :label="1">实验室处理</el-radio> |
| | |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="工程名称:" prop="engineering"> |
| | | <el-input size="small" class="search_input" :placeholder="active > 1 ? '' : '请输入'" clearable |
| | | v-model="addObj.engineering" :readonly="active > 1"></el-input> |
| | | <el-input |
| | | size="small" |
| | | class="search_input" |
| | | :placeholder="active > 1 ? '' : '请输入'" |
| | | clearable |
| | | v-model="addObj.engineering" |
| | | :readonly="active > 1" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="工程名称EN:" prop="engineeringEn" class="engineeringEn_input"> |
| | | <el-input size="small" :placeholder="active > 1 ? '' : '请输入'" clearable v-model="addObj.engineeringEn" |
| | | :readonly="active > 1"></el-input> |
| | | <el-form-item |
| | | label="工程名称EN:" |
| | | prop="engineeringEn" |
| | | class="engineeringEn_input" |
| | | > |
| | | <el-input |
| | | size="small" |
| | | :placeholder="active > 1 ? '' : '请输入'" |
| | | clearable |
| | | v-model="addObj.engineeringEn" |
| | | :readonly="active > 1" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="生产单位:" prop="production"> |
| | | <el-input size="small" class="search_input" placeholder="请输入" clearable v-model="addObj.production" |
| | | :readonly="active > 1"></el-input> |
| | | <el-input |
| | | size="small" |
| | | class="search_input" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="addObj.production" |
| | | :readonly="active > 1" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="生产单位EN:" prop="productionEn" class="productionEn_input"> |
| | | <el-input size="small" class="search_input" placeholder="请输入" clearable v-model="addObj.productionEn" |
| | | :readonly="active > 1"></el-input> |
| | | <el-form-item |
| | | label="生产单位EN:" |
| | | prop="productionEn" |
| | | class="productionEn_input" |
| | | > |
| | | <el-input |
| | | size="small" |
| | | class="search_input" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="addObj.productionEn" |
| | | :readonly="active > 1" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="是否涉及配套样品:" prop="mating"> |
| | | <el-radio-group v-model="addObj.mating" @change="$refs.sampleTable.doLayout()"> |
| | | <el-radio-group |
| | | v-model="addObj.mating" |
| | | @change="$refs.sampleTable.doLayout()" |
| | | > |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="OTC订单号:" prop="otcCode" class="otcCode_input"> |
| | | <el-input size="small" :placeholder="active > 1 ? '' : '请输入'" clearable v-model="addObj.otcCode" |
| | | :readonly="active > 1"></el-input> |
| | | <el-form-item |
| | | label="OTC订单号:" |
| | | prop="otcCode" |
| | | class="otcCode_input" |
| | | > |
| | | <el-input |
| | | size="small" |
| | | :placeholder="active > 1 ? '' : '请输入'" |
| | | clearable |
| | | v-model="addObj.otcCode" |
| | | :readonly="active > 1" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="委托人:" prop="prepareUser"> |
| | | <el-input size="small" class="search_input" :placeholder="active > 1 ? '' : '请输入'" clearable |
| | | v-model="addObj.prepareUser" :readonly="active > 1"></el-input> |
| | | <el-input |
| | | size="small" |
| | | class="search_input" |
| | | :placeholder="active > 1 ? '' : '请输入'" |
| | | clearable |
| | | v-model="addObj.prepareUser" |
| | | :readonly="active > 1" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="备注:" prop="remark"> |
| | | <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2 }" size="small" clearable |
| | | :placeholder="active > 1 ? '' : '请输入'" v-model="addObj.remark" :readonly="active > 1"></el-input> |
| | | <el-input |
| | | type="textarea" |
| | | :autosize="{ minRows: 2, maxRows: 2 }" |
| | | size="small" |
| | | clearable |
| | | :placeholder="active > 1 ? '' : '请输入'" |
| | | v-model="addObj.remark" |
| | | :readonly="active > 1" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </basic-container> |
| | | <basic-container> |
| | | <div style="height: auto"> |
| | | <div class="search" v-if="active == 1" style="display: flex; background: transparent"> |
| | | <div |
| | | class="search" |
| | | v-if="active == 1" |
| | | style="display: flex; background: transparent" |
| | | > |
| | | <div> |
| | | <div class="search_label">样品型号:</div> |
| | | <div class="search_input"> |
| | | <el-select v-model="model" :placeholder="active > 1 ? '' : '请输入'" filterable allow-create |
| | | default-first-option size="small" @change="changeModel"> |
| | | <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value"> |
| | | <el-select |
| | | v-model="model" |
| | | :placeholder="active > 1 ? '' : '请输入'" |
| | | filterable |
| | | allow-create |
| | | default-first-option |
| | | size="small" |
| | | @change="changeModel" |
| | | > |
| | | <el-option |
| | | v-for="item in models" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | |
| | | <div> |
| | | <div class="search_label">检验标准:</div> |
| | | <div class="search_input"> |
| | | <el-select filterable v-model="standardMethodListId" :placeholder="active > 1 ? '' : '请输入'" size="small" |
| | | @focus="methodFocus" :loading="methodLoad" @change="changeStandardMethodListId"> |
| | | <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> |
| | | <el-select |
| | | filterable |
| | | v-model="standardMethodListId" |
| | | :placeholder="active > 1 ? '' : '请输入'" |
| | | size="small" |
| | | @focus="methodFocus" |
| | | :loading="methodLoad" |
| | | @change="changeStandardMethodListId" |
| | | > |
| | | <el-option |
| | | v-for="item in methods" |
| | | :key="item.id" |
| | | :label="item.code" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-table class="el-table sampleTable" ref="sampleTable" :data="sampleList" max-height="400px" |
| | | tooltip-effect="dark" border @selection-change="selectSample" highlight-current-row @row-click="rowClick" |
| | | style="margin-top: 10px"> |
| | | <el-table-column type="selection" width="60" :selectable="selectable" v-if="active == 1"></el-table-column> |
| | | <el-table-column type="index" label="序号" width="65" align="center"></el-table-column> |
| | | <el-table-column prop="sample" label="样品名称" align="center" min-width="100"> |
| | | <el-table |
| | | class="el-table sampleTable" |
| | | ref="sampleTable" |
| | | :data="sampleList" |
| | | max-height="400px" |
| | | tooltip-effect="dark" |
| | | border |
| | | @selection-change="selectSample" |
| | | highlight-current-row |
| | | @row-click="rowClick" |
| | | style="margin-top: 10px" |
| | | > |
| | | <el-table-column |
| | | type="selection" |
| | | width="60" |
| | | :selectable="selectable" |
| | | v-if="active == 1" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | type="index" |
| | | label="序号" |
| | | width="65" |
| | | align="center" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="sample" |
| | | label="样品名称" |
| | | align="center" |
| | | min-width="100" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" v-model="scope.row.sample" clearable :readonly="active > 1"></el-input> |
| | | <el-input |
| | | size="small" |
| | | v-model="scope.row.sample" |
| | | clearable |
| | | :readonly="active > 1" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="sampleCode" label="样品编号" min-width="140" align="center"> |
| | | <el-table-column |
| | | prop="sampleCode" |
| | | label="样品编号" |
| | | min-width="140" |
| | | align="center" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" v-model="scope.row.sampleCode" clearable placeholder="不填写则系统自动生成" |
| | | :readonly="active > 1"></el-input> |
| | | <el-input |
| | | size="small" |
| | | v-model="scope.row.sampleCode" |
| | | clearable |
| | | placeholder="不填写则系统自动生成" |
| | | :readonly="active > 1" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="model" label="样品型号" align="center" min-width="100"> |
| | | <el-table-column |
| | | prop="model" |
| | | label="样品型号" |
| | | align="center" |
| | | min-width="100" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-select v-model="scope.row.model" filterable allow-create default-first-option placeholder="样品型号" |
| | | size="small" @change="handleChangeModel" :disabled="active > 1" style="width: 100%"> |
| | | <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value"> |
| | | <el-select |
| | | v-model="scope.row.model" |
| | | filterable |
| | | allow-create |
| | | default-first-option |
| | | placeholder="样品型号" |
| | | size="small" |
| | | @change="handleChangeModel" |
| | | :disabled="active > 1" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in models" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="modelNum" label="型号参数" width="130" align="center" v-if="!(active > 1)"> |
| | | <el-table-column |
| | | prop="modelNum" |
| | | label="型号参数" |
| | | width="130" |
| | | align="center" |
| | | v-if="!(active > 1)" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" v-model="scope.row.modelNum" clearable placeholder="非必填" @keyup.enter.native=" |
| | | methodChange(scope.row.standardMethodListId, scope.row) |
| | | " @clear="methodChange(scope.row.standardMethodListId, scope.row)"></el-input> |
| | | <el-input |
| | | size="small" |
| | | v-model="scope.row.modelNum" |
| | | clearable |
| | | placeholder="非必填" |
| | | @keyup.enter.native=" |
| | | methodChange(scope.row.standardMethodListId, scope.row) |
| | | " |
| | | @clear="methodChange(scope.row.standardMethodListId, scope.row)" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="standardMethodListId" label="检验标准" align="center" min-width="100"> |
| | | <el-table-column |
| | | prop="standardMethodListId" |
| | | label="检验标准" |
| | | align="center" |
| | | min-width="100" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model == null || active > 1" |
| | | placeholder="检验标准" filterable size="small" :loading="methodLoad" |
| | | @change="(value) => methodChange(value, scope.row)" @focus="methodFocus" :readonly="active > 1" |
| | | style="width: 100%" clearable @clear="productList = []"> |
| | | <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> |
| | | <el-select |
| | | v-model="scope.row.standardMethodListId" |
| | | :disabled="scope.row.model == null || active > 1" |
| | | placeholder="检验标准" |
| | | filterable |
| | | size="small" |
| | | :loading="methodLoad" |
| | | @change="(value) => methodChange(value, scope.row)" |
| | | @focus="methodFocus" |
| | | :readonly="active > 1" |
| | | style="width: 100%" |
| | | clearable |
| | | @clear="productList = []" |
| | | > |
| | | <el-option |
| | | v-for="item in methods" |
| | | :key="item.id" |
| | | :label="item.code" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="joinName" label="配套样品名称" width="140" align="center" v-if="addObj.mating == 1"> |
| | | <el-table-column |
| | | prop="joinName" |
| | | label="配套样品名称" |
| | | width="140" |
| | | align="center" |
| | | v-if="addObj.mating == 1" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" type="textarea" :autosize="{ minRows: 1, maxRows: 1 }" |
| | | v-model="scope.row.joinName"></el-input> |
| | | <el-input |
| | | size="small" |
| | | type="textarea" |
| | | :autosize="{ minRows: 1, maxRows: 1 }" |
| | | v-model="scope.row.joinName" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="joinModel" label="配套样品型号" width="140" align="center" v-if="addObj.mating == 1"> |
| | | <el-table-column |
| | | prop="joinModel" |
| | | label="配套样品型号" |
| | | width="140" |
| | | align="center" |
| | | v-if="addObj.mating == 1" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" type="textarea" :autosize="{ minRows: 1, maxRows: 1 }" |
| | | v-model="scope.row.joinModel"></el-input> |
| | | <el-input |
| | | size="small" |
| | | type="textarea" |
| | | :autosize="{ minRows: 1, maxRows: 1 }" |
| | | v-model="scope.row.joinModel" |
| | | ></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="joinNum" label="配套样品数量" width="140" align="center" v-if="addObj.mating == 1"> |
| | | <el-table-column |
| | | prop="joinNum" |
| | | label="配套样品数量" |
| | | width="140" |
| | | align="center" |
| | | v-if="addObj.mating == 1" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number size="small" v-model="scope.row.joinNum" :min="1" :max="100" :precision="0" |
| | | :controls="false" style="width: 80%"></el-input-number> |
| | | <el-input-number |
| | | size="small" |
| | | v-model="scope.row.joinNum" |
| | | :min="1" |
| | | :max="100" |
| | | :precision="0" |
| | | :controls="false" |
| | | style="width: 80%" |
| | | ></el-input-number> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="proNum" label="待检项数量" width="105" align="center"></el-table-column> |
| | | <el-table-column |
| | | prop="proNum" |
| | | label="待检项数量" |
| | | width="105" |
| | | align="center" |
| | | ></el-table-column> |
| | | </el-table> |
| | | <el-table class="el-table" ref="productTable" :data="productList" max-height="400px" tooltip-effect="dark" |
| | | border @selection-change="selectProduct" style="margin-bottom: 10px" @select="upProductSelect" |
| | | :row-class-name="tableRowClassName" v-loading="standardLoading || getProductLoad" @select-all="handleAll"> |
| | | <el-table-column type="selection" width="65" :selectable="selectable" v-if="active == 1"></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="检验项" min-width="140" show-overflow-tooltip> |
| | | <el-table |
| | | class="el-table" |
| | | ref="productTable" |
| | | :data="productList" |
| | | max-height="400px" |
| | | tooltip-effect="dark" |
| | | border |
| | | @selection-change="selectProduct" |
| | | style="margin-bottom: 10px" |
| | | @select="upProductSelect" |
| | | :row-class-name="tableRowClassName" |
| | | v-loading="standardLoading || getProductLoad" |
| | | @select-all="handleAll" |
| | | > |
| | | <el-table-column |
| | | type="selection" |
| | | width="65" |
| | | :selectable="selectable" |
| | | v-if="active == 1" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItem" |
| | | label="检验项" |
| | | min-width="140" |
| | | show-overflow-tooltip |
| | | > |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style=" |
| | | <div |
| | | style=" |
| | | display: flex; |
| | | align-items: center; |
| | | flex-direction: column; |
| | | font-size: 14px; |
| | | "> |
| | | " |
| | | > |
| | | <span>检验项</span> |
| | | <el-input v-if="active == 1" v-model="inspectionItem" @input="searchFilterList" size="mini" |
| | | placeholder="请输入" /> |
| | | <el-input |
| | | v-if="active == 1" |
| | | v-model="inspectionItem" |
| | | @input="searchFilterList" |
| | | size="mini" |
| | | placeholder="请输入" |
| | | /> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="inspectionItemSubclass" label="检验项子项" min-width="140" show-overflow-tooltip> |
| | | <el-table-column |
| | | prop="inspectionItemSubclass" |
| | | label="检验项子项" |
| | | min-width="140" |
| | | show-overflow-tooltip |
| | | > |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style=" |
| | | <div |
| | | style=" |
| | | display: flex; |
| | | align-items: center; |
| | | flex-direction: column; |
| | | font-size: 14px; |
| | | "> |
| | | " |
| | | > |
| | | <span>检验项子项</span> |
| | | <el-input v-if="active == 1" v-model="inspectionItemSubclass" @input="searchFilterList" size="mini" |
| | | placeholder="请输入" /> |
| | | <el-input |
| | | v-if="active == 1" |
| | | v-model="inspectionItemSubclass" |
| | | @input="searchFilterList" |
| | | size="mini" |
| | | placeholder="请输入" |
| | | /> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="tell" label="要求描述" min-width="220px"> |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" placeholder="要求描述" v-model="scope.row.tell" clearable type="textarea" |
| | | :autosize="{ minRows: 1, maxRows: 3 }" @change="(e) => requestChange(e, scope.row, 'tell')" |
| | | v-if="active == 1 && isAskOnlyRead"></el-input> |
| | | <el-input |
| | | size="small" |
| | | placeholder="要求描述" |
| | | v-model="scope.row.tell" |
| | | clearable |
| | | type="textarea" |
| | | :autosize="{ minRows: 1, maxRows: 3 }" |
| | | @change="(e) => requestChange(e, scope.row, 'tell')" |
| | | v-if="active == 1 && isAskOnlyRead" |
| | | ></el-input> |
| | | <span v-else> |
| | | <template>{{ scope.row.tell }}</template> |
| | | </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="ask" label="要求值" min-width="220px" v-if="isAskOnlyRead"> |
| | | <el-table-column |
| | | prop="ask" |
| | | label="要求值" |
| | | min-width="220px" |
| | | v-if="isAskOnlyRead" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input size="small" placeholder="要求值" v-model="scope.row.ask" clearable type="textarea" |
| | | :autosize="{ minRows: 1, maxRows: 3 }" @change="(e) => requestChange(e, scope.row, 'ask')" v-if=" |
| | | <el-input |
| | | size="small" |
| | | placeholder="要求值" |
| | | v-model="scope.row.ask" |
| | | clearable |
| | | type="textarea" |
| | | :autosize="{ minRows: 1, maxRows: 3 }" |
| | | @change="(e) => requestChange(e, scope.row, 'ask')" |
| | | v-if=" |
| | | active == 1 && |
| | | isAskOnlyRead && |
| | | scope.row.inspectionValueType != '5' |
| | | "></el-input> |
| | | " |
| | | ></el-input> |
| | | <span v-else> |
| | | <template>{{ scope.row.ask }}</template> |
| | | </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="methodS" label="试验方法" min-width="120" show-overflow-tooltip> |
| | | <el-table-column |
| | | prop="methodS" |
| | | label="试验方法" |
| | | min-width="120" |
| | | show-overflow-tooltip |
| | | > |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style=" |
| | | <div |
| | | style=" |
| | | display: flex; |
| | | align-items: center; |
| | | flex-direction: column; |
| | | font-size: 14px; |
| | | "> |
| | | " |
| | | > |
| | | <span>试验方法</span> |
| | | <el-input v-if="active == 1" v-model="methodS" @input="searchFilterList" size="mini" |
| | | placeholder="请输入" /> |
| | | <el-input |
| | | v-if="active == 1" |
| | | v-model="methodS" |
| | | @input="searchFilterList" |
| | | size="mini" |
| | | placeholder="请输入" |
| | | /> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="unit" label="计量单位" width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="price" label="单价" width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="section" label="区间" min-width="120" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="sonLaboratory" label="子实验室" min-width="130" show-overflow-tooltip :filters="filters" |
| | | :filter-method="filterHandler"></el-table-column> |
| | | <el-table-column |
| | | prop="unit" |
| | | label="计量单位" |
| | | width="100" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="price" |
| | | label="单价" |
| | | width="100" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="section" |
| | | label="区间" |
| | | min-width="120" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="sonLaboratory" |
| | | label="子实验室" |
| | | min-width="130" |
| | | show-overflow-tooltip |
| | | :filters="filters" |
| | | :filter-method="filterHandler" |
| | | ></el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </basic-container> |
| | |
| | | }); |
| | | }, |
| | | //保存单根垂直燃烧特殊值 |
| | | saveSingleVerticalCombustionData() { }, |
| | | saveSingleVerticalCombustionData() {}, |
| | | openSingleVerticalCombustionDialog() { |
| | | this.$prompt("单根垂直燃烧次数", "特殊检测项目", { |
| | | confirmButtonText: "确定", |
| | |
| | | this.currentMethod.insProduct = this.productList0; |
| | | this.getProNum(); |
| | | }) |
| | | .catch(() => { }); |
| | | .catch(() => {}); |
| | | }, |
| | | singleVerticalData(arr, value) { |
| | | arr.forEach((ins) => { |
| | |
| | | try { |
| | | let num = this.replaceAll(tell, symbolItem, value); |
| | | return num; |
| | | } catch (e) { } |
| | | } catch (e) {} |
| | | }, |
| | | replaceAll(str, find, value) { |
| | | if (str === undefined) { |
| | |
| | | .then(() => { |
| | | this.saveMethod(sampleList); |
| | | }) |
| | | .catch(() => { }); |
| | | .catch(() => {}); |
| | | } else { |
| | | let isRTS = this.totalArr.find( |
| | | (a) => |
| | |
| | | .then(() => { |
| | | this.saveMethod(sampleList); |
| | | }) |
| | | .catch(() => { }); |
| | | .catch(() => {}); |
| | | } else { |
| | | let isRTS = this.totalArr.find( |
| | | (a) => |
| | |
| | | }); |
| | | } |
| | | }, |
| | | errorSet() { }, |
| | | errorSet() {}, |
| | | /** |
| | | * 校验委托要求的检验项的要求描述和要求值 |
| | | * |
| | |
| | | console.log("ask or tell is null"); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | }); |
| | | isTrue = false; |
| | |
| | | ); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } |
| | |
| | | console.log("要求值中没有数字"); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } |
| | |
| | | console.log("直径公差之半与0.5不匹配"); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | // if(ele.tell.indexOf(askVal[0])<0 && ele.tell.indexOf('半')<0){ |
| | |
| | | console.log("最大值和最小值相等"); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } |
| | |
| | | console.log("要求描述中不包含±以及区间的数字"); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } else if (ele.tell.indexOf("-") == 0) { |
| | | console.log("要求值的区间格式错误"); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } else if (tell.indexOf("-") > 0 || tell.indexOf("±") > 0) { |
| | |
| | | console.log("错误的区间设置"); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } |
| | |
| | | console.log(777777); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } else { |
| | |
| | | console.log(888888); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } |
| | |
| | | console.log(99999); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } |
| | |
| | | console.log(1010101001); |
| | | this.errorInspectionItemList.push( |
| | | ele.inspectionItem + |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | " " + |
| | | (ele.inspectionItemSubclass == null |
| | | ? "" |
| | | : ele.inspectionItemSubclass) |
| | | ); |
| | | isTrue = false; |
| | | } |
| | |
| | | a.model = |
| | | a.model + |
| | | (a.modelNum == null || |
| | | a.modelNum == "" || |
| | | a.modelNum == "null" |
| | | a.modelNum == "" || |
| | | a.modelNum == "null" |
| | | ? "" |
| | | : "-" + a.modelNum); |
| | | } |
| | |
| | | a.model = |
| | | a.model + |
| | | (a.modelNum == null || |
| | | a.modelNum == "" || |
| | | a.modelNum == "null" |
| | | a.modelNum == "" || |
| | | a.modelNum == "null" |
| | | ? "" |
| | | : "-" + a.modelNum); |
| | | } |
| | |
| | | } else { |
| | | this.methods = res.data.standardMethodList; |
| | | } |
| | | } catch (e) { } |
| | | } catch (e) {} |
| | | }); |
| | | }, |
| | | addStandardTree(currentValue, oldValue) { |
| | |
| | | // row.manHour = arr2[index]; |
| | | // row.price = arr3[index]; |
| | | // row.tell = arr4[index]; |
| | | } catch (e) { } |
| | | } catch (e) {} |
| | | } |
| | | if ( |
| | | row.bsm === "1" && |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.selectInsOrderTemplate + |
| | | "?company=" + |
| | | this.addObj.company |
| | | "?company=" + |
| | | this.addObj.company |
| | | ) |
| | | .then((res) => { |
| | | if (res.code == 201) return; |
| | |
| | | this.$message.error("删除失败"); |
| | | }); |
| | | }) |
| | | .catch(() => { }); |
| | | .catch(() => {}); |
| | | }, |
| | | // 保存模板 |
| | | addTemplateDia() { |
| | |
| | | border-radius: 2px; |
| | | } |
| | | |
| | | .ins_order_add .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content { |
| | | .ins_order_add |
| | | .el-tree--highlight-current |
| | | .el-tree-node.is-current |
| | | > .el-tree-node__content { |
| | | color: #3a7bfa; |
| | | } |
| | | |
| | |
| | | |
| | | .company_input .el-form-item__content, |
| | | .sample_input .el-form-item__content { |
| | | width: 72%; |
| | | width: 70%; |
| | | } |
| | | |
| | | .engineeringEn_input .el-form-item__content, |
| | | .otcCode_input .el-form-item__content, |
| | | .productionEn_input .el-form-item__content { |
| | | width: 65%; |
| | | width: 63%; |
| | | } |
| | | |
| | | .processing_input .el-form-item__content { |
| | |
| | | <el-row class="title"> |
| | | <el-col :span="12" style="text-align: left">检验下单</el-col> |
| | | <el-col :span="12" style="text-align: right"> |
| | | <el-button size="medium" type="primary" @click="dialogVisible1 = true" |
| | | :loading="exportCheckedLoading">导出检验结果</el-button> |
| | | <el-button size="medium" type="primary" @click="print">标签打印</el-button> |
| | | <el-button size="medium" type="primary" @click="playOrder(1)" |
| | | v-hasPermi="['business:order:add']">下单</el-button> |
| | | <el-button |
| | | size="medium" |
| | | type="primary" |
| | | @click="dialogVisible1 = true" |
| | | :loading="exportCheckedLoading" |
| | | >导出检验结果</el-button |
| | | > |
| | | <el-button size="medium" type="primary" @click="print" |
| | | >标签打印</el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="primary" |
| | | @click="playOrder(1)" |
| | | v-hasPermi="['business:order:add']" |
| | | >下单</el-button |
| | | > |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | |
| | | <div class="search_thing" style="width: 20%"> |
| | | <div class="search_label">委托编号:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.entrustCode" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.entrustCode" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%"> |
| | |
| | | 外部委托编号: |
| | | </div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.outEntrustCode" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.outEntrustCode" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%"> |
| | | <div class="search_label">样品名称:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.sampleName" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.sampleName" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%"> |
| | | <div class="search_label">样品型号:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.sampleModel" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.sampleModel" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%"> |
| | | <div class="search_label">样品编号:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.sampleCode" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.sampleCode" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 40%" v-if="more"> |
| | | <div class="search_label">下单时间:</div> |
| | | <div class="search_input"> |
| | | <el-date-picker style="width: 100%" v-model="queryParams.startAndEndTime" type="daterange" size="small" |
| | | range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" |
| | | clearable placeholder="选择日期"> |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | v-model="queryParams.startAndEndTime" |
| | | type="daterange" |
| | | size="small" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | value-format="yyyy-MM-dd" |
| | | clearable |
| | | placeholder="选择日期" |
| | | > |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%" v-if="more"> |
| | | <div class="search_label">下单人:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.name" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.name" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%" v-if="more"> |
| | | <div class="search_label">工程名称:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.engineering" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.engineering" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%" v-if="more"> |
| | | <div class="search_label">生产单位:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.production" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.production" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="4"> |
| | | <div class="search_thing"> |
| | | <el-button type="text" :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3a7bfa" |
| | | @click="more = !more">{{ !more ? "更多" : "收起" }}</el-button> |
| | | <el-button |
| | | type="text" |
| | | :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" |
| | | style="color: #3a7bfa" |
| | | @click="more = !more" |
| | | >{{ !more ? "更多" : "收起" }}</el-button |
| | | > |
| | | <el-button size="small" @click="refresh()">重 置</el-button> |
| | | <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button> |
| | | <el-button size="small" type="primary" @click="refreshTable()" |
| | | >查 询</el-button |
| | | > |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <div v-show="active == 0"> |
| | | <div class="table"> |
| | | <ul class="tab"> |
| | | <li v-for="(m, i) in tabList" :key="i + 'afgh'" :class="{ active: i == tabIndex }" @click="handleTab(m, i)"> |
| | | <li |
| | | v-for="(m, i) in tabList" |
| | | :key="i + 'afgh'" |
| | | :class="{ active: i == tabIndex }" |
| | | @click="handleTab(m, i)" |
| | | > |
| | | {{ m.label }} |
| | | </li> |
| | | </ul> |
| | | <lims-table :tableData="tableData" :height="tableHeight + ''" @pagination="pagination" :column="column" |
| | | :page="page" :tableLoading="tableLoading"></lims-table> |
| | | <lims-table |
| | | isSelection |
| | | :tableData="tableData" |
| | | :height="tableHeight + ''" |
| | | @pagination="pagination" |
| | | :handleSelectionChange="selectionChange" |
| | | :column="column" |
| | | :page="page" |
| | | :tableLoading="tableLoading" |
| | | ></lims-table> |
| | | </div> |
| | | <!-- 审核 --> |
| | | <el-dialog title="下单审核" :visible.sync="verifyDialogVisible" width="30%" :before-close="handleClose"> |
| | | <el-dialog |
| | | title="下单审核" |
| | | :visible.sync="verifyDialogVisible" |
| | | width="30%" |
| | | :before-close="handleClose" |
| | | > |
| | | <p style="font-size: 16px; color: #333333" v-if="!isPass"> |
| | | 委托编号<span style="color: #34bd66">ZTMS2023071001</span>的信息是否通过 |
| | | 委托编号<span style="color: #34bd66">ZTMS2023071001</span |
| | | >的信息是否通过 |
| | | </p> |
| | | <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else> |
| | | <el-form |
| | | :label-position="labelPosition" |
| | | :model="formData" |
| | | label-width="150px" |
| | | ref="ruleForm" |
| | | v-else |
| | | > |
| | | <el-form-item label="请输入样品库位号:"> |
| | | <el-input v-model="formData.specificationModel" size="small" style="width: 60%"></el-input> |
| | | <el-input |
| | | v-model="formData.specificationModel" |
| | | size="small" |
| | | style="width: 60%" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row v-if="!isPass"> |
| | | <el-button @click="handleClose">退 回</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">通 过</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad" |
| | | >通 过</el-button |
| | | > |
| | | </el-row> |
| | | <el-row v-else> |
| | | <el-button @click="handleClose">返 回</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad" |
| | | >确 定</el-button |
| | | > |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- 撤销 --> |
| | | <el-dialog title="下单撤销" :visible.sync="quashDialogVisible" width="30%" :before-close="handleClose"> |
| | | <el-dialog |
| | | title="下单撤销" |
| | | :visible.sync="quashDialogVisible" |
| | | width="30%" |
| | | :before-close="handleClose" |
| | | > |
| | | <p style="font-size: 16px; color: #333333" v-if="!isQuash"> |
| | | 委托编号<span style="color: #34bd66">{{ |
| | | this.insOrderRow.entrustCode |
| | | }}</span>的信息是否撤销 |
| | | }}</span |
| | | >的信息是否撤销 |
| | | </p> |
| | | <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else> |
| | | <el-form |
| | | :label-position="labelPosition" |
| | | :model="formData" |
| | | label-width="150px" |
| | | ref="ruleForm" |
| | | v-else |
| | | > |
| | | <el-form-item label="请输入撤销原因:"> |
| | | <el-input v-model="formData.specificationModel" size="small" style="width: 60%"></el-input> |
| | | <el-input |
| | | v-model="formData.specificationModel" |
| | | size="small" |
| | | style="width: 60%" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row v-if="!isQuash"> |
| | | <el-button @click="handleClose">取 消</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad" |
| | | >确 定</el-button |
| | | > |
| | | </el-row> |
| | | <el-row v-else> |
| | | <el-button @click="handleClose">返 回</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad" |
| | | >确 定</el-button |
| | | > |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- 下发 --> |
| | | <el-dialog title="检验分配" :visible.sync="issuedDialogVisible" width="400px" :before-close="handleClose"> |
| | | <el-dialog |
| | | title="检验分配" |
| | | :visible.sync="issuedDialogVisible" |
| | | width="400px" |
| | | :before-close="handleClose" |
| | | > |
| | | <div class="body" style="max-height: 60vh"> |
| | | <el-row> |
| | | <el-col class="search_thing" style="width: 95%"> |
| | |
| | | <span class="required-span">* </span>约定时间: |
| | | </div> |
| | | <div class="search_input"> |
| | | <el-date-picker size="small" v-model="distributeData.appointed" type="date" placeholder="选择日期" |
| | | value-format="yyyy-MM-dd" style="width: 100%" format="yyyy-MM-dd"> |
| | | <el-date-picker |
| | | size="small" |
| | | v-model="distributeData.appointed" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | value-format="yyyy-MM-dd" |
| | | style="width: 100%" |
| | | format="yyyy-MM-dd" |
| | | > |
| | | </el-date-picker> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" style="width: 95%"> |
| | | <div class="search_label"> |
| | | <span class="required-span" v-show="distributeData.type == 2">* </span>指派人员: |
| | | <span class="required-span" v-show="distributeData.type == 2" |
| | | >* </span |
| | | >指派人员: |
| | | </div> |
| | | <div class="search_input"> |
| | | <el-select v-model="distributeData.userId" placeholder="请选择" size="small" style="width: 100%" |
| | | clearable filterable @change="changeUser"> |
| | | <el-option-group v-for="(item, index) in Object.keys(personList)" :key="index" :label="item"> |
| | | <el-option v-for="op in personList[item]" :key="op.id" :label="op.name" :value="op.id"> |
| | | <el-select |
| | | v-model="distributeData.userId" |
| | | placeholder="请选择" |
| | | size="small" |
| | | style="width: 100%" |
| | | clearable |
| | | filterable |
| | | @change="changeUser" |
| | | > |
| | | <el-option-group |
| | | v-for="(item, index) in Object.keys(personList)" |
| | | :key="index" |
| | | :label="item" |
| | | > |
| | | <el-option |
| | | v-for="op in personList[item]" |
| | | :key="op.id" |
| | | :label="op.name" |
| | | :value="op.id" |
| | | > |
| | | </el-option> |
| | | </el-option-group> |
| | | </el-select> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" style="width: 95%" v-if="distributeData.userId"> |
| | | <el-col |
| | | class="search_thing" |
| | | style="width: 95%" |
| | | v-if="distributeData.userId" |
| | | > |
| | | <div class="search_label"> |
| | | <span class="required-span">* </span>试验室: |
| | | </div> |
| | | <div class="search_input"> |
| | | <el-select v-model="distributeData.sonLaboratory" placeholder="请选择11" size="small" style="width: 100%" |
| | | clearable filterable> |
| | | <el-option v-for="(item, i) in sonLaboratoryList" :key="i + 'oooo'" :label="item.label" |
| | | :value="item.value"> |
| | | <el-select |
| | | v-model="distributeData.sonLaboratory" |
| | | placeholder="请选择11" |
| | | size="small" |
| | | style="width: 100%" |
| | | clearable |
| | | filterable |
| | | > |
| | | <el-option |
| | | v-for="(item, i) in sonLaboratoryList" |
| | | :key="i + 'oooo'" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | | <el-button @click="handleClose2">取 消</el-button> |
| | | <el-button type="primary" @click="submitForm2" :loading="upLoad">确 定</el-button> |
| | | <el-button type="primary" @click="submitForm2" :loading="upLoad" |
| | | >确 定</el-button |
| | | > |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="数据查看" :visible.sync="dataDialogVisible" width="100%" fullscreen> |
| | | <div style="height: 80vh; overflow-y: auto" v-if="dataDialogVisible"> |
| | | <ValueTable ref="ValueTableDataLook" :rowKey="'insProductId'" |
| | | :url="$api.insOrder.selectSampleAndProductByOrderId" :componentData="componentDataDataLook" /> |
| | | </div> |
| | | <el-dialog |
| | | title="数据查看" |
| | | :visible.sync="dataDialogVisible" |
| | | width="100%" |
| | | fullscreen |
| | | > |
| | | <lims-table |
| | | :heigt="'80vh'" |
| | | :tableData="dataLooktableData" |
| | | :column="dataLookcolumn" |
| | | :tableLoading="dataLookTableLoading" |
| | | ></lims-table> |
| | | </el-dialog> |
| | | <el-dialog top="5vh" :title="deleteTilte" :visible.sync="deleteDialogVisible" :before-close="handleCloseDelete" |
| | | width="80%"> |
| | | <el-dialog |
| | | top="5vh" |
| | | :title="deleteTilte" |
| | | :visible.sync="deleteDialogVisible" |
| | | :before-close="handleCloseDelete" |
| | | width="80%" |
| | | > |
| | | <div class="table-container" v-if="deleteDialogVisible"> |
| | | <!-- <ValueTable |
| | | ref="ValueTableDataDelete" |
| | |
| | | :componentData="componentDataDelete" |
| | | :isColumnWidth="true" |
| | | /> --> |
| | | <el-table height="500px" ref="revokeTable" @select="handleSelectionChange" @select-all="handleSelectionAll" |
| | | :data="treeTableData" style="width: 100%" row-key="id" border lazy :load="load" |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> |
| | | <el-table-column v-if="deleteTilte == '撤销'" type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="sampleCode" label="样品编号" show-overflow-tooltip> |
| | | <el-table |
| | | height="500px" |
| | | ref="revokeTable" |
| | | @select="handleSelectionChange" |
| | | @select-all="handleSelectionAll" |
| | | :data="treeTableData" |
| | | style="width: 100%" |
| | | row-key="id" |
| | | border |
| | | lazy |
| | | :load="load" |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" |
| | | > |
| | | <el-table-column |
| | | v-if="deleteTilte == '撤销'" |
| | | type="selection" |
| | | width="55" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="sampleCode" |
| | | label="样品编号" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="inspectionItem" label="检验项" show-overflow-tooltip> |
| | | <el-table-column |
| | | prop="inspectionItem" |
| | | label="检验项" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="inspectionItemSubclass" label="检验子项" show-overflow-tooltip> |
| | | <el-table-column |
| | | prop="inspectionItemSubclass" |
| | | label="检验子项" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="sampleType" label="样品分类" show-overflow-tooltip> |
| | | <el-table-column |
| | | prop="sampleType" |
| | | label="样品分类" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="sample" label="样品" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="model" label="型号" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="sonLaboratory" label="试验室" show-overflow-tooltip> |
| | | <el-table-column |
| | | prop="sonLaboratory" |
| | | label="试验室" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="tell" label="要求值" show-overflow-tooltip> |
| | | </el-table-column> |
| | |
| | | <el-button @click="handleNo">{{ |
| | | deleteTilte == "撤销" ? "取 消" : "不通过" |
| | | }}</el-button> |
| | | <el-button type="primary" @click="submitDelete" :loading="printLoading">{{ deleteTilte == "撤销" ? "确 定" : |
| | | "通 过" }}</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="submitDelete" |
| | | :loading="printLoading" |
| | | >{{ deleteTilte == "撤销" ? "确 定" : "通 过" }}</el-button |
| | | > |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- 数据查看详情 --> |
| | | <el-dialog title="查看详情" :visible.sync="dialogVisible" width="70%" :before-close="handleClose3"> |
| | | <el-table v-if="type == '单根垂直燃烧' || type == '松套管'" :data="viewDetailsList" height="400px" border |
| | | style="width: 100%"> |
| | | <el-table-column type="index" label="序号" width="80px"></el-table-column> |
| | | <el-table-column prop="entrustCode" label="委托单号"></el-table-column> |
| | | <el-table-column prop="sampleCode" label="样品编号"></el-table-column> |
| | | <el-dialog |
| | | title="查看详情" |
| | | :visible.sync="dialogVisible" |
| | | width="70%" |
| | | :before-close="handleClose3" |
| | | > |
| | | <el-table |
| | | v-if="type == '单根垂直燃烧' || type == '松套管'" |
| | | :data="viewDetailsList" |
| | | height="400px" |
| | | border |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | type="index" |
| | | label="序号" |
| | | width="80px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="entrustCode" |
| | | label="委托单号" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="sampleCode" |
| | | label="样品编号" |
| | | ></el-table-column> |
| | | <el-table-column prop="color" label="套管"></el-table-column> |
| | | <!-- <el-table-column prop="inspectionItem" label="检验项"></el-table-column> --> |
| | | <el-table-column prop="insValue" label="检验结果"></el-table-column> |
| | | </el-table> |
| | | |
| | | <el-table v-if="type == '抗拉强度'" :data="viewDetailsList" height="400px" border style="width: 100%"> |
| | | <el-table-column type="index" label="序号" width="80px"></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="检验项"></el-table-column> |
| | | <el-table-column prop="inspectionItemSubclass" label="检验子项"></el-table-column> |
| | | <el-table |
| | | v-if="type == '抗拉强度'" |
| | | :data="viewDetailsList" |
| | | height="400px" |
| | | border |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | type="index" |
| | | label="序号" |
| | | width="80px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItem" |
| | | label="检验项" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItemSubclass" |
| | | label="检验子项" |
| | | ></el-table-column> |
| | | <el-table-column prop="width" label="宽度"></el-table-column> |
| | | <el-table-column prop="thickness" label="厚度"></el-table-column> |
| | | <el-table-column prop="testValue" label="检验值"></el-table-column> |
| | | </el-table> |
| | | |
| | | <el-table v-if="type == '断裂伸长率'" :data="viewDetailsList" height="400px" border style="width: 100%"> |
| | | <el-table-column type="index" label="序号" width="80px"></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="检验项"></el-table-column> |
| | | <el-table-column prop="inspectionItemSubclass" label="检验子项"></el-table-column> |
| | | <el-table-column v-for="(v, i) in tableHeader" :key="i" :prop="`testValue${i}`" |
| | | :label="`检验值${i + 1}`"></el-table-column> |
| | | <el-table |
| | | v-if="type == '断裂伸长率'" |
| | | :data="viewDetailsList" |
| | | height="400px" |
| | | border |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | type="index" |
| | | label="序号" |
| | | width="80px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItem" |
| | | label="检验项" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItemSubclass" |
| | | label="检验子项" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | v-for="(v, i) in tableHeader" |
| | | :key="i" |
| | | :prop="`testValue${i}`" |
| | | :label="`检验值${i + 1}`" |
| | | ></el-table-column> |
| | | </el-table> |
| | | </el-dialog> |
| | | |
| | | <!-- 导出已检数据 --> |
| | | <el-dialog title="选择日期" :visible.sync="dialogVisible1" width="30%" :before-close="handleClose4"> |
| | | <el-dialog |
| | | title="选择日期" |
| | | :visible.sync="dialogVisible1" |
| | | width="30%" |
| | | :before-close="handleClose4" |
| | | > |
| | | <span>下单日期: </span> |
| | | <el-date-picker v-model="exportCheckedDate" type="daterange" size="small" value-format="yyyy-MM-dd" |
| | | range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> |
| | | <el-date-picker |
| | | v-model="exportCheckedDate" |
| | | type="daterange" |
| | | size="small" |
| | | value-format="yyyy-MM-dd" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | > |
| | | </el-date-picker> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="handleClose4">取 消</el-button> |
| | |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | <div style="width: 100%; height: 100%" v-if="active > 0"> |
| | | <Add :active="active" :currentId="currentId" v-if="active < 4" :examine="examine" /> |
| | | </div> |
| | | <el-dialog title="标签打印" :visible.sync="printDialogVisible" width="40%" top="5vh"> |
| | | <div style="width: 100%; height: 400px; overflow-y: auto" v-loading="loadPint"> |
| | | <!-- <div style="width: 100%; height: 100%" v-if="active > 0"> |
| | | <Add |
| | | :active="active" |
| | | :currentId="currentId" |
| | | v-if="active < 4" |
| | | :examine="examine" |
| | | /> |
| | | </div> --> |
| | | <el-dialog |
| | | title="标签打印" |
| | | :visible.sync="printDialogVisible" |
| | | width="40%" |
| | | top="5vh" |
| | | > |
| | | <div |
| | | style="width: 100%; height: 400px; overflow-y: auto" |
| | | v-loading="loadPint" |
| | | > |
| | | <div class="dia_body"> |
| | | <el-checkbox style="margin: 10px 5px" :indeterminate="isIndeterminate" v-model="checkAll" |
| | | @change="handleCheckAllChange">全选</el-checkbox> |
| | | <el-checkbox-group @change="changePrintCode()" v-model="checkIndexList"> |
| | | <el-card class="box-card" v-for="(item, i) in qrData" :key="i + 'wwwww'" |
| | | style="margin-bottom: 15px; font-size: 16px !important"> |
| | | <el-checkbox :label="i" :key="i" style="position: relative; top: -20px; left: 5px"><br /></el-checkbox> |
| | | <el-checkbox |
| | | style="margin: 10px 5px" |
| | | :indeterminate="isIndeterminate" |
| | | v-model="checkAll" |
| | | @change="handleCheckAllChange" |
| | | >全选</el-checkbox |
| | | > |
| | | <el-checkbox-group |
| | | @change="changePrintCode()" |
| | | v-model="checkIndexList" |
| | | > |
| | | <el-card |
| | | class="box-card" |
| | | v-for="(item, i) in qrData" |
| | | :key="i + 'wwwww'" |
| | | style="margin-bottom: 15px; font-size: 16px !important" |
| | | > |
| | | <el-checkbox |
| | | :label="i" |
| | | :key="i" |
| | | style="position: relative; top: -10px; left: 5px" |
| | | ><br |
| | | /></el-checkbox> |
| | | <div> |
| | | <el-row style="font-size: 14px; padding-left: 20px"> |
| | | <el-col style="font-weight: bold">{{ item.pName }}</el-col> |
| | |
| | | <div style="display: flex"> |
| | | <div> |
| | | <el-col :span="8" :offset="4"> |
| | | <vueQr :text="'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' + |
| | | item.id + |
| | | '&type=sample' |
| | | " :size="140" :margin="2"></vueQr> |
| | | <vueQr |
| | | :text=" |
| | | 'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' + |
| | | item.id + |
| | | '&type=sample' |
| | | " |
| | | :size="140" |
| | | :margin="2" |
| | | ></vueQr> |
| | | </el-col> |
| | | </div> |
| | | <div style="margin-left: 50px; width: 100%"> |
| | | <el-row> |
| | | <el-col style=" |
| | | <el-col |
| | | style=" |
| | | font-weight: bold; |
| | | text-align: left; |
| | | font-size: 14px; |
| | | "><span>样品编号: </span>{{ item.sampleCode }}</el-col> |
| | | " |
| | | ><span>样品编号: </span |
| | | >{{ item.sampleCode }}</el-col |
| | | > |
| | | </el-row> |
| | | <el-row style="margin-top: 1px; font-size: 14px"> |
| | | <el-col style="font-weight: bold; text-align: left"><span>委托单号: </span>{{ item.code |
| | | }}</el-col> |
| | | <el-col style="font-weight: bold; text-align: left" |
| | | ><span>委托单号: </span>{{ item.code }}</el-col |
| | | > |
| | | </el-row> |
| | | <el-row style="margin-top: 1px; font-size: 14px"> |
| | | <el-col style="font-weight: bold; text-align: left"><span>规格型号: </span>{{ item.model |
| | | }}</el-col> |
| | | <el-col style="font-weight: bold; text-align: left" |
| | | ><span>规格型号: </span>{{ item.model }}</el-col |
| | | > |
| | | </el-row> |
| | | <el-row style="margin-top: 1px; font-size: 14px"> |
| | | <el-col style="font-weight: bold; text-align: left"><span>样品名称: </span>{{ item.sample |
| | | }}</el-col> |
| | | <el-col style="font-weight: bold; text-align: left" |
| | | ><span>样品名称: </span |
| | | >{{ item.sample }}</el-col |
| | | > |
| | | </el-row> |
| | | <el-row style="margin-top: 1px; font-size: 14px" class="ellipsis-multiline"> |
| | | <el-col style="font-weight: bold; text-align: left"><span>检测项目: </span>{{ item.item |
| | | }}</el-col> |
| | | <el-row |
| | | style="margin-top: 1px; font-size: 14px" |
| | | class="ellipsis-multiline" |
| | | > |
| | | <el-col style="font-weight: bold; text-align: left" |
| | | ><span>检测项目: </span>{{ item.item }}</el-col |
| | | > |
| | | </el-row> |
| | | <el-row style="margin-top: 2px; font-size: 14px"> |
| | | <el-col style=" |
| | | <el-col |
| | | style=" |
| | | font-weight: bold; |
| | | display: flex; |
| | | align-items: center; |
| | | "><span>样品状态: </span><el-radio-group :value="item.insState" |
| | | style="margin-top: 7px; margin-left: 4px" disabled> |
| | | <el-radio :label="0" style="font-weight: bold; margin-right: 7px">待检</el-radio> |
| | | <el-radio :label="1" style="font-weight: bold; margin-right: 7px">在检</el-radio> |
| | | <el-radio :label="2" style="font-weight: bold; margin-right: 7px">已检</el-radio> |
| | | </el-radio-group><el-radio :label="1" style="font-weight: bold; margin-top: 7px" |
| | | v-model="item.isLeave" disabled>留样</el-radio></el-col> |
| | | " |
| | | ><span>样品状态: </span |
| | | ><el-radio-group |
| | | :value="item.insState" |
| | | style="margin-top: 7px; margin-left: 4px" |
| | | disabled |
| | | > |
| | | <el-radio |
| | | :label="0" |
| | | style="font-weight: bold; margin-right: 7px" |
| | | >待检</el-radio |
| | | > |
| | | <el-radio |
| | | :label="1" |
| | | style="font-weight: bold; margin-right: 7px" |
| | | >在检</el-radio |
| | | > |
| | | <el-radio |
| | | :label="2" |
| | | style="font-weight: bold; margin-right: 7px" |
| | | >已检</el-radio |
| | | > </el-radio-group |
| | | ><el-radio |
| | | :label="1" |
| | | style="font-weight: bold; margin-top: 7px" |
| | | v-model="item.isLeave" |
| | | disabled |
| | | >留样</el-radio |
| | | ></el-col |
| | | > |
| | | </el-row> |
| | | </div> |
| | | </div> |
| | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | | <el-button @click="printDialogVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="submitPrint" :loading="printLoading">打 印</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="submitPrint" |
| | | :loading="printLoading" |
| | | >打 印</el-button |
| | | > |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <div class="el-dialog__body" style=" |
| | | <div |
| | | class="el-dialog__body" |
| | | style=" |
| | | overflow-y: auto; |
| | | margin-top: 0; |
| | | position: fixed; |
| | | top: 999px; |
| | | z-index: 99999; |
| | | display: none; |
| | | "> |
| | | " |
| | | > |
| | | <div id="printMOrder" class="printMOrder" ref="printMOrder"> |
| | | <el-card class="box-card" v-for="(item, i) in checkDataList" :key="i + 'uuuuu'" style=" |
| | | <el-card |
| | | class="box-card" |
| | | v-for="(item, i) in checkDataList" |
| | | :key="i + 'uuuuu'" |
| | | style=" |
| | | font-size: 0.2cm !important; |
| | | page-break-after: always; |
| | | color: #000; |
| | | box-shadow: none; |
| | | margin: 0 !important; |
| | | padding: 0 !important; |
| | | "> |
| | | " |
| | | > |
| | | <div style="display: flex"> |
| | | <div> |
| | | <el-col :span="10" :offset="2"> |
| | | <vueQr :text="'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' + |
| | | item.id + |
| | | '&type=sample' |
| | | " :size="60" :margin="2"></vueQr> |
| | | <vueQr |
| | | :text=" |
| | | 'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' + |
| | | item.id + |
| | | '&type=sample' |
| | | " |
| | | :size="60" |
| | | :margin="2" |
| | | ></vueQr> |
| | | </el-col> |
| | | </div> |
| | | <div style="margin-left: 0.32cm; line-height: 0.22cm"> |
| | | <el-row> |
| | | <el-col style="font-size: 0.2cm; width: 4cm" class="single-line-ellipsis"><span>样品编号: </span>{{ |
| | | item.sampleCode }}</el-col> |
| | | <el-col |
| | | style="font-size: 0.2cm; width: 4cm" |
| | | class="single-line-ellipsis" |
| | | ><span>样品编号: </span>{{ item.sampleCode }}</el-col |
| | | > |
| | | </el-row> |
| | | <el-row style="font-size: 0.2cm"> |
| | | <el-col><span>委托单号: </span>{{ item.code }}</el-col> |
| | |
| | | <el-col><span>规格型号: </span>{{ item.model }}</el-col> |
| | | </el-row> |
| | | <el-row style="font-size: 0.2cm"> |
| | | <el-col><span>样品名称: </span>{{ item.sample }}</el-col> |
| | | <el-col |
| | | ><span>样品名称: </span>{{ item.sample }}</el-col |
| | | > |
| | | </el-row> |
| | | <el-row style="font-size: 0.2cm; width: 4cm"> |
| | | <el-col class="ellipsis-multiline"><span>检测项目: </span>{{ item.item }}</el-col> |
| | | <el-col class="ellipsis-multiline" |
| | | ><span>检测项目: </span>{{ item.item }}</el-col |
| | | > |
| | | </el-row> |
| | | <el-row style="margin-top: 0.01cm; font-size: 0.2cm"> |
| | | <el-col style="display: flex; align-items: center"><span>样品状态: </span> |
| | | <span style="white-space: nowrap"><span v-if="item.insState == 0">√</span><span class="scor" |
| | | v-if="item.insState != 0"></span>待检 |
| | | <span v-if="item.insState == 1">√</span><span class="scor" v-if="item.insState != 1"></span>在检 |
| | | <span v-if="item.insState == 2">√</span><span class="scor" v-if="item.insState != 2"></span>已检 |
| | | <span v-if="item.isLeave == 1">√</span><span class="scor" |
| | | v-if="item.isLeave != 1"></span>留样</span> |
| | | <el-col style="display: flex; align-items: center" |
| | | ><span>样品状态: </span> |
| | | <span style="white-space: nowrap" |
| | | ><span v-if="item.insState == 0">√</span |
| | | ><span class="scor" v-if="item.insState != 0"></span>待检 |
| | | <span v-if="item.insState == 1">√</span |
| | | ><span class="scor" v-if="item.insState != 1"></span>在检 |
| | | <span v-if="item.insState == 2">√</span |
| | | ><span class="scor" v-if="item.insState != 2"></span>已检 |
| | | <span v-if="item.isLeave == 1">√</span |
| | | ><span class="scor" v-if="item.isLeave != 1"></span |
| | | >留样</span |
| | | > |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import { |
| | | selectInsOrderParameter, |
| | | labelPrinting, |
| | | exportChecked, |
| | | selectSampleAndProductByOrderId, |
| | | hasSendUrgentOrder, |
| | | delCustomById, |
| | | upCustom, |
| | |
| | | import getLodop from "@/utils/lodop"; |
| | | import Add from "./add.vue"; |
| | | import { mapGetters } from "vuex"; |
| | | import LimsTable from "../../../components/Table/lims-table.vue"; |
| | | export default { |
| | | components: { |
| | | limsTable, |
| | | Add, |
| | | vueQr, |
| | | LimsTable, |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permissions"]), |
| | |
| | | { |
| | | name: "数据查看", |
| | | type: "text", |
| | | clickFun: (row) => { }, |
| | | clickFun: (row) => {}, |
| | | disabled: (row) => { |
| | | return row.state != 1 && row.state != 4; |
| | | }, |
| | | clickFun: (row) => { |
| | | this.handleDataLook(row); |
| | | }, |
| | | }, |
| | | { |
| | | name: "报告下载", |
| | | type: "text", |
| | | clickFun: (row) => { }, |
| | | clickFun: (row) => {}, |
| | | disabled: (row, index) => { |
| | | return row.state != 4 || row.isRatify != 1; |
| | | }, |
| | | }, |
| | | { |
| | | name: "审核", |
| | | type: "text", |
| | | clickFun: (row) => { }, |
| | | clickFun: (row) => {}, |
| | | disabled: (row, index) => { |
| | | return row.state != 0; |
| | | }, |
| | | }, |
| | | { |
| | | name: "撤销", |
| | | type: "text", |
| | | clickFun: (row) => { }, |
| | | clickFun: (row) => {}, |
| | | disabled: (row, index) => { |
| | | return row.state != 1 && row.state != 0; |
| | | }, |
| | | }, |
| | | { |
| | | name: "撤销审核", |
| | | type: "text", |
| | | clickFun: (row) => { }, |
| | | clickFun: (row) => {}, |
| | | disabled: (row, index) => { |
| | | return ( |
| | | (row.state != 1 && row.state != 0) || |
| | | this.tabIndex != 1 || |
| | | row.isRevocation != 1 |
| | | ); |
| | | }, |
| | | }, |
| | | { |
| | | name: "分配", |
| | | type: "text", |
| | | clickFun: (row) => { }, |
| | | clickFun: (row) => {}, |
| | | disabled: (row, index) => { |
| | | return ( |
| | | row.state != 1 || |
| | | (row.entrustCode != null && |
| | | Number(row.assign) > 0 && |
| | | row.inspectId != null) |
| | | ); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | dataLookTableLoading: false, |
| | | dataLookcolumn: [ |
| | | { |
| | | label: "委托编号", |
| | | prop: "entrustCode", |
| | | minWidth: "160px", |
| | | width: "160px", |
| | | }, |
| | | { |
| | | label: "样品编号", |
| | | prop: "sampleCode", |
| | | minWidth: "160px", |
| | | width: "160px", |
| | | }, |
| | | { |
| | | label: "管套色标", |
| | | prop: "bushColor", |
| | | minWidth: "160px", |
| | | width: "160px", |
| | | }, |
| | | { |
| | | label: "光纤带编号", |
| | | prop: "code", |
| | | minWidth: "160px", |
| | | width: "160px", |
| | | }, |
| | | { |
| | | label: "光纤色标", |
| | | prop: "color", |
| | | minWidth: "160px", |
| | | width: "160px", |
| | | }, |
| | | { |
| | | label: "检验项", |
| | | prop: "inspectionItem", |
| | | minWidth: "120px", |
| | | width: "120px", |
| | | }, |
| | | { |
| | | label: "检验子项", |
| | | prop: "inspectionItemSubclass", |
| | | minWidth: "120px", |
| | | width: "120px", |
| | | }, |
| | | { |
| | | label: "检验结果", |
| | | prop: "lastValue", |
| | | minWidth: "120px", |
| | | width: "120px", |
| | | }, |
| | | { |
| | | label: "结果判定", |
| | | prop: "insResult", |
| | | minWidth: "100px", |
| | | width: "100px", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | let index = this.urgencyDictList.findIndex( |
| | | (item) => item.dictValue == params |
| | | ); |
| | | if (index > -1) { |
| | | return this.urgencyDictList[index].dictLabel; |
| | | } else { |
| | | return null; |
| | | } |
| | | }, |
| | | formatType: (params) => { |
| | | let index = this.urgencyDictList.findIndex( |
| | | (item) => item.dictValue == params |
| | | ); |
| | | if (index > -1) { |
| | | return this.urgencyDictList[index].listClass; |
| | | } else { |
| | | return null; |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | | label: "单位", |
| | | prop: "unit", |
| | | minWidth: "120px", |
| | | width: "120px", |
| | | }, |
| | | { |
| | | label: "试验要求", |
| | | prop: "tell", |
| | | minWidth: "120px", |
| | | width: "120px", |
| | | }, |
| | | { |
| | | label: "检验人", |
| | | prop: "checkName", |
| | | minWidth: "120px", |
| | | width: "120px", |
| | | }, |
| | | { |
| | | label: "检验日期", |
| | | prop: "checkTime", |
| | | minWidth: "120px", |
| | | width: "120px", |
| | | }, |
| | | { |
| | | label: "样品名称", |
| | | prop: "sample", |
| | | minWidth: "160px", |
| | | width: "160px", |
| | | }, |
| | | { |
| | | label: "样品型号", |
| | | prop: "model", |
| | | minWidth: "160px", |
| | | width: "160px", |
| | | }, |
| | | { |
| | | label: "试验室", |
| | | prop: "sonLaboratory", |
| | | minWidth: "120px", |
| | | width: "120px", |
| | | }, |
| | | { |
| | | dataType: "action", |
| | | fixed: "right", |
| | | label: "操作", |
| | | operation: [ |
| | | { |
| | | name: "查看", |
| | | type: "text", |
| | | clickFun: (row) => {}, |
| | | showHide: (row) => { |
| | | console.log(row); |
| | | console.log(row.inspectionItem); |
| | | return ( |
| | | row.inspectionItem == "单根垂直燃烧" || |
| | | row.inspectionItem.includes("松套管") || |
| | | row.inspectionItemSubclass.includes("松套管") || |
| | | (row.inspectionItem == "抗拉强度" && |
| | | (row.inspectionItemSubclass == "热老化处理前" || |
| | | row.inspectionItemSubclass == "热老化处理后")) || |
| | | (row.inspectionItem == "断裂伸长率" && |
| | | (row.inspectionItemSubclass == "热老化处理前" || |
| | | row.inspectionItemSubclass == "热老化处理后")) |
| | | ); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | dataLooktableData: [], |
| | | |
| | | //old |
| | | tableHeader: [], |
| | | type: "", |
| | |
| | | // 人员列表 |
| | | personList: [], |
| | | currentTableData: [], |
| | | componentData: { |
| | | entity: { |
| | | entrustCode: null, |
| | | sample: null, |
| | | sampleName: null, |
| | | sampleModel: null, |
| | | sampleCode: null, |
| | | outEntrustCode: null, |
| | | state: 0, |
| | | name: null, |
| | | engineering: null, |
| | | production: null, |
| | | startAndEndTime: [], |
| | | // orderBy: { |
| | | // field: '', |
| | | // order: '' |
| | | // } |
| | | }, |
| | | isIndex: true, |
| | | showSelect: true, |
| | | select: true, |
| | | selectMethod: "selectMethod", |
| | | do: [ |
| | | { |
| | | id: "dataLook", |
| | | font: "数据查看", |
| | | type: "text", |
| | | method: "handleDataLook", |
| | | disabFun: (row, index) => { |
| | | return row.state != 1 && row.state != 4; |
| | | }, |
| | | }, |
| | | { |
| | | id: "download", |
| | | font: "报告下载", |
| | | type: "text", |
| | | method: "download", |
| | | disabFun: (row, index) => { |
| | | return row.state != 4 || row.isRatify != 1; |
| | | }, |
| | | }, |
| | | { |
| | | id: "verify", |
| | | font: "审核", |
| | | type: "text", |
| | | method: "handleVerify", |
| | | disabFun: (row, index) => { |
| | | return row.state != 0; |
| | | }, |
| | | }, |
| | | { |
| | | id: "quash", |
| | | font: "撤销", |
| | | type: "text", |
| | | method: "handlEquash", |
| | | disabFun: (row, index) => { |
| | | return row.state != 1 && row.state != 0; |
| | | }, |
| | | }, |
| | | { |
| | | id: "quashCheck", |
| | | font: "撤销审核", |
| | | type: "text", |
| | | method: "handlEquashCheck", |
| | | disabFun: (row, index) => { |
| | | return ( |
| | | (row.state != 1 && row.state != 0) || |
| | | this.tabIndex != 1 || |
| | | row.isRevocation != 1 |
| | | ); |
| | | }, |
| | | }, |
| | | { |
| | | font: "分配", |
| | | type: "text", |
| | | method: "handleIssued", |
| | | disabFun: (row, index) => { |
| | | return ( |
| | | row.state != 1 || |
| | | (row.entrustCode != null && |
| | | Number(row.assign) > 0 && |
| | | row.inspectId != null) |
| | | ); |
| | | }, |
| | | }, |
| | | ], |
| | | linkEvent: { |
| | | sampleName: { |
| | | method: "selectAllByOne", |
| | | }, |
| | | }, |
| | | tagField: { |
| | | type: { |
| | | select: [], |
| | | }, |
| | | createUser: { |
| | | select: [], |
| | | }, |
| | | orderType: { |
| | | select: [], |
| | | }, |
| | | processing: { |
| | | select: [ |
| | | { |
| | | value: 1, |
| | | label: "实验室处理", |
| | | }, |
| | | { |
| | | value: 0, |
| | | label: "委托单位取回", |
| | | }, |
| | | ], |
| | | }, |
| | | isLeave: { |
| | | select: [ |
| | | { |
| | | value: 1, |
| | | label: "留样", |
| | | }, |
| | | { |
| | | value: 0, |
| | | label: "不留样", |
| | | }, |
| | | ], |
| | | }, |
| | | send: { |
| | | select: [ |
| | | { |
| | | value: 1, |
| | | label: "自取", |
| | | }, |
| | | { |
| | | value: 0, |
| | | label: "其他", |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | selectField: {}, |
| | | requiredAdd: [], |
| | | requiredUp: [], |
| | | needSort: ["createTime", "sendTime", "type", "appointed"], |
| | | }, |
| | | // componentData: { |
| | | // entity: { |
| | | // entrustCode: null, |
| | | // sample: null, |
| | | // sampleName: null, |
| | | // sampleModel: null, |
| | | // sampleCode: null, |
| | | // outEntrustCode: null, |
| | | // state: 0, |
| | | // name: null, |
| | | // engineering: null, |
| | | // production: null, |
| | | // startAndEndTime: [], |
| | | // // orderBy: { |
| | | // // field: '', |
| | | // // order: '' |
| | | // // } |
| | | // }, |
| | | // isIndex: true, |
| | | // showSelect: true, |
| | | // select: true, |
| | | // selectMethod: "selectMethod", |
| | | // do: [ |
| | | // { |
| | | // id: "dataLook", |
| | | // font: "数据查看", |
| | | // type: "text", |
| | | // method: "handleDataLook", |
| | | // disabFun: (row, index) => { |
| | | // return row.state != 1 && row.state != 4; |
| | | // }, |
| | | // }, |
| | | // { |
| | | // id: "download", |
| | | // font: "报告下载", |
| | | // type: "text", |
| | | // method: "download", |
| | | // disabFun: (row, index) => { |
| | | // return row.state != 4 || row.isRatify != 1; |
| | | // }, |
| | | // }, |
| | | // { |
| | | // id: "verify", |
| | | // font: "审核", |
| | | // type: "text", |
| | | // method: "handleVerify", |
| | | // disabFun: (row, index) => { |
| | | // return row.state != 0; |
| | | // }, |
| | | // }, |
| | | // { |
| | | // id: "quash", |
| | | // font: "撤销", |
| | | // type: "text", |
| | | // method: "handlEquash", |
| | | // disabFun: (row, index) => { |
| | | // return row.state != 1 && row.state != 0; |
| | | // }, |
| | | // }, |
| | | // { |
| | | // id: "quashCheck", |
| | | // font: "撤销审核", |
| | | // type: "text", |
| | | // method: "handlEquashCheck", |
| | | // disabFun: (row, index) => { |
| | | // return ( |
| | | // (row.state != 1 && row.state != 0) || |
| | | // this.tabIndex != 1 || |
| | | // row.isRevocation != 1 |
| | | // ); |
| | | // }, |
| | | // }, |
| | | // { |
| | | // font: "分配", |
| | | // type: "text", |
| | | // method: "handleIssued", |
| | | // disabFun: (row, index) => { |
| | | // return ( |
| | | // row.state != 1 || |
| | | // (row.entrustCode != null && |
| | | // Number(row.assign) > 0 && |
| | | // row.inspectId != null) |
| | | // ); |
| | | // }, |
| | | // }, |
| | | // ], |
| | | // linkEvent: { |
| | | // sampleName: { |
| | | // method: "selectAllByOne", |
| | | // }, |
| | | // }, |
| | | // tagField: { |
| | | // type: { |
| | | // select: [], |
| | | // }, |
| | | // createUser: { |
| | | // select: [], |
| | | // }, |
| | | // orderType: { |
| | | // select: [], |
| | | // }, |
| | | // processing: { |
| | | // select: [ |
| | | // { |
| | | // value: 1, |
| | | // label: "实验室处理", |
| | | // }, |
| | | // { |
| | | // value: 0, |
| | | // label: "委托单位取回", |
| | | // }, |
| | | // ], |
| | | // }, |
| | | // isLeave: { |
| | | // select: [ |
| | | // { |
| | | // value: 1, |
| | | // label: "留样", |
| | | // }, |
| | | // { |
| | | // value: 0, |
| | | // label: "不留样", |
| | | // }, |
| | | // ], |
| | | // }, |
| | | // send: { |
| | | // select: [ |
| | | // { |
| | | // value: 1, |
| | | // label: "自取", |
| | | // }, |
| | | // { |
| | | // value: 0, |
| | | // label: "其他", |
| | | // }, |
| | | // ], |
| | | // }, |
| | | // }, |
| | | // selectField: {}, |
| | | // requiredAdd: [], |
| | | // requiredUp: [], |
| | | // needSort: ["createTime", "sendTime", "type", "appointed"], |
| | | // }, |
| | | orderId: "", |
| | | revocationInsProductIds: "", |
| | | componentDataDataLook: { |
| | | isPage: false, |
| | | entity: { |
| | | id: 0, |
| | | orderBy: { |
| | | field: "sampleCode", |
| | | order: "asc", |
| | | }, |
| | | }, |
| | | isIndex: false, |
| | | showSelect: false, |
| | | select: false, |
| | | do: [ |
| | | { |
| | | id: "", |
| | | font: "查看", |
| | | type: "text", |
| | | method: "viewDetails", |
| | | showFun: (row, index) => { |
| | | return ( |
| | | row.inspectionItem == "单根垂直燃烧" || |
| | | row.inspectionItem.includes("松套管") || |
| | | row.inspectionItemSubclass.includes("松套管") || |
| | | (row.inspectionItem == "抗拉强度" && |
| | | (row.inspectionItemSubclass == "热老化处理前" || |
| | | row.inspectionItemSubclass == "热老化处理后")) || |
| | | (row.inspectionItem == "断裂伸长率" && |
| | | (row.inspectionItemSubclass == "热老化处理前" || |
| | | row.inspectionItemSubclass == "热老化处理后")) |
| | | ); |
| | | }, |
| | | }, |
| | | ], |
| | | tagField: { |
| | | insState: { |
| | | select: [], |
| | | }, |
| | | insResult: { |
| | | select: [ |
| | | { |
| | | value: 1, |
| | | label: "合格", |
| | | type: "success", |
| | | }, |
| | | { |
| | | value: 0, |
| | | label: "不合格", |
| | | type: "danger", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "不判定", |
| | | type: "", |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | selectField: {}, |
| | | spanConfig: { |
| | | rows: [ |
| | | // { |
| | | // name: "entrustCode", |
| | | // index: 0, |
| | | // }, |
| | | // { |
| | | // name: "sampleCode", |
| | | // index: 1, |
| | | // }, |
| | | ], |
| | | }, |
| | | requiredAdd: [], |
| | | requiredUp: [], |
| | | }, |
| | | componentDataDelete: { |
| | | entity: { |
| | | // orderId: '', |
| | | // orderBy: { |
| | | // field: 'sampleCode', |
| | | // order: 'asc' |
| | | // } |
| | | }, |
| | | isPage: false, |
| | | isIndex: false, |
| | | showSelect: true, |
| | | select: true, |
| | | selectMethod: "selectDelete", |
| | | do: [], |
| | | tagField: { |
| | | insState: { |
| | | select: [], |
| | | }, |
| | | insResult: { |
| | | select: [ |
| | | { |
| | | value: 1, |
| | | label: "合格", |
| | | type: "success", |
| | | }, |
| | | { |
| | | value: 0, |
| | | label: "不合格", |
| | | type: "danger", |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | selectField: {}, |
| | | spanConfig: {}, |
| | | requiredAdd: [], |
| | | requiredUp: [], |
| | | }, |
| | | // componentDataDataLook: { |
| | | // isPage: false, |
| | | // entity: { |
| | | // id: 0, |
| | | // orderBy: { |
| | | // field: "sampleCode", |
| | | // order: "asc", |
| | | // }, |
| | | // }, |
| | | // isIndex: false, |
| | | // showSelect: false, |
| | | // select: false, |
| | | // do: [ |
| | | // { |
| | | // id: "", |
| | | // font: "查看", |
| | | // type: "text", |
| | | // method: "viewDetails", |
| | | // showFun: (row, index) => { |
| | | // return ( |
| | | // row.inspectionItem == "单根垂直燃烧" || |
| | | // row.inspectionItem.includes("松套管") || |
| | | // row.inspectionItemSubclass.includes("松套管") || |
| | | // (row.inspectionItem == "抗拉强度" && |
| | | // (row.inspectionItemSubclass == "热老化处理前" || |
| | | // row.inspectionItemSubclass == "热老化处理后")) || |
| | | // (row.inspectionItem == "断裂伸长率" && |
| | | // (row.inspectionItemSubclass == "热老化处理前" || |
| | | // row.inspectionItemSubclass == "热老化处理后")) |
| | | // ); |
| | | // }, |
| | | // }, |
| | | // ], |
| | | // tagField: { |
| | | // insState: { |
| | | // select: [], |
| | | // }, |
| | | // insResult: { |
| | | // select: [ |
| | | // { |
| | | // value: 1, |
| | | // label: "合格", |
| | | // type: "success", |
| | | // }, |
| | | // { |
| | | // value: 0, |
| | | // label: "不合格", |
| | | // type: "danger", |
| | | // }, |
| | | // { |
| | | // value: 3, |
| | | // label: "不判定", |
| | | // type: "", |
| | | // }, |
| | | // ], |
| | | // }, |
| | | // }, |
| | | // selectField: {}, |
| | | // spanConfig: { |
| | | // rows: [ |
| | | // // { |
| | | // // name: "entrustCode", |
| | | // // index: 0, |
| | | // // }, |
| | | // // { |
| | | // // name: "sampleCode", |
| | | // // index: 1, |
| | | // // }, |
| | | // ], |
| | | // }, |
| | | // requiredAdd: [], |
| | | // requiredUp: [], |
| | | // }, |
| | | // componentDataDelete: { |
| | | // entity: { |
| | | // // orderId: '', |
| | | // // orderBy: { |
| | | // // field: 'sampleCode', |
| | | // // order: 'asc' |
| | | // // } |
| | | // }, |
| | | // isPage: false, |
| | | // isIndex: false, |
| | | // showSelect: true, |
| | | // select: true, |
| | | // selectMethod: "selectDelete", |
| | | // do: [], |
| | | // tagField: { |
| | | // insState: { |
| | | // select: [], |
| | | // }, |
| | | // insResult: { |
| | | // select: [ |
| | | // { |
| | | // value: 1, |
| | | // label: "合格", |
| | | // type: "success", |
| | | // }, |
| | | // { |
| | | // value: 0, |
| | | // label: "不合格", |
| | | // type: "danger", |
| | | // }, |
| | | // ], |
| | | // }, |
| | | // }, |
| | | // selectField: {}, |
| | | // spanConfig: {}, |
| | | // requiredAdd: [], |
| | | // requiredUp: [], |
| | | // }, |
| | | deleteDialogVisible: false, |
| | | entityCopy: {}, |
| | | upIndex: 0, |
| | |
| | | more() { |
| | | this.getTableHeight(); |
| | | }, |
| | | printDialogVisible(newVal) { |
| | | if (!newVal) { |
| | | this.checkIndexList = []; |
| | | } |
| | | }, |
| | | }, |
| | | methods: { |
| | | selectionChange(val) { |
| | | console.log(val); |
| | | this.multipleSelection = val; |
| | | }, |
| | | //获取表格高度 |
| | | getTableHeight() { |
| | | const otherHeight = this.more ? 430 : 380; // 其余高度 |
| | |
| | | startTime: this.exportCheckedDate[0], |
| | | endTime: this.exportCheckedDate[1], |
| | | }; |
| | | console.log("data", data); |
| | | this.exportCheckedLoading = true; |
| | | this.dialogVisible1 = false; |
| | | this.$axios |
| | | .post(this.$api.insOrder.exportChecked, data, { |
| | | headers: { |
| | | "Content-Type": "application/json", |
| | | }, |
| | | responseType: "blob", |
| | | }) |
| | | exportChecked(data) |
| | | .then((res) => { |
| | | this.$message.success("导出成功"); |
| | | this.exportCheckedDate = []; |
| | |
| | | link.download = "检验结果.xlsx"; |
| | | document.body.appendChild(link); |
| | | link.click(); |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | }); |
| | | }, |
| | | // 查看详情 |
| | |
| | | } |
| | | }); |
| | | }, |
| | | selectMethod(val) { |
| | | this.multipleSelection = val; |
| | | }, |
| | | getLabelPrinting(selection) { |
| | | this.loadPint = true; |
| | | this.$axios |
| | | .post(this.$api.insOrder.labelPrinting, { |
| | | ids: selection.map((m) => m.id).join(","), |
| | | }) |
| | | labelPrinting({ |
| | | ids: selection.map((m) => m.id).join(","), |
| | | }) |
| | | .then((res) => { |
| | | let arr = res.data; |
| | | arr.forEach((a) => { |
| | | this.loadPint = false; |
| | | let arr1 = []; |
| | | a.insProduct.forEach((b) => { |
| | | arr1.push(b.inspectionItem); |
| | | if (res.code === 200) { |
| | | let arr = res.data; |
| | | arr.forEach((a) => { |
| | | this.loadPint = false; |
| | | let arr1 = []; |
| | | a.insProduct.forEach((b) => { |
| | | arr1.push(b.inspectionItem); |
| | | }); |
| | | a.item = [...new Set(arr1)].join(","); |
| | | }); |
| | | a.item = [...new Set(arr1)].join(","); |
| | | }); |
| | | this.qrData = arr; |
| | | this.qrData = arr; |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | }); |
| | | }, |
| | | //开始标签打印 |
| | |
| | | }, |
| | | // 数据查看 |
| | | handleDataLook(row) { |
| | | this.componentDataDataLook.entity.id = row.id; |
| | | selectSampleAndProductByOrderId({ id: row.id }) |
| | | .then((res) => { |
| | | if (res.code === 200) { |
| | | this.dataLooktableData = res.data; |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | }); |
| | | this.dataDialogVisible = true; |
| | | }, |
| | | // 下载报告 |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.selectTemperatureByProductId + |
| | | "?productId=" + |
| | | tree.id |
| | | "?productId=" + |
| | | tree.id |
| | | ) |
| | | .then((res) => { |
| | | this.loadRecursion(this.treeTableData, tree.id, res.data); |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.selectTemperatureNumberByProductId + |
| | | "?parentId=" + |
| | | tree.parentId + |
| | | "&inspectionItem=" + |
| | | tree.inspectionItemTwo |
| | | "?parentId=" + |
| | | tree.parentId + |
| | | "&inspectionItem=" + |
| | | tree.inspectionItemTwo |
| | | ) |
| | | .then((res) => { |
| | | this.loadRecursion(this.treeTableData, tree.id, res.data); |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.selectProductsBySampleId + |
| | | "?sampleId=" + |
| | | tree.id + |
| | | "&orderId=" + |
| | | this.orderId |
| | | "?sampleId=" + |
| | | tree.id + |
| | | "&orderId=" + |
| | | this.orderId |
| | | ) |
| | | .then((res) => { |
| | | this.treeTableData.forEach((m, index) => { |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.revokeReviewTemperatureByProductId + |
| | | "?productId=" + |
| | | tree.id |
| | | "?productId=" + |
| | | tree.id |
| | | ) |
| | | .then((res) => { |
| | | resolve(res.data); |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.revokeReviewConsistentByProductId + |
| | | "?parentId=" + |
| | | tree.parentId + |
| | | "&inspectionItem=" + |
| | | tree.inspectionItemTwo |
| | | "?parentId=" + |
| | | tree.parentId + |
| | | "&inspectionItem=" + |
| | | tree.inspectionItemTwo |
| | | ) |
| | | .then((res) => { |
| | | resolve(res.data); |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.revokeReviewProduct + |
| | | "?sampleId=" + |
| | | tree.id + |
| | | "&orderId=" + |
| | | this.orderId |
| | | "?sampleId=" + |
| | | tree.id + |
| | | "&orderId=" + |
| | | this.orderId |
| | | ) |
| | | .then((res) => { |
| | | resolve(res.data); |
| | |
| | | margin-bottom: 16px; |
| | | } |
| | | |
| | | .box-card>>>.el-radio__inner { |
| | | .box-card >>> .el-radio__inner { |
| | | border-radius: 2px !important; |
| | | } |
| | | |
| | | .box-card>>>.el-radio__input.is-checked .el-radio__inner::after { |
| | | .box-card >>> .el-radio__input.is-checked .el-radio__inner::after { |
| | | content: ""; |
| | | width: 8px; |
| | | height: 3px; |
| | |
| | | background: none; |
| | | } |
| | | |
| | | >>>.el-radio__label { |
| | | >>> .el-radio__label { |
| | | color: #000 !important; |
| | | } |
| | | |
| | | .el-dialog__body>>>.el-radio__label { |
| | | .el-dialog__body >>> .el-radio__label { |
| | | font-size: 8px; |
| | | } |
| | | |
| | | .el-dialog__body>>>.el-radio__input.is-checked .el-radio__inner::after { |
| | | .el-dialog__body >>> .el-radio__input.is-checked .el-radio__inner::after { |
| | | content: ""; |
| | | width: 4px; |
| | | height: 3px; |
| | |
| | | background: none; |
| | | } |
| | | |
| | | >>>.el-radio__input.is-disabled.is-checked .el-radio__inner { |
| | | >>> .el-radio__input.is-disabled.is-checked .el-radio__inner { |
| | | background: #3a7bfa; |
| | | } |
| | | |
| | | .el-dialog__body>>>.el-radio__input.is-disabled.is-checked .el-radio__inner { |
| | | .el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner { |
| | | background: transparent; |
| | | } |
| | | |
| | | .el-dialog__body>>>.el-radio__inner { |
| | | .el-dialog__body >>> .el-radio__inner { |
| | | width: 8px !important; |
| | | height: 8px !important; |
| | | } |
| | | |
| | | .el-dialog__body>>>.el-radio__label { |
| | | .el-dialog__body >>> .el-radio__label { |
| | | padding-left: 2px !important; |
| | | } |
| | | |
| | | .el-dialog__body>>>.el-card__body { |
| | | .el-dialog__body >>> .el-card__body { |
| | | padding: 0 !important; |
| | | } |
| | | |
| | | .el-dialog__body>>>.el-card { |
| | | .el-dialog__body >>> .el-card { |
| | | border: none; |
| | | } |
| | | |
| | | .el-dialog__body>>>.el-radio__input.is-disabled .el-radio__inner { |
| | | .el-dialog__body >>> .el-radio__input.is-disabled .el-radio__inner { |
| | | border-color: #000 !important; |
| | | } |
| | | |
| | | .el-dialog__body>>>.el-radio__input.is-disabled.is-checked .el-radio__inner { |
| | | .el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner { |
| | | border: none !important; |
| | | } |
| | | |