From 7f9514f20911fbb8046ca03716c2bc9304ec2fa0 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期二, 18 二月 2025 17:43:44 +0800 Subject: [PATCH] 1.原材料报检迁移 2.原材料下单迁移 3.同材料下单迁移 --- src/views/business/materialOrderComponents/materialOrder/dataLookVisible.vue | 0 src/views/business/materialOrderComponents/materialOrder/showInfo.vue | 0 src/views/business/materialOrderComponents/materialOrder/downFileDialog.vue | 0 src/views/business/rawMaterialInspection/index.vue | 52 src/api/business/rawMaterialOrder.js | 136 ++ src/views/business/materialOrderComponents/materialOrder/filesLookVisible.vue | 0 src/router/index.js | 11 src/views/business/materialOrder/index.vue | 1416 ++++++++++------------ src/views/business/materialOrder/copperOrder.vue | 1835 +++++++++++++++++++++++++++++ src/views/business/materialOrder/customsInspection.vue | 317 +--- src/views/business/materialOrderComponents/materialOrder/printDialog.vue | 0 src/views/business/materialOrderComponents/materialOrder/unPassRetestResult.vue | 0 src/views/structural/capabilityAndLaboratory/capability/index.vue | 4 13 files changed, 2,745 insertions(+), 1,026 deletions(-) diff --git a/src/api/business/rawMaterialOrder.js b/src/api/business/rawMaterialOrder.js new file mode 100644 index 0000000..0f6b4ea --- /dev/null +++ b/src/api/business/rawMaterialOrder.js @@ -0,0 +1,136 @@ +import request from '@/utils/request' + +// 鏌ヨ鍘熸潗鏂欎笅鍗�-寰呬笅鍗� +export function getPurchaseOrder(query) { + return request({ + url: '/rawMaterialOrder/getPurchaseOrder', + method: 'get', + params: query + }) +} +// 鏌ヨIFS璁㈠崟-寰呮楠� +export function getIfsByStateOne(query) { + return request({ + url: '/rawMaterialOrder/getIfsByStateOne', + method: 'get', + params: query + }) +} +// 鏌ヨ鍘熸潗鏂欎笅鍗�-宸叉楠� +export function getIfsByOver(query) { + return request({ + url: '/rawMaterialOrder/getIfsByOver', + method: 'get', + params: query + }) +} +// 鏌ヨ鍘熸潗鏂欎笅鍗�-鍏ㄩ儴 +export function getIfsByAll(query) { + return request({ + url: '/rawMaterialOrder/getIfsByAll', + method: 'get', + params: query + }) +} +// 鏌ヨ瀛e害妫�楠� +export function getIfsByQuarter(query) { + return request({ + url: '/rawMaterialOrder/getIfsByQuarter', + method: 'get', + params: query + }) +} +// 鑾峰彇褰撳墠鐧诲綍鐨勫鎴蜂俊鎭� +export function getUserNow(query) { + return request({ + url: '/user/getUserNow', + method: 'get', + }) +} +// 鑾峰彇鏍囧噯鏍戜笅鏍囧噯鏂规硶鏋氫妇 +export function selectStandardMethodEnum(query) { + return request({ + url: '/standardTree/selectStandardMethodEnum', + method: 'get', + }) +} +// 鏌ヨ妫�楠屼笅鍗曞唴瀹硅鎯� +export function getInsOrder(query) { + return request({ + url: '/insOrder/getInsOrder', + method: 'post', + params: query + }) +} +// 鍘熸潗鏂欎笅鍗曠洿鎺ュ厤妫�鍏嶆鎺ュ彛 +export function notificationRawOrder(query) { + return request({ + url: '/rawMaterialOrder/notificationRawOrder', + method: 'get', + params: query + }) +} +// 鏌ヨ +export function selectStandardTreeListByPartNo(query) { + return request({ + url: '/rawMaterialOrder/selectStandardTreeListByPartNo', + method: 'get', + params: query + }) +} +// 鍒犻櫎鍘熸潗鏂欐ā鏉� +export function delRawMaterOrderTemplate(query) { + return request({ + url: '/rawMaterialOrder/delRawMaterOrderTemplate', + method: 'delete', + params: query + }) +} +// 鏍规嵁id鏌ヨ妯℃澘鍐呭 +export function selectRawMaterOrderTemplateById(query) { + return request({ + url: '/rawMaterialOrder/selectRawMaterOrderTemplateById', + method: 'get', + params: query + }) +} +// 鍘熸潗鏂欐柊澧炴ā鏉� +export function addRawMaterOrderTemplate(query) { + return request({ + url: '/rawMaterialOrder/addRawMaterOrderTemplate', + method: 'post', + data: query + }) +} +// 鍏嶆 +export function addExemptionOrder(query) { + return request({ + url: '/rawMaterialOrder/addExemptionOrder', + method: 'post', + data: query + }) +} +// 閫氳繃鏍囧噯鏍戞煡璇㈠搴旂殑妫�楠岄」鐩� +export function selectStandardProductList(query) { + return request({ + url: '/standardTree/selectStandardProductList', + method: 'get', + params: query + }) +} +// 鏍规嵁鏍囧噯鏍戣繘琛屾爣鍑嗘煡璇� +export function selectsStandardMethodByFLSSM(query) { + return request({ + url: '/standardTree/selectsStandardMethodByFLSSM', + method: 'get', + params: query + }) +} +// 鏍规嵁鏍囧噯鏍戣繘琛屾爣鍑嗘煡璇� +export function addInsOrder(query) { + return request({ + url: '/insOrder/addInsOrder', + method: 'post', + data: query + }) +} diff --git a/src/router/index.js b/src/router/index.js index 91a52f6..cc573ff 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -100,12 +100,19 @@ permissions: ['business:order'], children: [ { - // 閾滄潗鏂欎笅鍗� + // 鍘熸潗鏂欎笅鍗� path: 'customsInspection', component: () => import('@/views/business/materialOrder/customsInspection'), name: 'customsInspection', + meta: { title: '鍘熸潗鏂欎笅鍗曡鎯�', activeMenu: '/business/materialOrder' } + }, + { + // 閾滄潗鏂欎笅鍗� + path: 'copperOrder', + component: () => import('@/views/business/materialOrder/copperOrder'), + name: 'copperOrder', meta: { title: '閾滄潗鏂欎笅鍗�', activeMenu: '/business/materialOrder' } - } + }, ] }, { diff --git a/src/views/business/materialOrder/copperOrder.vue b/src/views/business/materialOrder/copperOrder.vue new file mode 100644 index 0000000..3557623 --- /dev/null +++ b/src/views/business/materialOrder/copperOrder.vue @@ -0,0 +1,1835 @@ +<!--閾滃崟涓濅笅鍗�--> +<template> + <div class="app-container"> + <div class="header"> + <div> + <span>閾滃崟涓濅笅鍗�</span> + </div> + <div> + <el-button v-show="active==1 && addObj.orderType === '杩涘巶妫�楠�'" :loading="noNeedCheckLoad" size="small" type="primary" @click="noNeedCheck">鍏嶆</el-button> + <el-button v-show="active==1" :loading="saveLoad" size="small" type="primary" @click="save">鎻愪氦</el-button> + <el-button size="small" @click="goBack"> + <span style="color: #3A7BFA;">杩斿洖</span> + </el-button> + </div> + </div> + <div class="container"> + <div class="search"> + <el-form ref="addObj" :inline="true" :model="addObj" :rules="addObjRules" label-width="90px"> + <el-row> + <el-col :span="6"> + <el-form-item class="addObj-form-item" label="鏍峰搧鍚嶇О:" prop="sample"> + <el-input v-model="addObj.sample" readonly size="small" style="width: 208px"> + <template slot="append"><el-button slot="append" :disabled="active>1" icon="el-icon-search" + @click="selectStandardTree = true"></el-button></template> + </el-input> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item class="addObj-form-item" label="鍒拌揣鏁伴噺:" prop="qtyArrived" required> + <el-input v-model="addObj.qtyArrived" :disabled="active > 1" class="addObj-info" + clearable placeholder="" size="small"></el-input> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item class="addObj-form-item" label="鍗曚綅:" prop="buyUnitMeas"> + <el-input v-model="addObj.buyUnitMeas" :disabled="active > 1" clearable class="addObj-info" size="small"></el-input> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item class="addObj-form-item" label="鎵规鍙�:" prop="updateBatchNo"> + <el-input v-model="addObj.updateBatchNo" :disabled="active > 1" class="addObj-info" clearable size="small"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="6"> + <el-form-item class="addObj-form-item" label="妫�楠岀被鍨�:"> + <el-select v-model="addObj.orderType" clearable disabled size="small" style="width: 100%"> + <el-option v-for="(a, ai) in checkType" :key="ai" :label="a.label" :value="a.value"></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item class="addObj-form-item" label="绾﹀畾鏃堕棿:" prop="appointed"> + <el-date-picker + v-model="addObj.appointed" + :disabled="active > 1" + format="yyyy-MM-dd" + placeholder="閫夋嫨鏃ユ湡" + size="small" + style="width: 100%" + type="date" + value-format="yyyy-MM-dd"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item class="addObj-form-item" label="鏉愭枡鍘傚:" prop="supplierName"> + <el-input v-model="addObj.supplierName" :disabled="active > 1" class="addObj-info" clearable placeholder="" size="small"></el-input> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item class="addObj-form-item" label="鎶芥鏁伴噺:" prop="testQuantity"> + <el-input v-model="addObj.testQuantity" :disabled="active > 1" class="addObj-info" clearable placeholder="" size="small"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="6"> + <el-form-item class="addObj-form-item" label="瑙勬牸鍨嬪彿:" placeholder="璇峰~鍐�" prop="partDetail"> + <el-tooltip :content="addObj.partDetail" :disabled="!addObj.partDetail"> + <el-input v-model="addObj.partDetail" :disabled="active > 1" clearable class="addObj-info" size="small"></el-input> + </el-tooltip> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item class="addObj-form-item" label="鍒拌揣鏃堕棿:" prop="declareDate"> + <el-date-picker + v-model="addObj.declareDate" + :disabled="active > 1" + format="yyyy-MM-dd" + placeholder="閫夋嫨鏃ユ湡" + size="small" + style="width: 100%" + type="date" + value-format="yyyy-MM-dd HH:mm:ss"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item class="addObj-form-item" label="澶囨敞:"> + <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2}" :placeholder="active>1 ? '' : '璇疯緭鍏�'" :readonly="active>1" clearable + size="small" type="textarea"></el-input> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + <div style="display: flex;justify-content: space-between;"> + <div v-if="active==1"> + <el-form :inline="true" :model="addObj1" label-width="90px"> + <el-form-item label="鏍峰搧鍨嬪彿:" style="margin-bottom: 6px"> + <el-select v-model="model" :placeholder="active>1 ? '' : '璇疯緭鍏�'" + allow-create clearable default-first-option filterable + size="small" + @change="changeModel"> + <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="妫�楠屾爣鍑�:"> + <el-select v-model="standardMethodListId" :loading="methodLoad" + :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable size="small" + @change="changeStandardMethodListId" @focus="methodFocus"> + <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> + </el-option> + </el-select> + </el-form-item> + </el-form> + </div> + <div style="margin-top: 3px"> + <el-button v-show="active==1" :disabled="sampleList.length === 2" size="small" type="primary" @click="handleSplitCountNum">鎷嗗垎</el-button> + </div> + </div> + <div style="height: auto;"> + <el-table ref="sampleTable" :data="sampleList" class="el-table sampleTable" highlight-current-row + max-height="400px" tooltip-effect="dark" @selection-change="selectSample" @row-click="rowClick"> + <el-table-column v-if="active==1" :selectable="selectable" type="selection" width="60"></el-table-column> + <el-table-column align="center" label="搴忓彿" type="index" width="65"></el-table-column> + <el-table-column align="center" label="鏍峰搧鍚嶇О" min-width="100" prop="sample"> + <template slot-scope="scope"> + <el-input v-model="scope.row.sample" :readonly="active>1" clearable size="small"></el-input> + </template> + </el-table-column> + <el-table-column align="center" label="鏍峰搧缂栧彿" min-width="140" prop="sampleCode"> + <template slot-scope="scope"> + <el-input v-model="scope.row.sampleCode" :readonly="active>1" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚" + size="small"></el-input> + </template> + </el-table-column> + <el-table-column align="center" label="鏍峰搧鍨嬪彿" min-width="100" prop="model"> + <template slot-scope="scope"> + <el-select v-model="scope.row.model" :disabled="active>1" allow-create default-first-option filterable + placeholder="鏍峰搧鍨嬪彿" size="small" style="width: 100%;" @change="handleChangeModel"> + <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 v-if="!(active>1)" align="center" label="鍨嬪彿鍙傛暟" prop="modelNum" width="130"> + <template slot-scope="scope"> + <el-input v-model="scope.row.modelNum" :disabled="active>1|| scope.$index !== 0" clearable placeholder="闈炲繀濉�" + size="small" + @input="methodChange(scope.row.standardMethodListId, scope.row)"></el-input> + </template> + </el-table-column> + <el-table-column align="center" label="妫�楠屾爣鍑�" min-width="100" prop="standardMethodListId"> + <template slot-scope="scope"> + <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model==null||active>1 || scope.$index !== 0" + :loading="methodLoad" :readonly="active>1" clearable placeholder="妫�楠屾爣鍑�" + size="small" style="width: 100%;" @change="(value)=>methodChange(value, scope.row)" @clear="productList = []" @focus="methodFocus"> + <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 v-if="addObj.mating==1" align="center" label="閰嶅鏍峰搧鍚嶇О" prop="joinName" width="140"> + <template slot-scope="scope"> + <el-input v-model="scope.row.joinName" :autosize="{ minRows: 1, maxRows: 1}" size="small" + type="textarea"></el-input> + </template> + </el-table-column> + <el-table-column v-if="addObj.mating==1" align="center" label="閰嶅鏍峰搧鍨嬪彿" prop="joinModel" width="140"> + <template slot-scope="scope"> + <el-input v-model="scope.row.joinModel" :autosize="{ minRows: 1, maxRows: 1}" size="small" + type="textarea"></el-input> + </template> + </el-table-column> + <el-table-column v-if="addObj.mating==1" align="center" label="閰嶅鏍峰搧鏁伴噺" prop="joinNum" width="140"> + <template slot-scope="scope"> + <el-input-number v-model="scope.row.joinNum" :controls="false" :max="100" :min="1" :precision="0" + size="small" style="width: 80%;"></el-input-number> + </template> + </el-table-column> + <el-table-column align="center" label="寰呮椤规暟閲�" prop="proNum" width="105"></el-table-column> + </el-table> + <el-table ref="productTable" v-loading="getProductLoad" :data="productList" :row-class-name="tableRowClassName" class="el-table" + max-height="400px" style="margin-bottom: 10px;" tooltip-effect="dark" + @select="selectOne" @selection-change="selectProduct" @select-all="handleAll"> + <el-table-column v-if="active==1" :selectable="selectable" type="selection" width="65"></el-table-column> + <el-table-column v-if="PROJECT === '瑁呭鐢电紗'" label="妫�楠岄」鍒嗙被" min-width="140" prop="inspectionItemClass" show-overflow-tooltip></el-table-column> + <el-table-column label="妫�楠岄」" min-width="140" prop="inspectionItem" show-overflow-tooltip> + <template slot="header" slot-scope="scope"> + <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px"> + <span>妫�楠岄」</span> + <el-input + v-if="active==1" + v-model="inspectionItem" + placeholder="璇疯緭鍏�" + size="mini" + @input="searchFilterList"/> + </div> + </template> + </el-table-column> + <el-table-column label="妫�楠岄」瀛愰」" min-width="140" prop="inspectionItemSubclass" + show-overflow-tooltip> + <template slot="header" slot-scope="scope"> + <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px"> + <span>妫�楠岄」瀛愰」</span> + <el-input + v-if="active==1" + v-model="inspectionItemSubclass" + placeholder="璇疯緭鍏�" + size="mini" + @input="searchFilterList"/> + </div> + </template> + </el-table-column> + <el-table-column label="瑕佹眰鍊�" min-width="220px" prop="ask"> + <template slot-scope="scope"> + <el-input v-if="active==1&&isAskOnlyRead&&scope.row.inspectionValueType!='5'" v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="瑕佹眰鍊�" + size="small" type="textarea" + @change="e=>requestChange(e,scope.row,'ask')"></el-input> + <span v-else> + <!-- <template v-if="(scope.row.ask.indexOf('D')>-1 + ||scope.row.ask.indexOf('W')>-1 + ||scope.row.ask.indexOf('X')>-1 + ||scope.row.ask.indexOf('RTS')>-1 + ||scope.row.ask.indexOf('H')>-1 + ||scope.row.ask.indexOf('L')>-1)&&active==1"> + <input class="askRts" v-model="scope.row.rts" /><br />{{ scope.row.ask }} + </template> + <template v-else>{{ scope.row.ask }}</template> --> + <template >{{ scope.row.ask }}</template> + </span> + </template> + </el-table-column> + <el-table-column label="瑕佹眰鎻忚堪" min-width="220px" prop="tell"> + <template slot-scope="scope"> + <el-input v-if="active==1&&isAskOnlyRead" v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="瑕佹眰鎻忚堪" + size="small" type="textarea" + @change="e=>requestChange(e,scope.row,'tell')"></el-input> + <span v-else> + <template >{{ scope.row.tell }}</template> + </span> + </template> + </el-table-column> + <el-table-column label="鏉′欢" min-width="140" prop="radius" show-overflow-tooltip></el-table-column> + <el-table-column label="璇曢獙鏂规硶" min-width="120" prop="methodS" show-overflow-tooltip> + <template slot="header" slot-scope="scope"> + <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px"> + <span>璇曢獙鏂规硶</span> + <el-input + v-if="active==1" + v-model="methodS" + placeholder="璇疯緭鍏�" + size="mini" + @input="searchFilterList"/> + </div> + </template> + </el-table-column> + <el-table-column label="璁¢噺鍗曚綅" prop="unit" show-overflow-tooltip width="100"></el-table-column> + <el-table-column label="鍗曚环" prop="price" show-overflow-tooltip width="100"></el-table-column> + <!-- <el-table-column prop="manDay" label="棰勮鏃堕棿(澶�)" width="120" show-overflow-tooltip></el-table-column> + <el-table-column prop="manHour" label="宸ユ椂绯绘暟" width="100" show-overflow-tooltip></el-table-column> --> + <!-- <el-table-column prop="deviceGroup" label="璁惧缁�" width="120" show-overflow-tooltip></el-table-column> --> + <el-table-column label="鍖洪棿" min-width="120" prop="section" show-overflow-tooltip></el-table-column> + <el-table-column :filter-method="filterHandler" :filters="filters" label="瀛愬疄楠屽" min-width="130" prop="sonLaboratory" + show-overflow-tooltip></el-table-column> + </el-table> + </div> + </div> + <el-dialog :visible.sync="selectStandardTree" title="閫夋嫨鏍峰搧" width="500px"> + <div v-if="selectStandardTree" v-loading="selectStandardTreeLoading" class="body" style="height: 60vh;overflow-y: auto;user-select: none;"> + <el-row> + <el-col :span="24"> + <el-input v-model="search" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" size="small" + style="margin-bottom: 5px;" suffix-icon="el-icon-search" @blur="searchFilter" @clear="searchFilter" + @keyup.enter.native="searchFilter"></el-input> + </el-col> + </el-row> + <el-tree ref="tree" :data="list" :default-expanded-keys="expandedKeys" :filter-node-method="filterNode" + :props="{ children: 'children', label: 'label' }" highlight-current node-key="label" @node-click="handleNodeClick" + @node-expand="nodeOpen" @node-collapse="nodeClose" @dblclick.native="activeStandardTree"> + <div slot-scope="{ node, data }" class="custom-tree-node"> + <el-row> + <el-col :span="24"> + <span><i + :class="`node_i ${data.children != undefined ? (data.code==='[1]'?'el-icon-folder-opened':'el-icon-folder') : 'el-icon-tickets'}`"></i> + {{ data.code }} {{ data.label }}</span> + </el-col> + </el-row> + </div> + </el-tree> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="selectStandardTree = false">鍙� 娑�</el-button> + <el-button type="primary" @click="activeStandardTree">纭� 瀹�</el-button> + </span> + </el-dialog> + <!--鐗规畩鍊煎鐞嗘--> + <el-dialog :before-close="beforeClose" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" + :visible.sync="bsm1DiaAll" + min-width="400px" + title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨"> + <div v-for="(item, index) in bsm1DiaList" :key="item.id" class="body" style="max-height: 60vh;"> + <span>{{item.inspectionItem}}</span> + <el-row v-if="item.bsm1"> + <el-col :span="24" class="search_thing" style="height: initial;margin: 5px 0;"> + <div class="search_label" style="width: 80px;"><span class="required-span">* </span>閫夐」锛�</div> + <div class="search_input"> + <el-radio-group v-model="item.bsm1Val" v-removeAriaHidden @input="upBsmAll(item)"> + <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" :label="a" style="margin-bottom: 2px;margin-top: 2px;"></el-radio> + </el-radio-group> + </div> + </el-col> + <el-col :span="24" class="search_thing" style="height: initial;margin: 5px 0;"> + <div class="search_label" style="width: 80px;">瑕佹眰鍊硷細</div> + <div class="search_input"> + <el-radio-group v-model="item.bsm1Val" v-removeAriaHidden @input="upBsmAll(item)"> + <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" + :label="a">{{JSON.parse(item.bsmRow.askCopy)[ai]}}</el-radio> + </el-radio-group> + </div> + </el-col> + </el-row> + </div> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button :loading="saveLoad" type="primary" @click="save1">纭� 瀹�</el-button> + </el-row> + </span> + </el-dialog> + <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" + :show-close="false" :visible.sync="bsm3Dia" + title="鍖洪棿鍊煎~鍐�" width="800px"> + <el-table + :data="editTable" + height="80vh" style="width: 100%"> + <!-- inspectionItemList --> + <el-table-column + label="妫�楠岄」" + prop="inspectionItemList" + width="180"> + </el-table-column> + <el-table-column + label="鏍峰搧缂栧彿" + prop="sampleCode" + width="180"> + </el-table-column> + <el-table-column + label="鏍峰搧鍨嬪彿" + prop="model" + width="180"> + </el-table-column> + <el-table-column + label="璇嗗埆绗﹀彿" + prop="symbolItem"> + </el-table-column> + <el-table-column + label="璇嗗埆绗﹀��" + prop="value"> + <template slot-scope="scope"> + <el-input v-model="scope.row.value" placeholder="璇疯緭鍏�" size="small" @input="inputValueHandler(scope.row,scope.$index)"></el-input> + </template> + </el-table-column> + </el-table> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button @click="bsm3Dia=false">鍙� 娑�</el-button> + <el-button :loading="saveLoad" type="primary" @click="save0">纭� 瀹�</el-button> + </el-row> + </span> + </el-dialog> + <el-dialog + :close-on-click-modal="false" + :close-on-press-escape="false" + :show-close="false" + :visible.sync="noNeedCheckDia" + title="鍏嶆鎻愮ず" + width="32%"> + <span>纭鍏嶆褰撳墠妫�楠屽崟锛�</span> + <span slot="footer" class="dialog-footer"> + <el-button :loading="noNeedCheckLoad" type="primary" @click="handleNoNeedCheck">纭� 瀹�</el-button> + </span> + </el-dialog> + </div> +</template> + +<script> +// import ValueTable from '../../tool/value-table.vue' +import Vue from 'vue' + +var validateSixDecimalPositives = (rule, value, callback) => { + if (value == 0 || value == null) { + callback(new Error('璇疯緭鍏ユ纭殑鏁板瓧鎴栧皬鏁�')) + } else if (!/^[0-9]+.?[0-9]*$/.test(value)) { + callback(new Error('璇疯緭鍏ユ暟瀛楁垨灏忔暟')) + } else { + callback() + } +} + +export default { + components: {}, + props: { + currentId: { + type: Number, + default: () => 0 + } + }, + data() { + return { + active: '', + sampleSelectionList: [],//鏍峰搧琛ㄦ牸閫変腑鏁版嵁 + editTable:[], + noNeedCheckLoad: false, // 鍏嶆鎸夐挳loading + template: null, + templates: [], + addObj: { + testQuantity: null, // 鎶芥鏁伴噺 + custom: null, + company: null, + userId: null, + type: '0', // 绱ф�ョ▼搴� + code: null, + remark: null, // 澶囨敞 + mating: 0, + sample: null, // 鏍峰搧鍚嶇О + appointed: '', // 绾﹀畾鏃堕棿 + buyUnitMeas: '', // 鍗曚綅 + updateBatchNo: '', // 鎵规鍙� + partDetail: '', // 瑙勬牸鍨嬪彿 + declareDate: '', // 鍒拌揣鏃堕棿 + factory: null, + laboratory: null, + sampleType: null, + sampleNum: 1, + unit: null, + model: null, + method: null, + phone: null, + processing: 1, + isLeave: 0, + orderType: '杩涘巶妫�楠�', // 妫�楠岀被鍨� + supplierName: '', // 鏉愭枡鍘傚 + qtyArrived: '', // 鍒拌揣鏁伴噺 + }, + sample: { + sampleCode: null, + laboratory: null, + factory: null, + sampleType: null, + sample: null, + model: null, + modelNum: null, + sampleNum: 1, + isLeave: 0, + unit: null + }, + type: [], + selectStandardTree: false, + search: null, + list: [], + selectStandardTreeLoading: false, + selectTree: null, + expandedKeys: [], + sampleList: [], + sampleIds: [], + methodList: [], + addSampleDia: false, + count: 1, + productList: [], + productList0: [], + bsm1DiaList: [], + productIds: [], + productListSelected: [], + getProductLoad: false, + saveLoad: false, + templateDia: false, + templateLoading: false, + templateName: '', + upLoad: false, + units: [], + models: [], + methods: [], + methodLoad: false, + filters: [], + currentMethod: null, + isAskOnlyRead: false, + sampleId: null, + bsmRow: null, + bsm1: false, + bsm1Val: null, + bsm1DiaAll: false, + bsm2: false, + bsm2Val: null, + bsm2Dia: false, + bsm2Val2: [], + bsm2Val3: [], + bsmRow3: null, + bsm3Val: null, + bsm3Dia: false, + // total: 0, + RTS: '', + totalArr: [], + model: null, + standardMethodListId: null, + symbolList:['RTS'], + inspectionItem:null, + inspectionItemSubclass:null, + methodS:null, + isBsm2Val2:false, + isShowInput: false, + temId: '', + selectiveEcho: [], // 妫�楠屼笅鍗曠殑鏃跺�欏嬀閫夋楠岄」鐩�,濡傛灉浣跨敤绛涢�夋彁浜ゆ樉绀烘楠岄」鐩负绌� 鍥炴樉鍒楄〃 + checkType: [], // 妫�楠岀被鍨嬮�夐」鏁版嵁 + addObjRules: { // 琛ㄥ崟鏍¢獙瑙勫垯 + sample: [ + { required: true, message: '璇烽�夋嫨鏍峰搧', trigger: 'change' } + ], + qtyArrived: [ + { validator: validateSixDecimalPositives, trigger: 'blur' } + ], + testQuantity: [ + { required: true, message: '璇峰~鍐欐娊妫�鏁伴噺', trigger: 'blur' } + ], + supplierName: [ + { required: true, message: '璇峰~鍐欐潗鏂欏巶瀹�', trigger: 'blur' } + ], + appointed: [ + { required: true, message: '璇烽�夋嫨绾﹀畾鏃堕棿', trigger: 'change' } + ], + buyUnitMeas: [ + { required: true, message: '璇峰~鍐欏崟浣�', trigger: 'blur' } + ], + updateBatchNo: [ + { required: true, message: '璇峰~鍐欐壒娆″彿', trigger: 'blur' } + ], + partDetail: [ + { required: true, message: '璇峰~鍐欒鏍煎瀷鍙�', trigger: 'blur' } + ], + declareDate: [ + { required: true, message: '璇峰~鍐欏埌璐ф椂闂�', trigger: 'blur' } + ] + }, + noNeedCheckDia: false, + } + }, + watch: { + sampleList() { + this.addObj.method = null + this.productList = [] + }, + productList: { + deep: true, + handler(val) { + if (val && val.length > 0) { + let arr = []; + val.forEach(item => { + if (item.sonLaboratory && !arr.find(a => a.value == item.sonLaboratory)) { + arr.push({ + text: item.sonLaboratory, + value: item.sonLaboratory + }) + } + }) + this.filters = arr + } + } + }, + productListSelected: { + deep: true, + handler(val) { + if(val.length>0){ + for(let i =0 ; i< val.length; i++){ + if(val[i].inspectionItem.includes('鏉惧绠�')){ + this.inspectionItemST = 1 + break; + }else{ + this.inspectionItemST = 0 + } + } + }else{ + this.inspectionItemST = 0 + } + } + }, + sampleList: { + deep: true, + handler(val) { + this.getTotal() + } + }, + 'addObj.sample'(val) { + this.model = null + this.standardMethodListId = null + }, + 'addObj.sampleNum'(val) { + this.model = null + this.standardMethodListId = null + } + }, + mounted() { + this.active = this.$route.query.active + this.selectEnumByCategoryForType() + this.getUserNow() + this.selectStandardTreeList() + this.selectStandardMethods() + this.selectCheckType() // 鏌ヨ妫�楠岀被鍨� + this.getInfo() // 鑾峰彇鏁版嵁 + }, + methods: { + // 鎷嗗垎 + handleSplitCountNum () { + this.sample.joinName = null + this.sample.joinModel = null + this.sample.joinNum = 1 + // 涓ゆ潯鏁版嵁淇濇寔涓�鑷� + this.sample.sample = this.sampleList[0].sample + this.sample.model = this.sampleList[0].model + this.sample.unit = this.sampleList[0].unit + this.sample.modelNum = this.sampleList[0].modelNum + this.sample.standardMethodListId = this.sampleList[0].standardMethodListId + this.sample.insProduct = [] + this.sample.id = this.count + this.sample.childSampleList = [] + this.sample.insulating = null + this.sample.sheath = null + this.sampleList.push(this.HaveJson(this.sample)) + this.sampleList.forEach(item => { + item.quantity = 1 + }) + this.count++ + this.computationalPairing(this.sampleList.length) + }, + noNeedCheck () { + this.$refs['addObj'].validate((valid) => { + if (valid) { + if (!this.sampleList.every(m => m.standardMethodListId)) { + this.$message.error('璇烽�夋嫨妫�楠屾爣鍑�') + return + } + // 妫�楠岀被鍨嬩负杩涘巶妫�楠屾椂鍙�夋嫨鍏嶆锛屼絾涓嶈兘閫夋嫨妫�楠岄」 + const sampleList = this.HaveJson(this.sampleList) + sampleList.forEach(item => { + item.insProduct = this.productList + }) + this.getTotal(sampleList) + let projectNum = this.totalArr.filter(a => a.state == 1).length + if (projectNum!=0){ + this.$message.error('鍏嶆涓嶅彲閫夋嫨妫�楠岄」') + return + } + this.noNeedCheckDia = true + } else { + console.log('error submit!!'); + return false; + } + }); + }, + handleNoNeedCheck () { + const sampleList = this.HaveJson(this.sampleList) + sampleList.forEach(item => { + item.insProduct = this.productList + }) + this.getTotal(sampleList) + let projectNum = this.totalArr.filter(a => a.state == 1).length + if (projectNum!=0){ + this.$message.error('鍏嶆涓嶅彲閫夋嫨妫�楠岄」') + } else { + const pairing = [] + let trees = this.selectTree.split(" - ") + if (trees.length < 3) { + this.$message.error('鏈�夋嫨瀵硅薄') + return + } + this.addObj.factory = trees[0] + this.addObj.laboratory = trees[1] + this.addObj.sampleType = trees[2] + if (trees[3] === undefined || trees[3] === '') { + this.addObj.sample = trees[2] + } else { + this.addObj.sample = trees[3] + } + this.addObj.model = (trees[4] == undefined ? null : trees[4]) + this.noNeedCheckLoad = true + this.$axios.post(this.$api.rawMaterialOrder.addRawCopperOrderExemptionOrder, { + str: JSON.stringify({ + insOrder: this.addObj, + list: JSON.stringify(sampleList.map(a => { + if (a.modelNum) { + // 鏍规嵁x鍙峰垽鏂瀷鍙峰弬鏁颁笌鏍峰搧鍨嬪彿鐨勬嫾鎺ヤ綅缃� + // 渚嬪脳4锛屽氨涓�500ML脳4锛�4脳锛屽氨涓�4脳500ML + const index = a.modelNum.indexOf('脳') + if (index === 0) { + a.model = a.model + a.modelNum + } else if (index === -1) { + a.model = a.model + '-' + a.modelNum + } else { + a.model = a.modelNum + a.model + } + } else { + a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : ('-' + a.modelNum)) + } + a.insProduct = a.insProduct.filter(b=>b.state === 1) + return a + })), + pairing: JSON.stringify(pairing) + }) + }).then(res => { + this.noNeedCheckLoad = false + if (res.code == 201) return + this.$message.success('宸叉彁浜�') + this.$parent.playOrder(0) + }).catch(e=>{ + this.noNeedCheckLoad = false + }) + } + }, + // 鑾峰彇鏁版嵁 + getInfo () { + if (this.active != 1) { + // 鏌ョ湅娴佺▼ + // 璇锋眰鎺ュ彛锛屽洖鏄炬暟鎹� + this.$axios.post(this.$api.insOrder.getInsOrder, { + orderId: this.currentId + }).then(res => { + this.addObj = { + ...res.data.insOrder + } + this.addObj.qtyArrived = res.data.insOrderTemplate.qtyArrived + this.addObj.buyUnitMeas = res.data.insOrderTemplate.buyUnitMeas + this.addObj.updateBatchNo = res.data.insOrderTemplate.updateBatchNo + this.addObj.supplierName = res.data.insOrderTemplate.supplierName + this.addObj.type = String(this.addObj.type) + this.sampleList = this.HaveJson(res.data.sampleProduct); + this.getProNum() + this.addObj.sampleNum = this.sampleList.length + this.$nextTick(() => { + this.$refs.sampleTable.doLayout() + if (this.sampleList.length > 0) { // 鏌ョ湅鏃跺鏋滄湁鏍峰搧榛樿閫変腑绗竴鏉� + this.productList = this.sampleList[0].insProduct + this.$refs.sampleTable.setCurrentRow(this.sampleList[0], true) + this.rowClick(this.sampleList[0]) + } + }) + }) + } + }, + selectCheckType() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "妫�楠岀被鍨�" + }).then(res => { + this.checkType = res.data + }) + }, + //鐗规畩鍊煎~鍐欏鐞� + inputValueHandler(row,index){ + if(row){ + const nextIndex = index+1 + for (let i = nextIndex; i < this.editTable.length; i++) { + const element = this.editTable[i]; + if(element.model==row.model&&row.symbolItem==element.symbolItem){ + this.editTable[i].value = row.value + } + } + } + }, + changeProductList0(){ + this.productList0.forEach(a=>{ + let obj = this.productList.find(m => m.id == a.id) + if(obj){ + a.state = obj.state + a.section = obj.section + a.ask = obj.ask + a.manHour = obj.manHour + a.price = obj.price + a.tell = obj.tell + } + if(a.state == 0&&a.bsmRow){ + a = this.HaveJson(a.bsmRow) + } + }) + }, + searchFilterList () { + const vtw = { + inspectionItem: this.inspectionItem, // 妫�楠岄」 + inspectionItemSubclass: this.inspectionItemSubclass, // 妫�楠岄」瀛愰」 + methodS: this.methodS, // 璇曢獙鏂规硶 + } + const isHaveValue = Object.values(vtw).some(item => { + return item + }) + this.changeProductList0() + if (isHaveValue) { + for(let i in vtw) { + if (vtw[i]) { + this.productList = this.productList0.filter((item) => { + return item[i] && item[i].includes(vtw[i]) + }) + } + } + this.$nextTick(()=>{ + this.productList.forEach(a => { + if (a.state == 1) this.toggleSelection(a) + }) + }) + } else { + // 娌℃湁鏌ヨ鏉′欢鏃舵覆鏌撴墍鏈夋暟鎹� + this.productList = this.productList0 + this.$nextTick(()=>{ + this.productList.forEach(a => { + if (a.state == 1) this.toggleSelection(a) + }) + }) + } + }, + selectEnumByCategoryForType() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "绱ф�ョ▼搴�" + }).then(res => { + this.type = res.data + }) + }, + containsValue(str) { + if(str){ + let symbolItem = '' + this.symbolList.some(value =>{ + if(str.includes(value)){ + symbolItem = value + return true + } + }) + return symbolItem + } + }, + handleAsk(ask,symbolItem, value) { + try{ + let code = [">", "<", "=", "锛�", "锛�", "鈮�", "鈮�", "卤"]; + let code2 = ['+', '*', '/', '-'] + if (ask.includes('&')) { + // 澶氫釜鏉′欢 + let arr0 = ask.split('&') + let arr1 = [] + arr0.forEach(m => { + let index = code.findIndex(b => m.includes(b)) + if (index > -1) { + let arr = m.split(code[index]).filter(b => !!b) + let num = eval(this.replaceAll(arr[0], symbolItem, value)) + m = code[index] + '' + num + arr1.push(m) + } + }) + return arr1.join('&') + } else if (ask.includes('锝�') || ask.includes('~')) { + let arr0 = [] + if (ask.includes('锝�')) { + arr0 = ask.split('锝�') + } else { + arr0 = ask.split('~') + } + // 澶氫釜鏉′欢 + let arr1 = [] + arr0.forEach(m => { + m = m.replace(symbolItem, value) + const index = code2.findIndex(b => m.includes(b)) + if (index > -1) { + m = eval(m) + } + arr1.push(m) + }) + return arr1.join('锝�') + } else { + // 鍗曚釜鏉′欢 + let index = code.findIndex(b => ask.includes(b)) + if (index > -1) { + let arr = ask.split(code[index]).filter(b => !!b) + let num = eval(this.replaceAll(arr[0], symbolItem, value)) + return code[index] + '' + num + } + } + }catch(e){} + }, + handleTell(tell,symbolItem, value){ + try{ + let num = this.replaceAll(tell, symbolItem, value) + return num + }catch(e){} + }, + replaceAll(str,find,value) { + if (str === undefined) { + return str + } + return str.replaceAll(find, value); + }, + save() { + this.$refs['addObj'].validate((valid) => { + if (valid) { + if (!this.sampleList.every(m => m.standardMethodListId)) { + this.$message.error('璇烽�夋嫨妫�楠屾爣鍑�') + return + } + // if (!this.sampleList.every(m => m.quantity)) { + // this.$message.error('璇烽�夋嫨寰呮椤规暟閲�') + // return + // } + const sampleList = this.HaveJson(this.sampleList) + sampleList.forEach(item => { + item.quantity = 1 + item.insProduct = this.productList + }) + this.getTotal(sampleList) + let projectNum = this.totalArr.filter(a => a.state == 1).length + if(projectNum==0){ + this.$confirm('妫�楠岄」鐩负绌猴紝鏄惁纭鎻愪氦?', "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + this.saveMethod(sampleList) + }).catch(() => {}) + }else{ + let isRTS = this.totalArr.find(a => a.ask != null && this.symbolList.find(b=>a.ask.includes(b)) && a.state == 1) + if (isRTS) { + this.editTable = this.handleData(sampleList,this.containsValue, 0) + this.editTable.forEach(item => { + item.value = item.modelNum + }) + this.bsm3Dia = true; + return + } + this.saveMethod(sampleList) + } + } else { + console.log('error submit!!'); + return false; + } + }); + }, + save0(){ + if(this.editTable.every(m=>m.value)){ + this.sampleList.forEach(item => { + item.quantity = 1 + item.insProduct = this.productList + }) + let sampleList = this.handleData(this.HaveJson(this.sampleList),this.handleAsk,1) + sampleList.forEach(a => { + a.insProduct = a.insProduct.filter(b=>b.state === 1) + }) + this.saveMethod(sampleList) + }else{ + this.$message.error('璇峰~鍐欒瘑鍒鍊�') + } + }, + handleData(sampleList,calBack,type){ + let editTable = [] + sampleList.forEach(item => { + let obj = { + sampleCode:item.sampleCode, + model:item.model, + symbolList:[], + sampleId:item.id, + modelNum:item.modelNum, + } + if (item.insProduct && item.insProduct.length > 0) { + item.insProduct.forEach(a => { + if (a.state == 1) { + if(type==0){ + let str = calBack(a.ask) + str&&obj.symbolList.push({ + symbolItem:str, + inspectionItem:a.inspectionItem, + }) + }else if(type==1){ + let arr = this.editTable.filter(b => b.sampleId == item.id) + for (var i=0;i<arr.length;i++){ + if(a.ask){ + if(a.ask.includes(arr[i].symbolItem)){ + let ask = calBack(a.ask, arr[i].symbolItem,arr[i].value) + if (ask) { + a.ask = ask + } + let tell = this.handleAsk(a.tell, arr[i].symbolItem,arr[i].value) + if (tell) { + a.tell = tell + } + } + }else{ + this.$message.error('瑕佹眰鍊间负绌猴紝闇�瑕佸幓鏍囧噯搴撶淮鎶わ紒') + } + } + } + } + }) + } + // 鍏夌氦甯﹂」鐩� + if (item.bushing && item.bushing.length > 0) { + item.bushing.forEach(a => { + if (a.fiber && a.fiber.length > 0) { + a.fiber.forEach(b => { + if (b.productList && b.productList.length > 0) { + b.productList.forEach(c => { + if (c.state == 1) { + if(type==0){ + let str = calBack(c.ask) + str&&obj.symbolList.push({ + symbolItem:str, + inspectionItem:c.inspectionItem, + }) + }else if(type==1){ + let arr = this.editTable.filter(b => b.sampleId == item.id) + arr.forEach(f => { + if(c.ask.includes(f.symbolItem)){ + let ask = calBack(c.ask, f.symbolItem,f.value) + if (ask) { + c.ask = ask + } + let tell = this.handleTell(c.tell, f.symbolItem,f.value) + if (tell) { + c.tell = tell + } + } + }) + } + } + }) + } + }) + } + if (a.fibers && a.fibers.length > 0) { + a.fibers.forEach(b => { + if (b.productList && b.productList.length > 0) { + b.productList.forEach(c => { + if (c.state == 1) { + if(type==0){ + let str = calBack(c.ask) + str&&obj.symbolList.push({ + symbolItem:str, + inspectionItem:c.inspectionItem, + }) + }else if(type==1){ + // let ask = calBack(c.ask, c.rts) + // if (ask && c.state == 1) { + // c.ask = csk + // } + let arr = this.editTable.filter(b => b.sampleId == item.id) + arr.forEach(f => { + if(c.ask.includes(f.symbolItem)){ + let ask = calBack(c.ask, f.symbolItem,f.value) + if (ask) { + c.ask = ask + } + let tell = this.handleTell(c.tell, f.symbolItem,f.value) + if (tell) { + c.tell = tell + } + } + }) + } + } + }) + } + if (b.fiber && b.fiber.length > 0) { + b.fiber.forEach(c => { + if (c.productList && c.productList.length > 0) { + c.productList.forEach(d => { + if (d.state == 1) { + if(type==0){ + let str = calBack(d.ask) + str&&obj.symbolList.push({ + symbolItem:str, + inspectionItem:d.inspectionItem, + }) + }else if(type==1){ + // let ask = calBack(d.ask, d.rts) + // if (ask && d.state == 1) { + // d.ask = ask + // } + let arr = this.editTable.filter(b => b.sampleId == item.id) + arr.forEach(f => { + if(d.ask.includes(f.symbolItem)){ + let ask = calBack(d.ask, f.symbolItem,f.value) + if (ask) { + d.ask = ask + } + let tell = this.handleTell(d.tell, f.symbolItem,f.value) + if (tell) { + d.tell = tell + } + } + }) + } + } + }) + } + }) + } + }) + } + }) + } + if(type==0){ + editTable.push(obj) + } + }) + if(type==0){ + editTable.forEach(a => { + a.symbolList.forEach(b => { + let arr = a.symbolList.filter(c => c.symbolItem == b.symbolItem); + b.inspectionItemList = arr.map(c => c.inspectionItem).join(',') + }) + }) + editTable.forEach(a => { + let mySet = new Set(); + a.symbolList = a.symbolList.filter(b =>{ + let num0 = mySet.size; + mySet.add(b.symbolItem); + let num1 = mySet.size; + if(num0!=num1){ + return true; + }else{ + return false + } + }) + }) + let editTableNew = [] + editTable.forEach(a => { + a.symbolList.forEach(b => { + let obj = { + sampleCode:a.sampleCode, + model:a.model, + symbolItem:b.symbolItem, + sampleId:a.sampleId, + value:null, + inspectionItemList:b.inspectionItemList, + modelNum:a.modelNum, + } + editTableNew.push(obj) + }) + }) + return editTableNew + }else{ + return sampleList + } + }, + saveMethod(sampleList){ + this.saveLoad = true + this.$axios.post(this.$api.insOrder.addRawCopperOrder, { + str: JSON.stringify({ + insOrder: this.addObj, + list: JSON.stringify(sampleList.map(a => { + if (this.PROJECT === '瑁呭鐢电紗') { + if (a.modelNum) { + const index = a.modelNum.indexOf('脳') + if (index === 0) { + a.model = a.model + a.modelNum + } else if (index === -1) { + a.model = a.model + '-' + a.modelNum + } else { + a.model = a.modelNum + a.model + } + } else { + a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : ('-' + a.modelNum)) + } + } else { + a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : ('-' + a.modelNum)) + } + a.insProduct = a.insProduct.filter(b=>b.state === 1) + return a + })), + pairing: JSON.stringify(this.bsm2Val2) + }) + }).then(res => { + this.saveLoad = false + if (res.code == 201) return + this.$message.success('宸叉彁浜�') + this.bsm3Dia = false; + this.$parent.playOrder(0) + }).catch(e=>{ + this.saveLoad = false + }) + }, + getUserNow() { + this.$axios.get(this.$api.user.getUserNow).then(res => { + let selects = res.data + if (selects == null) return + this.addObj.userId = selects.id + this.addObj.company = selects.company + this.addObj.custom = selects.name + this.addObj.code = selects.code + this.addObj.phone = selects.phone + this.addObj.companyId = selects.departId + if(this.active==1){ + this.selectInsOrderTemplate() + } + }) + }, + getProNum() { + this.sampleSelectionList.forEach((m, i) => { + Vue.set(this.sampleSelectionList[i], 'proNum', m.insProduct.filter(a => a.state == 1).length) + }) + this.$refs.sampleTable.doLayout() + }, + searchFilter() { + this.$refs.tree.filter(this.search) + }, + nodeOpen(data, node, el) { + $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened') + }, + nodeClose(data, node, el) { + $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder') + }, + handleNodeClick(val, node, el) { + this.selectTree = '' + this.models = val.children + this.getNodeParent(node) + let flag = false + if (node.level == 3) { + if(node.data.children.length>0){ + node.data.children.forEach(a => { + let key = Object.keys(a) + if(!key.includes('level')) { + flag = true + } + }) + + } + } + this.selectTree = this.selectTree.replace(' - ', '') + if(flag) { + this.selectTree = ' - - ' + this.selectTree + } + let data = this.selectTree.split(' - ') + let data2 = '' + for (let index = data.length - 1; index >= 0; index--) { + data2 += " - " + data[index] + } + this.selectTree = data2.replace(' - ', '') + }, + getNodeParent(val) { + if (val.parent != null) { + if (val.data.children === null) { + this.selectTree += ' - ' + val.label + ' - ' + '' + } else { + this.selectTree += ' - ' + val.label + } + this.getNodeParent(val.parent) + } + }, + selectStandardTreeList() { + this.selectStandardTreeLoading = true + this.$axios.get(this.$api.standardTree.selectStandardTreeList2).then(res => { + this.list = res.data + this.list.forEach(a => { + this.expandedKeys.push(a.label) + }) + this.selectStandardTreeLoading=false + }) + }, + filterNode(value, data) { + if (!value) return true; + return data.label.indexOf(value) !== -1; + }, + activeStandardTree() { + let trees = this.selectTree.split(" - ") + if (trees.length < 3) { + this.$message.error('鏈�夋嫨瀵硅薄') + return + } + this.addObj.factory = trees[0] + this.addObj.laboratory = trees[1] + this.addObj.sampleType = trees[2] + if (trees[3] === undefined || trees[3] === '' || trees[3] === '- ') { + this.addObj.sample = trees[2] + } else { + this.addObj.sample = trees[3] + } + this.addObj.model = (trees[4] == undefined ? null : trees[4]) + this.selectStandardTree = false + this.sampleList = [] + for (var i = 0; i < this.addObj.sampleNum; i++) { + this.sample.joinName = null + this.sample.joinModel = null + this.sample.joinNum = 1 + this.sample.sample = this.addObj.sample + this.sample.model = this.addObj.model + this.sample.unit = this.addObj.unit + this.sample.standardMethodListId = null + this.sample.insProduct = [] + this.sample.id = this.count + this.sample.childSampleList = [] + this.sample.insulating = null + this.sample.sheath = null + this.sampleList.push(this.HaveJson(this.sample)) + this.count++ + } + this.$refs.sampleTable.doLayout() + // this.selectsStandardMethodByFLSSM() + }, + selectsStandardMethodByFLSSM() { + this.methodLoad = true + this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, { + tree: this.selectTree + }).then(res => { + this.methodLoad = false + try { + if (res.data.standardMethodList.length == 0 && this.selectTree.split('-').length == 5) { + let arr = this.selectTree.split('-') + let arr0 = arr.slice(0, arr.length - 1) + let selectTree = arr0.join('-').substring(0, arr0.join('-').length - 1) + this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, { + tree: selectTree + }).then(ress => { + this.methods = ress.data.standardMethodList + }) + } else { + this.methods = res.data.standardMethodList + } + } catch (e) {} + }) + }, + addStandardTree() { + if (this.selectTree == null) return + this.sampleList = [] + this.productList = [] + for (var i = 0; i < this.addObj.sampleNum; i++) { + this.sample.joinName = null + this.sample.joinModel = null + this.sample.joinNum = 1 + this.sample.sample = this.addObj.sample + this.sample.model = this.addObj.model + this.sample.unit = this.addObj.unit + this.sample.standardMethodListId = null + this.sample.insProduct = [] + this.sample.id = parseInt(i+1) + this.sample.childSampleList = [] + this.sample.insulating = null + this.sample.sheath = null + this.sampleList.push(this.HaveJson(this.sample)) + // this.count++ + } + this.computationalPairing(this.sampleList.length) + this.bsm2Val2 = this.HaveJson(this.bsm2Val3) + }, + selectSample(val) { + this.sampleIds = [] + val.forEach(a => { + this.sampleIds.push(a.id) + }) + this.sampleSelectionList = val + }, + selectProduct(val) { + this.productListSelected = val + this.productIds = [] + val.forEach(a => { + this.productIds.push(a.id) + }) + }, + rowClick(row, column, event) { + this.currentMethod = row + let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId) + if (obj && obj.code == '鎶�鏈姹�') { + this.isAskOnlyRead = true + } else { + this.isAskOnlyRead = false + } + this.sampleId = row.id + if (this.active !== 1) { + this.sampleIds = [] + this.sampleSelectionList.forEach(ele=>{ + if(ele.id == row.id){ + this.sampleIds.push(row.id) + } + }) + } + // this.productList = row.insProduct + if (this.productList !== null) { + setTimeout(() => { + this.productList.forEach(a => { + if (a.state == 1) this.toggleSelection(a) + }) + }, 200) + } + }, + toggleSelection(row) { + this.$refs.productTable.toggleRowSelection(row, true); + }, + selectOne(selection, row) { + this.bsm1DiaList = [] + row.state = row.state == 1 ? 0 : 1 + if(row.section === null) { + row.section = "" + } + if (row.sectionCopy === undefined && row.section) { + if (row.section.indexOf('[') > -1) { + this.$set(row, 'sectionCopy', row.section) + } + } + if (row.ask.includes('[')) { + this.$set(row, 'askCopy', row.ask) + } + if (row.tell.includes('[')) { + this.$set(row, 'tellCopy', row.tell) + } + // if (row.manHour.includes('[')) { + // this.$set(row, 'manHourCopy', row.manHour) + // } + // if (row.price.includes('[')) { + // this.$set(row, 'priceCopy', row.price) + // } + let arr = this.productList.filter(m=>m.state==1&&row.sectionCopy&&row.sectionCopy.includes(m.sectionCopy)&&m.ask&&m.sectionCopy.indexOf('[')==-1) + if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.sectionCopy !== undefined && row.state === 1&&arr.length==0) { + if (row.sectionCopy.indexOf('[') > -1) { + row.bsmRow = this.HaveJson(row) + } + row.bsm1 = true + this.bsm1DiaList.push(row) + this.bsm1DiaAll = true + } else if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.state === 0&&arr.length==0) { + row.bsm1 = false + }else if(arr.length>0){ + try{ + row.bsmRow = this.HaveJson(row) + let sectionCopy = arr[0].sectionCopy + let arr0 = JSON.parse(row.sectionCopy) + let arr1 = JSON.parse(row.ask) + // let arr2 = JSON.parse(row.manHour) + // let arr3 = JSON.parse(row.price) + let arr4 = JSON.parse(row.tell) + let index = arr0.indexOf(sectionCopy) + row.sectionCopy = sectionCopy + row.ask = arr1[index] + // row.manHour = arr2[index] + // row.price = arr3[index] + row.tell = arr4[index] + } catch(e) {} + } + this.sampleList.map(item => { + if (this.sampleIds.indexOf(item.id) > -1) { + item.insProduct.map(m => { + if (m.id == row.id) { + m.state = row.state; + } + return m; + }) + } + return item + }) + this.changeProductList0() + this.currentMethod.insProduct = this.productList0 + this.getProNum() + }, + permute(nums) { + const result = []; + + function backtrack(temp, nums) { + if (temp.length === 2) { + result.push([...temp]); + return; + } + for (let i = 0; i < nums.length; i++) { + if (temp.includes(nums[i])) continue; + // 閬垮厤閲嶅鏁板瓧 + if (temp.length > 0 && nums[i] < temp[temp.length - 1]) continue; // 瑙勫畾椤哄簭锛岄伩鍏嶉噸澶嶇粍鍚� + temp.push(nums[i]); + backtrack(temp, nums); + temp.pop(); + } + } + backtrack([], nums); + return result; + }, + computationalPairing(n) { + const nums = []; + for (let i = 1; i <= n; i++) { + nums.push(i); + } + this.bsm2Val3 = this.HaveJson(this.permute(nums)) + }, + tableRowClassName({row, rowIndex}) { + if (row.state === 0) { + return ''; + } + return 'warning-row'; + }, + selectInsOrderTemplate() { + this.$axios.get(this.$api.insOrder.selectInsOrderTemplate+'?company='+this.addObj.company).then(res => { + if (res.code == 201) return + this.templates = res.data + }) + }, + methodChange(val, row) { + if (val === null || val === '') return + if (this.sampleList.length > 1) { + // 鏈変袱鏉℃牱鍝佹椂锛岀浜屾潯鏍峰搧淇℃伅鍜岀涓�鏉′繚鎸佷竴鑷� + this.sampleList.forEach(item => { + item.standardMethodListId = val + item.modelNum = row.modelNum + }) + } + this.currentMethod = row + let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId) + if (obj && obj.code == '鎶�鏈姹�') { + this.isAskOnlyRead = true + } else { + this.isAskOnlyRead = false + } + this.getProductLoad = true + let selectTreeList = this.selectTree.split(" - ") + this.addObj.model&&(selectTreeList[selectTreeList.length - 1] = this.addObj.model) + this.$axios.post(this.$api.standardTree.selectStandardProductList, { + model: this.addObj.model?this.addObj.model:row.model, + modelNum: row.modelNum, + standardMethodListId: val, + factory: selectTreeList.join(" - "), + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + res.data.forEach(a => { + a.state = 0 + }) + row.insProduct = this.HaveJson(res.data) + this.getProductLoad = false + this.productList = row.insProduct + this.productList0 = JSON.parse(JSON.stringify(this.productList)) + this.$refs.sampleTable.setCurrentRow(row) + setTimeout(() => { + this.productList.forEach(a => { + if (a.state == 1) this.toggleSelection(a) + }) + }, 200) + }) + this.searchTemList() + }, + searchTemList () { + this.temperatureList = [] + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "鐢靛姏娓╁害寰幆妫�楠�" + }).then(res => { + if (res.data.length > 0) { + this.temperatureEngList = res.data + res.data.forEach(item => { + this.temperatureList.push(item.label) + }) + } + }) + }, + changeModel() { + this.sampleList.forEach(a => { + let obj = this.sampleIds.find(b => b == a.id) + if (obj) { + a.model = this.model + } + }) + }, + changeStandardMethodListId() { + this.sampleList.forEach(a => { + let obj = this.sampleIds.find(b => b == a.id) + if (obj) { + a.standardMethodListId = this.standardMethodListId + this.methodChange(this.standardMethodListId, a) + } + }) + }, + methodFocus() { + this.selectsStandardMethodByFLSSM() + }, + handleChangeModel(e) { + this.productList = [] + let num = this.selectTree.split('-').length; + if (num != 5) { + this.selectTree = this.selectTree + ' - ' + e + } else { + let arr = this.selectTree.split('-') + let arr0 = arr.slice(0, arr.length - 1) + this.selectTree = arr0.join('-') + '- ' + e + } + }, + // 瑕佹眰鍊煎彉鍖栨椂 + requestChange(e, row,type) { + //this.currentMethod 褰撳墠鏍峰搧id + this.sampleList.forEach(item=>{ + if(item.id == this.currentMethod.id){ + item.insProduct.forEach(i=>{ + if(i.id == row.id){ + i[type] = e + } + }) + } + }) + }, + selectStandardMethods() { + this.$axios.get(this.$api.standardTree.selectStandardMethodEnum).then(res => { + this.methods = res.data + }) + }, + selectable() { + if (this.active > 1) { + return false + } else { + return true + } + }, + handleAll(e) { + if (e.length > 0) { + this.productList.map(m => { + if(e.find(a=>a.id == m.id)){ + m.state = 1 + } + return m + }) + } else { + this.productList.map(m => { + m.state = 0 + return m + }) + } + this.bsmRow3 = []; + this.bsm1DiaList = [] + this.productList.forEach(p => { + if (p.sectionCopy === undefined && p.section) { + if (p.section.indexOf('[') > -1) { + this.$set(p, 'sectionCopy', p.section) + } + } + if (p.ask.includes('[')) { + this.$set(p, 'askCopy', p.ask) + } + if (p.tell.includes('[')) { + this.$set(p, 'tellCopy', p.tell) + } + // if (p.manHour.includes('[')) { + // this.$set(p, 'manHourCopy', p.manHour) + // } + // if (p.price.includes('[')) { + // this.$set(p, 'priceCopy', p.price) + // } + if (p.bsm === '1' && p.sectionCopy !== '' && p.sectionCopy !== null && p.sectionCopy !== undefined && p.state === 1) { + if (p.sectionCopy.indexOf('[') > -1) { + p.bsmRow = this.HaveJson(p) + } + p.bsm1 = true + this.bsm1DiaList.push(p) + this.bsm1DiaAll = true + } else if (p.bsm === '1' && p.sectionCopy !== '' && p.sectionCopy !== null && p.state === 0) { + p.bsm1 = false + } + }) + if (e.length > 0) { + this.sampleList.map(item => { + if (this.sampleIds.indexOf(item.id) > -1) { + item.insProduct.map(m => { + m.state = 1 + return m; + }) + } + return item + }) + } else { + this.sampleList.map(item => { + if (this.sampleIds.indexOf(item.id) > -1) { + item.insProduct.map(m => { + m.state = 0 + return m; + }) + } + return item + }) + } + this.changeProductList0() + this.currentMethod.insProduct = this.productList0 + this.getProNum() + this.$nextTick(() => { + this.$refs.productTable.doLayout() + }) + }, + filterHandler(value, row, column) { + const property = column['property']; + return row[property] === value; + }, + // 鍏ㄩ�夌壒娈婂�煎鐞嗘閫夋嫨瑕佹眰鍊肩殑鍥炶皟 + upBsmAll (item) { + const i = this.bsm1DiaList.findIndex(obj => obj.id === item.id) + if (i > -1) { + // 鎵惧埌鐩稿簲鐨勬楠岄」璧嬪�� + this.bsm1DiaList[i].bsm1Val = item.bsm1Val + let sections = this.bsm1DiaList[i].bsmRow.sectionCopy && JSON.parse(this.bsm1DiaList[i].bsmRow.sectionCopy); + let asks = this.bsm1DiaList[i].bsmRow.askCopy && JSON.parse(this.bsm1DiaList[i].bsmRow.askCopy); + let tells = this.bsm1DiaList[i].bsmRow.tellCopy && JSON.parse(this.bsm1DiaList[i].bsmRow.tellCopy); + // let manHours = this.bsm1DiaList[i].bsmRow.manHourCopy && JSON.parse(this.bsm1DiaList[i].bsmRow.manHourCopy); + // let prices = this.bsm1DiaList[i].bsmRow.priceCopy && JSON.parse(this.bsm1DiaList[i].bsmRow.priceCopy); + for (var a in sections) { + if (this.bsm1DiaList[i].bsm1Val === sections[a]) { + this.productList.forEach(p => { + // 灏嗛�夋嫨濂界殑瑕佹眰鍊艰祴鍊煎埌鍒楄〃閲� + if (p.id === this.bsm1DiaList[i].bsmRow.id) { + p.section = sections[a] + p.ask = asks[a] + p.tell = tells[a] + // p.manHour = manHours[a] + // p.price = prices[a] + } + }) + break + } + } + } + this.changeProductList0() + this.currentMethod.insProduct = this.productList0 + }, + save1 () { + if (this.bsm1DiaList.length > 0) { + this.bsm1DiaList.forEach(item => { + if (!item.bsm1Val) { + throw this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊') + } + }) + } + this.bsm1DiaAll = false + }, + beforeClose(done) { + if (this.bsm1DiaList.length > 0) { + this.bsm1DiaList.forEach(item => { + if (!item.bsm1Val) { + throw this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊') + } + }) + } + done() + }, + beforeClose0(done) { + if (!this.bsm3Val) { + this.$message.error('RST蹇呴』濉啓') + return + } else { + if (Array.isArray(this.bsmRow3)) { + this.bsmRow3.forEach(item => { + item.rts = this.bsm3Val + }) + } else { + this.bsmRow3.rts = this.bsm3Val + } + } + done() + }, + getTotal() { + this.totalArr = [] + // this.total = 0; + this.sampleList.forEach(item => { + if (item.insProduct && item.insProduct.length > 0) { + item.insProduct.forEach(a => { + this.totalArr.push(a) + }) + } + if (item.bushing && item.bushing.length > 0) { + item.bushing.forEach(a => { + if (a.fiber && a.fiber.length > 0) { + a.fiber.forEach(b => { + if (b.productList && b.productList.length > 0) { + b.productList.forEach(c => { + this.totalArr.push(c) + }) + } + }) + } + if (a.fibers && a.fibers.length > 0) { + a.fibers.forEach(b => { + if (b.productList && b.productList.length > 0) { + b.productList.forEach(c => { + this.totalArr.push(c) + }) + } + if (b.fiber && b.fiber.length > 0) { + b.fiber.forEach(c => { + if (c.productList && c.productList.length > 0) { + c.productList.forEach(d => { + this.totalArr.push(d) + }) + } + }) + } + }) + } + }) + } + }) + let mySet = new Set(); + let arr0 = this.totalArr.filter(item => { + if (item.state == 1) { + let num1 = mySet.size + if (item.manHourGroup === '' || !item.manHourGroup) { + return true + } else { + mySet.add(item.manHourGroup) + let num2 = mySet.size + if (num2 > num1) { + return true + } else { + return false + } + } + } + }) + // arr0.forEach(item => { + // this.total += Number(item.price) + // }) + + }, + goBack () { + const obj = { path: "/business/materialOrder" }; + this.$tab.closeOpenPage(obj); + } + } +} +</script> +<style scoped> +.header { + display: flex; + justify-content: space-between; + margin-bottom: 10px; +} +</style> diff --git a/src/views/business/materialOrder/customsInspection.vue b/src/views/business/materialOrder/customsInspection.vue index 8b85f92..6623b90 100644 --- a/src/views/business/materialOrder/customsInspection.vue +++ b/src/views/business/materialOrder/customsInspection.vue @@ -1,35 +1,35 @@ <template> - <div class="ins_order_add"> + <div class="app-container"> <div> - <el-row class="title"> - <el-col :span="active > 1 && isShowTab ? 5 : 6" style="padding-left: 20px;text-align: left;">閲囪喘璁㈠崟淇℃伅</el-col> - <el-col v-if="active > 1 && isShowTab" :span="4" style="text-align: left;margin-top: 12px"> - <ul class="tab"> + <div class="header"> + <div> + <span>閲囪喘璁㈠崟淇℃伅</span> + <ul class="tab" v-if="active > 1 && isShowTab"> <li v-for="(m,i) in dataTitle" :key="i" :class="{active:i===dataIndex}" @click="handleDataTab(m,i)">{{m.label}}</li> </ul> - </el-col> - <el-col :span="active > 1 && isShowTab ? 15 : 18" style="text-align: right;"> - <el-select v-show="active==1" v-model="template" placeholder="涓嬪崟妯℃澘" size="medium" style="margin-right: 10px;" - @change="selectInsOrderTemplateById"> + </div> + <div> + <el-select v-show="active==1" v-model="template" placeholder="涓嬪崟妯℃澘" size="small" style="margin-right: 10px;" + @change="selectInsOrderTemplateByIdList"> <el-option v-for="(a, ai) in templates" :key="ai" :label="a.name" :value="a.id"> <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> </el-option> </el-select> - <el-button v-show="active==1" size="medium" @click="templateDia=true"> + <el-button v-show="active==1" size="small" @click="templateDia=true"> <span style="color: #3A7BFA;">淇濆瓨妯℃澘</span> </el-button> - <el-button v-show="active==1 && addObj.orderType === '杩涘巶妫�楠�'" :loading="noNeedCheckLoad" size="medium" type="primary" @click="noNeedCheck">鍏嶆</el-button> - <el-button v-show="active==1" :loading="saveLoad" size="medium" type="primary" @click="save">鎻愪氦</el-button> - <el-button size="medium" @click="goBack"> + <el-button v-show="active==1 && addObj.orderType === '杩涘巶妫�楠�'" :loading="noNeedCheckLoad" size="small" type="primary" @click="noNeedCheck">鍏嶆</el-button> + <el-button v-show="active==1" :loading="saveLoad" size="small" type="primary" @click="save">鎻愪氦</el-button> + <el-button size="small" @click="goBack"> <span style="color: #3A7BFA;">杩斿洖</span> </el-button> - </el-col> - </el-row> + </div> + </div> </div> <div class="search"> - <el-form ref="addObj" :inline="true" :model="addObj" :rules="addObjRules" label-width="120px"> + <el-form ref="addObj" :inline="true" :model="addObj" :rules="addObjRules" label-width="90px"> <el-row> <el-col :span="6"> <el-form-item class="addObj-form-item" label="閲囪喘璁㈠崟鍙�:"> @@ -85,7 +85,7 @@ <el-row> <el-col :span="6"> <el-form-item class="addObj-form-item" label="鍗曚綅:" prop="buyUnitMeas"> - <el-input v-model="addObj.buyUnitMeas" class="addObj-info" disabled size="small"></el-input> + <el-input v-model="addObj.buyUnitMeas" class="addObj-info" clearable disabled size="small"></el-input> </el-form-item> </el-col> <el-col :span="6"> @@ -98,14 +98,14 @@ <el-col :span="6"> <el-form-item class="addObj-form-item" label="妫�楠岀被鍒�:" prop="orderType"> <el-select v-model="addObj.orderType" :disabled="active>1 || orderType===1" clearable size="small" style="width: 100%"> - <el-option v-for="(a, ai) in checkType" :key="ai" :label="a.label" :value="a.value"></el-option> + <el-option v-for="(a, ai) in dict.type.check_type" :key="ai" :label="a.label" :value="a.value"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="6"> <el-form-item class="addObj-form-item" label="瑙勬牸鍨嬪彿:" placeholder="璇峰~鍐�" prop="partDetail"> <el-tooltip :content="addObj.partDetail" :disabled="!addObj.partDetail"> - <el-input v-model="addObj.partDetail" :disabled="active > 1" class="addObj-info" size="small"></el-input> + <el-input v-model="addObj.partDetail" :disabled="active > 1" clearable class="addObj-info" size="small"></el-input> </el-tooltip> </el-form-item> </el-col> @@ -114,7 +114,7 @@ <el-col :span="6"> <el-form-item class="addObj-form-item" label="绱ф�ョ▼搴�:" placeholder="璇烽�夋嫨" prop="type"> <el-select v-model="addObj.type" :disabled="active>1" class="addObj-info" clearable size="small" style="width: 100%"> - <el-option v-for="(a, ai) in types" :key="ai" :label="a.label" :value="a.value"></el-option> + <el-option v-for="(a, ai) in dict.type.urgency_level" :key="ai" :label="a.label" :value="a.value"></el-option> </el-select> </el-form-item> </el-col> @@ -142,11 +142,10 @@ </el-form> </div> <div> - <div style="display: flex;flex-direction: row;justify-content: space-between;padding: 5px 0;"> - <div v-if="active==1" style="display: flex;background: transparent;"> - <div class="search_thing"> - <div class="search_label">鏍峰搧鍨嬪彿锛�</div> - <div class="search_input"> + <div style="display: flex;justify-content: space-between;"> + <div v-if="active==1"> + <el-form :inline="true" :model="addObj1" label-width="90px"> + <el-form-item label="鏍峰搧鍨嬪彿:" style="margin-bottom: 6px"> <el-select v-model="model" :placeholder="active>1 ? '' : '璇疯緭鍏�'" allow-create clearable default-first-option filterable size="small" @@ -154,29 +153,26 @@ <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_thing"> - <div class="search_label">妫�楠屾爣鍑嗭細</div> - <div class="search_input"> + </el-form-item> + <el-form-item label="妫�楠屾爣鍑�:"> <el-select v-model="standardMethodListId" :loading="methodLoad" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable size="small" @change="changeStandardMethodListId" @focus="methodFocus"> <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> </el-option> </el-select> - </div> - </div> + </el-form-item> + </el-form> </div> - <div class="search_thing"> - <el-button v-show="active==1" :disabled="sampleList.length === 2" size="medium" type="primary" @click="handleSplitCountNum">鎷嗗垎</el-button> + <div style="margin-top: 3px"> + <el-button v-show="active==1" :disabled="sampleList.length === 2" size="small" type="primary" @click="handleSplitCountNum">鎷嗗垎</el-button> </div> </div> <el-table ref="sampleTable" :data="sampleList" - border class="el-table sampleTable" + class="el-table sampleTable" highlight-current-row - max-height="400px" style="margin-top: 10px;" + max-height="400px" tooltip-effect="dark" @selection-change="selectSample" @row-click="rowClick"> <el-table-column v-if="active==1" :selectable="selectable" type="selection" width="65"></el-table-column> @@ -247,7 +243,7 @@ </el-table-column> </el-table> <el-table ref="productTable" v-loading="getProductLoad" :data="productList" - :row-class-name="tableRowClassName" border + :row-class-name="tableRowClassName" class="el-table" max-height="400px" style="margin-bottom: 10px;" @@ -392,7 +388,7 @@ width="32%"> <span>{{ dialogMessage }}</span> <span slot="footer" class="dialog-footer"> - <el-button type="primary" @click="$parent.playOrder(0)">纭� 瀹�</el-button> + <el-button type="primary" @click="this.goBack()">纭� 瀹�</el-button> </span> </el-dialog> <el-dialog @@ -436,26 +432,23 @@ <script> import ValueTable from "@/components/Table/value-table.vue"; +import { + addInsOrder, + addRawMaterOrderTemplate, delRawMaterOrderTemplate, + getInsOrder, + getUserNow, + notificationRawOrder, selectRawMaterOrderTemplateById, selectStandardMethodEnum, selectStandardProductList, + selectStandardTreeListByPartNo +} from "@/api/business/rawMaterialOrder"; export default { name: "CustomsInspection", + dicts: ['check_type', 'urgency_level'], components: { ValueTable, }, props: { - active: { - type: Number, - default: () => 0 - }, - customsInspection: { - type: Object, - default: () => {} - }, currentId: { - type: Number, - default: () => 0 - }, - orderType: { type: Number, default: () => 0 }, @@ -466,6 +459,9 @@ }, data() { return { + customsInspection: {}, + orderType: '', + active: 0, editTable:[], // 鍖洪棿鐗规畩鍊煎~鍐� template: null, saveLoad: false, // 淇濆瓨鎸夐挳loading @@ -513,7 +509,7 @@ { required: true, message: '璇峰~鍐欐娊妫�鏁伴噺', trigger: 'blur' } ], partDetail: [ - { required: true, message: '璇峰~鍐欓浂浠舵弿杩�', trigger: 'blur' } + { required: true, message: '璇峰~鍐欒鏍煎瀷鍙�', trigger: 'blur' } ], orderType: [ { required: true, message: '璇烽�夋嫨妫�楠岀被鍒�', trigger: 'change' } @@ -556,6 +552,7 @@ sampleId: null, // total: 0, totalArr: [], + addObj1: {}, model: null, standardMethodListId: null, inspectionItem:null, @@ -612,7 +609,6 @@ watch: { sampleList() { this.addObj.method = null - // this.productList = [] }, productList: { deep: true, @@ -641,11 +637,13 @@ } }, mounted() { - this.getUserNow() // 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅 - this.selectCheckType() // 鏌ヨ妫�楠岀被鍨� + this.active = this.$route.query.active + this.orderType = this.$route.query.orderType + this.customsInspection = this.$route.query.customsInspection + // this.getUserNowList() // 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅 this.selectStandardMethods() // 鑾峰彇妫�楠屾爣鍑嗕笅鎷夋鏁版嵁 - this.selectEnumByCategoryForType() // 鑾峰彇绱ф�ョ▼搴︿笅鎷夋 this.getInfo() // 鑾峰彇鏁版嵁 + }, methods: { save1 () { @@ -704,7 +702,7 @@ } // 鏌ョ湅 // 璇锋眰鎺ュ彛锛屽洖鏄炬暟鎹� - this.$axios.post(this.$api.insOrder.getInsOrder, { + getInsOrder({ orderId: orderId }).then(res => { if (res.code === 200) { @@ -734,7 +732,7 @@ } }) } else { - this.$axios.get(this.$api.rawMaterialOrder.notificationRawOrder+'?ifsInventoryId='+this.customsInspection.id).then(res => { + notificationRawOrder({ifsInventoryId:this.customsInspection.id}).then(res => { if (res.code === 200) { if (res.data === 1) { this.dialogVisible2 = true @@ -746,7 +744,7 @@ } }) // 鎶ユ娴佺▼ - this.$axios.get(this.$api.materialInspection.selectStandardTreeListByPartNo+'?partNo='+this.customsInspection.partNo).then(res => { + selectStandardTreeListByPartNo({partNo:this.customsInspection.partNo}).then(res => { if (res.code === 200) { this.addObj.sample = res.data.label this.codeLevel = res.data.code @@ -777,9 +775,8 @@ } }, // 鏌ヨ妯℃澘-鍙嶆樉妯℃澘 - selectInsOrderTemplateById(e) { - this.$axios.get(this.$api.materialInspection.selectRawMaterOrderTemplateById + '?id=' + e).then(res => { - if (res.code == 201) return + selectInsOrderTemplateByIdList(e) { + selectRawMaterOrderTemplateById({id: e}).then(res => { let obj = JSON.parse(res.data) this.sampleList = obj.sampleList; this.productList = obj.sampleList[0].insProduct @@ -795,7 +792,7 @@ item.insProduct = this.productList }) this.templateLoading = true; - this.$axios.post(this.$api.materialInspection.addRawMaterOrderTemplate, { + addRawMaterOrderTemplate({ partNo: this.addObj.partNo, name: this.templateName, thing: JSON.stringify({ @@ -803,12 +800,7 @@ sampleList: sampleList, selectTree:this.selectTree }) - }, { - headers: { - 'Content-Type': 'application/json' - } }).then(res => { - if (res.code == 201) return this.templateLoading = false; this.templateDia = false; this.$message.success('淇濆瓨鎴愬姛') @@ -826,12 +818,7 @@ cancelButtonText: "鍙栨秷", type: "warning" }).then(() => { - this.$axios.post(this.$api.materialInspection.delRawMaterOrderTemplate, { - id: row.id - }).then(res => { - if (res.code === 201) { - return - } + delRawMaterOrderTemplate({id: row.id}).then(res => { this.$message.success('鍒犻櫎鎴愬姛') this.selectInsOrderTemplate() }).catch(e => { @@ -841,8 +828,7 @@ }, // 鏌ヨ妯℃澘鍒楄〃 selectInsOrderTemplate() { - this.$axios.get(this.$api.materialInspection.selectRawMaterOrderTemplate+'?partNo='+this.addObj.partNo).then(res => { - if (res.code == 201) return + selectStandardTreeListByPartNo({partNo:this.addObj.partNo}).then(res => { this.templates = res.data }) }, @@ -1013,7 +999,7 @@ this.addObj.model = (trees[4] == undefined ? null : trees[4]) this.addObj.ifsInventoryId = this.customsInspection.id this.noNeedCheckLoad = true - this.$axios.post(this.$api.rawMaterialOrder.addExemptionOrder, { + addExemptionOrder({ str: JSON.stringify({ insOrder: this.addObj, list: JSON.stringify(sampleList.map(a => { @@ -1041,7 +1027,7 @@ if (res.code == 201) return this.noNeedCheckDia = false this.$message.success('宸叉彁浜�') - this.$parent.playOrder(0) + this.goBack() }).catch(e=>{ this.noNeedCheckLoad = false }) @@ -1064,7 +1050,7 @@ this.addObj.model = (trees[4] == undefined ? null : trees[4]) this.addObj.ifsInventoryId = this.customsInspection.id this.saveLoad = true - this.$axios.post(this.$api.insOrder.addInsOrder, { + addInsOrder({ str: JSON.stringify({ insOrder: this.addObj, list: JSON.stringify(sampleList.map(a => { @@ -1092,7 +1078,7 @@ if (res.code == 201) return this.$message.success('宸叉彁浜�') this.bsm3Dia = false; - this.$parent.playOrder(0) + this.goBack() }).catch(e=>{ this.saveLoad = false }) @@ -1427,16 +1413,9 @@ } }) }, - selectCheckType() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "妫�楠岀被鍨�" - }).then(res => { - this.checkType = res.data - }) - }, // 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅 - getUserNow() { - this.$axios.get(this.$api.user.getUserNow).then(res => { + getUserNowList() { + getUserNow().then(res => { let selects = res.data if (selects == null) return this.addObj.userId = selects.id @@ -1447,7 +1426,7 @@ }, // 鑾峰彇妫�楠屾爣鍑嗕笅鎷夋鏁版嵁 selectStandardMethods() { - this.$axios.get(this.$api.standardTree.selectStandardMethodEnum).then(res => { + selectStandardMethodEnum().then(res => { this.methods = res.data }) }, @@ -1460,7 +1439,7 @@ }, selectsStandardMethodByFLSSM() { this.methodLoad = true - this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, { + selectsStandardMethodByFLSSM({ tree: this.selectTree }).then(res => { this.methodLoad = false @@ -1469,7 +1448,7 @@ let arr = this.selectTree.split('-') let arr0 = arr.slice(0, arr.length - 1) let selectTree = arr0.join('-').substring(0, arr0.join('-').length - 1) - this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, { + selectsStandardMethodByFLSSM({ tree: selectTree }).then(ress => { this.methods = ress.data.standardMethodList @@ -1609,17 +1588,13 @@ this.getProductLoad = true let selectTreeList = this.selectTree.split(" - ") this.addObj.model&&(selectTreeList[selectTreeList.length - 1] = this.addObj.model) - this.$axios.post(this.$api.standardTree.selectStandardProductList, { + selectStandardProductList({ model: this.addObj.model?this.addObj.model:row.model, modelNum: row.modelNum, standardMethodListId: val, factory: selectTreeList.join(" - "), partNo: this.addObj.partNo, ifsInventoryId: this.customsInspection.id - }, { - headers: { - 'Content-Type': 'application/json' - } }).then(res => { this.getProductLoad = false if (res.code === 200) { @@ -1675,13 +1650,6 @@ this.selectTree = arr0.join(' - ') + '- ' + e } }, - selectEnumByCategoryForType() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "绱ф�ョ▼搴�" - }).then(res => { - this.types = res.data - }) - }, // 瑕佹眰鍊煎彉鍖栨椂 requestChange(e, row) { this.sampleList.map(item => { @@ -1722,8 +1690,6 @@ p.section = sections[a] p.ask = asks[a] p.tell = tells[a] - // p.manHour = manHours[a] - // p.price = prices[a] } }) break @@ -1751,12 +1717,6 @@ if (row.tell.includes('[')) { this.$set(row, 'tellCopy', row.tell) } - // if (row.manHour.includes('[')) { - // this.$set(row, 'manHourCopy', row.manHour) - // } - // if (row.price.includes('[')) { - // this.$set(row, 'priceCopy', row.price) - // } let arr = this.productList.filter(m=>m.state==1&&row.sectionCopy&&row.sectionCopy.includes(m.sectionCopy)&&m.ask&&m.sectionCopy.indexOf('[')==-1) if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.sectionCopy !== undefined && row.state === 1&&arr.length==0) { if (row.sectionCopy.indexOf('[') > -1) { @@ -1773,14 +1733,10 @@ let section = arr[0].section let arr0 = JSON.parse(row.section) let arr1 = JSON.parse(row.ask) - // let arr2 = JSON.parse(row.manHour) - // let arr3 = JSON.parse(row.price) let arr4 = JSON.parse(row.tell) let index = arr0.indexOf(section) row.section = section row.ask = arr1[index] - // row.manHour = arr2[index] - // row.price = arr3[index] row.tell = arr4[index] } catch(e) {} } @@ -1827,12 +1783,6 @@ if (p.tell.includes('[')) { this.$set(p, 'tellCopy', p.tell) } - // if (p.manHour.includes('[')) { - // this.$set(p, 'manHourCopy', p.manHour) - // } - // if (p.price.includes('[')) { - // this.$set(p, 'priceCopy', p.price) - // } if (p.bsm === '1' && p.sectionCopy !== '' && p.sectionCopy !== null && p.sectionCopy !== undefined && p.state === 1) { if (p.sectionCopy.indexOf('[') > -1) { p.bsmRow = this.HaveJson(p) @@ -1901,131 +1851,10 @@ </script> <style scoped> -.addObj-form-item { - width: 100%; -} -.ins_order_add { - width: 100%; - height: 100%; - overflow-y: auto; - overflow-x: hidden; -} - -.ins_order_add::-webkit-scrollbar { - width: 0; -} - -.title { - height: 60px; - line-height: 60px; -} - -.search { - width: calc(100% - 40px); - background-color: #fff; - padding: 5px 40px 5px 0; -} - -.search_thing { +.header { display: flex; - align-items: center; - height: 50px; -} - -.search_label { - width: 120px; - font-size: 14px; - text-align: right; -} - -.search_input { - width: calc(100% - 120px); -} - -.node_i { - color: orange; - font-size: 18px; -} - -.el-select-dropdown__item { - display: flex; - align-items: center; justify-content: space-between; -} - -.pairing { - text-align: center; - line-height: 36px; - margin: 3px 0; - border: 1px solid rgba(0, 0, 0, 0.1); - border-radius: 4px; -} - -.askRts { - width: 100px; - font-size: 12px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 2px solid rgba(0, 0, 0, 0.3); - text-align: center; - background-color: rgba(0, 0, 0, 0.1); - outline: none; - border-radius: 2px; - line-height: 24px; - margin-top: 5px; -} -.circulateTable { - display: flex; - flex-direction: row; - justify-content: space-between; -} -.opticalProject { - width: 38%; -} -.temperatureList { - width: 60%; -} -.temperatureListTitle { - display: flex; - flex-direction: row; - justify-content: space-between; - line-height: 30px; -} ->>> .el-form-item__content { - text-align: left; - width: 65%; -} -.ins_order_add .el-input-group__append, -.el-input-group__prepend { - padding: 0 10px; -} - -.ins_order_add .el-tree-node__content { - height: 32px; - font-size: 14px; - border-radius: 2px; -} - -.ins_order_add .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content { - color: #3A7BFA; -} - -.ins_order_add .has-gutter .el-table__cell .cell { - line-height: 30px; - background-color: #fafafa; -} - -.ins_order_add .has-gutter .el-table__cell { - background-color: #fafafa !important; -} - -.ins_order_add .el-table__row .cell { - font-size: 12px; -} - -.ins_order_add .el-table .warning-row .cell { - color: #3A7BFA; + margin-bottom: 10px; } .tab { list-style-type: none; diff --git a/src/views/business/materialOrder/index.vue b/src/views/business/materialOrder/index.vue index e5e2306..d50868c 100644 --- a/src/views/business/materialOrder/index.vue +++ b/src/views/business/materialOrder/index.vue @@ -1,130 +1,122 @@ <template> <div class="app-container"> - <div style="width: 100%;height: 100%;"> - <div> - <el-row class="title"> - <el-col :span="12" style="text-align: left;">鍘熸潗鏂欐楠屼笅鍗�</el-col> - <el-col :span="12" style="text-align: right;"> - <el-button v-show="tabIndex === 3 || tabIndex === 2" :loading="outLoading" size="small" type="primary" @click="handleOut">瀵煎嚭</el-button> - <el-button v-if="tabIndex === 0" size="small" type="primary" @click="copper">閾滄潗鏂欎笅鍗�</el-button> - <el-button v-if="tabIndex !== 0" size="small" type="primary" @click="openPrint">鏍囩鎵撳嵃</el-button> - </el-col> - </el-row> - </div> + <div> <div class="search"> - <el-form :model="entity" ref="entity" size="small" :inline="true"> - <el-row> - <el-form-item label="鎵瑰彿" prop="menuName"> - <el-input v-model="entity.updateBatchNo" clearable placeholder="璇疯緭鍏�" - size="small" - @keyup.enter.native="refreshTable"> - </el-input> - </el-form-item> - <el-form-item label="濮旀墭缂栧彿" prop="menuName"> - <el-input v-model="entity.entrustCode" clearable placeholder="璇疯緭鍏�" - size="small" - @keyup.enter.native="refreshTable"> - </el-input> - </el-form-item> - <el-form-item label="闆朵欢鍙�" prop="menuName"> - <el-input v-model="entity.partNo" clearable placeholder="璇疯緭鍏�" - size="small" - @keyup.enter.native="refreshTable"> - </el-input> - </el-form-item> - <el-form-item label="闆朵欢鎻忚堪" prop="menuName"> - <el-input v-model="entity.partDesc" clearable placeholder="璇疯緭鍏�" - size="small" - @keyup.enter.native="refreshTable"> - </el-input> - </el-form-item> + <el-form :model="entity" ref="entity" size="small" :inline="true"><el-form-item label="鎵瑰彿" prop="updateBatchNo"> + <el-input v-model="entity.updateBatchNo" clearable placeholder="璇疯緭鍏�" + size="small" + @keyup.enter.native="refreshTable"> + </el-input> + </el-form-item><el-form-item label="濮旀墭缂栧彿" prop="entrustCode"> + <el-input v-model="entity.entrustCode" clearable placeholder="璇疯緭鍏�" + size="small" + @keyup.enter.native="refreshTable"> + </el-input> + </el-form-item><el-form-item label="闆朵欢鍙�" prop="partNo"> + <el-input v-model="entity.partNo" clearable placeholder="璇疯緭鍏�" + size="small" + @keyup.enter.native="refreshTable"> + </el-input> + </el-form-item><el-form-item label="闆朵欢鎻忚堪" prop="partDesc"> + <el-input v-model="entity.partDesc" clearable placeholder="璇疯緭鍏�" + size="small" + @keyup.enter.native="refreshTable"> + </el-input> + </el-form-item> + <el-form-item> <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 4" :icon="!more?'el-icon-arrow-down':'el-icon-arrow-up'" style="color: #3A7BFA;" type="text" @click="more=!more">{{!more?'鏇村':'鏀惰捣'}}</el-button> - <el-button icon="el-icon-search" size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> - <el-button icon="el-icon-refresh" size="small" @click="refresh()">閲� 缃�</el-button> - </el-row> - <el-row> - <el-form-item label="渚涘簲鍟嗗悕绉�" prop="menuName" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> - <el-input v-model="entity.supplierName" clearable placeholder="璇疯緭鍏�" - size="small" - @keyup.enter.native="refreshTable"> - </el-input> - </el-form-item> - <el-form-item label="鏍峰搧鍨嬪彿" prop="menuName" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> - <el-input v-model="entity.sampleModel" clearable placeholder="璇疯緭鍏�" - size="small" - @keyup.enter.native="refreshTable"> - </el-input> - </el-form-item> - <el-form-item label="妫�楠岀姸鎬�" prop="menuName" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> - <el-select v-model="entity.inspectStatus" clearable - size="small" style="width: 100%;" @change="refreshTable()"> - <el-option v-for="(a, i) in inspectStatusList" :key="i" :label="a.label" :value="a.value"></el-option> - </el-select> - </el-form-item> - <el-form-item label="涓嬪彂鏃堕棿" prop="menuName" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> - <el-date-picker - v-model="entity.date" - end-placeholder="缁撴潫鏃ユ湡" - format="yyyy-MM-dd" - placeholder="閫夋嫨鏃ユ湡" - range-separator="鑷�" - size="small" - start-placeholder="寮�濮嬫棩鏈�" - style="width: 100%;" - type="daterange" - value-format="yyyy-MM-dd"> - </el-date-picker> - </el-form-item> - </el-row> + <el-button size="mini" type="primary" @click="refreshTable()">鏌ヨ</el-button> + <el-button size="mini" @click="refresh()">閲嶇疆</el-button> + </el-form-item> + <el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> + <el-input v-model="entity.supplierName" clearable placeholder="璇疯緭鍏�" + size="small" + @keyup.enter.native="refreshTable"> + </el-input> + </el-form-item> + <el-form-item label="鏍峰搧鍨嬪彿" prop="sampleModel" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> + <el-input v-model="entity.sampleModel" clearable placeholder="璇疯緭鍏�" + size="small" + @keyup.enter.native="refreshTable"> + </el-input> + </el-form-item> + <el-form-item label="妫�楠岀姸鎬�" prop="inspectStatus" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> + <el-select v-model="entity.inspectStatus" clearable + size="small" @change="refreshTable()"> + <el-option v-for="(a, i) in inspectStatusList" :key="i" :label="a.label" :value="a.value"></el-option> + </el-select> + </el-form-item> + <el-form-item label="涓嬪彂鏃堕棿" prop="date" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more"> + <el-date-picker + v-model="entity.date" + end-placeholder="缁撴潫鏃ユ湡" + format="yyyy-MM-dd" + placeholder="閫夋嫨鏃ユ湡" + range-separator="鑷�" + size="small" + start-placeholder="寮�濮嬫棩鏈�" + type="daterange" + value-format="yyyy-MM-dd"> + </el-date-picker> + </el-form-item> </el-form> </div> <div class="table"> - <ul class="tab"> - <li v-for="(m,i) in tabList" :key="m.value" :class="{active:m.value===tabIndex}" @click="handleTab(m)">{{m.label}}</li> - </ul> + <div class="table-tab"> + <div> + <ul class="tab"> + <li v-for="(m,i) in tabList" :key="m.value" :class="{active:m.value===tabIndex}" @click="handleTab(m)">{{m.label}}</li> + </ul> + </div> + <div> + <el-button v-show="tabIndex === 3 || tabIndex === 2" :loading="outLoading" size="small" type="primary" @click="handleOut">瀵煎嚭</el-button> + <el-button v-if="tabIndex === 0" size="small" type="primary" @click="copper">閾滄潗鏂欎笅鍗�</el-button> + <el-button v-if="tabIndex !== 0" size="small" type="primary" @click="openPrint">鏍囩鎵撳嵃</el-button> + </div> + </div> <!--寰呬笅鍗�--> -<!-- <ValueTable v-show="tabIndex === 0" :key="'a'+ upIndex"--> -<!-- ref="ValueTable"--> -<!-- :componentData="componentData"--> -<!-- :style="getStyle()"--> -<!-- :tableRowClassName="changeRowClass"--> -<!-- :url="$api.materialInspection.getPurchaseOrder" />--> + <div class="table"> + <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0" + @pagination="pagination" :height="'calc(100vh - 290px)'" key="tableData" + :page="page" :tableLoading="tableLoading"></lims-table> + </div> <!--妫�楠屼腑--> -<!-- <ValueTable v-show="tabIndex === 1" :key="'b'+ upIndex"--> -<!-- ref="ValueTable1"--> -<!-- :componentData="componentData1"--> -<!-- :style="getStyle()"--> -<!-- :tableRowClassName="changeRowClass"--> -<!-- :url="$api.materialInspection.getIfsByStateOne" />--> -<!-- <!–宸叉楠�–>--> -<!-- <ValueTable v-show="tabIndex === 2" :key="'c'+ upIndex"--> -<!-- ref="ValueTable2"--> -<!-- :componentData="componentData2"--> -<!-- :style="getStyle()"--> -<!-- :tableRowClassName="changeRowClass"--> -<!-- :url="$api.materialInspection.getIfsByOver" />--> -<!-- <!–鍏ㄩ儴–>--> -<!-- <ValueTable v-if="tabIndex === 3" :key="'d'+ upIndex"--> -<!-- ref="ValueTable3"--> -<!-- :componentData="componentData3"--> -<!-- :style="getStyle()"--> -<!-- :url="$api.materialInspection.getIfsByAll" />--> -<!-- <!–瀛e害妫�楠�–>--> -<!-- <ValueTable v-show="tabIndex === 4" :key="'e'+ upIndex"--> -<!-- ref="ValueTable4"--> -<!-- :componentData="componentData4"--> -<!-- :style="getStyle()"--> -<!-- :tableRowClassName="changeRowClass"--> -<!-- :url="$api.materialInspection.getIfsByQuarter" />--> + <div class="table"> + <lims-table :tableData="tableData1" :column="column1" v-if="tabIndex === 1" + :isSelection="true" :handleSelectionChange="selectMethod" + @pagination="pagination1" :height="'calc(100vh - 290px)'" key="tableData1" + :page="page1" :tableLoading="tableLoading1"></lims-table> + </div> + <!--宸叉楠�--> + <div class="table"> + <lims-table :tableData="tableData2" :column="column2" v-if="tabIndex === 2" + :isSelection="true" :handleSelectionChange="selectMethod" + @pagination="pagination2" :height="'calc(100vh - 290px)'" key="tableData2" + :page="page2" :tableLoading="tableLoading2"></lims-table> + </div> + <!--鍏ㄩ儴--> + <div class="table"> + <lims-table :tableData="tableData3" :column="column3" v-if="tabIndex === 3" + :isSelection="true" :handleSelectionChange="selectMethod" + @pagination="pagination3" :height="'calc(100vh - 290px)'" key="tableData3" + :page="page3" :tableLoading="tableLoading3"></lims-table> + </div> + <!--瀛e害妫�楠�--> + <div class="table"> + <lims-table :tableData="tableData4" :column="column4" v-if="tabIndex === 4" + :isSelection="true" :handleSelectionChange="selectMethod" + @pagination="pagination4" :height="'calc(100vh - 290px)'" key="tableData4" + :page="page4" :tableLoading="tableLoading4"></lims-table> + </div> </div> </div> -<!-- <div v-if="active >0 && isCopper == 0" style="width: 100%;height: 100%;">--> -<!-- <CustomsInspection v-if="active >0&& isCopper == 0" :active="active"--> +<!-- <div style="width: 100%;height: 100%;">--> +<!-- <CustomsInspection :active="active"--> <!-- :currentId="currentId"--> <!-- :customsInspection="customsInspection" :orderType="orderType" />--> <!-- </div>--> -<!-- <div v-if="active >0 && isCopper == 1" style="width: 100%;height: 100%;">--> -<!-- <CopperOrder v-if="active >0 && isCopper == 1" :active="active" :currentId="currentId"></CopperOrder>--> +<!-- <div style="width: 100%;height: 100%;">--> +<!-- <CopperOrder :active="active" :currentId="currentId"></CopperOrder>--> <!-- </div>--> <!-- 纭鍏嶆寮规 --> <el-dialog :visible.sync="exemptionVisible" title="纭鍏嶆" width="42%"> @@ -211,28 +203,430 @@ </template> <script> -import ValueTable from "@/components/Table/value-table.vue"; import CustomsInspection from "./customsInspection.vue"; -import PrintDialog from "@/components/materialOrder/printDialog.vue"; -import ShowInfo from "@/components/materialOrder/showInfo.vue"; -import DataLookVisible from "@/components/materialOrder/dataLookVisible.vue"; -import FilesLookVisible from "@/components/materialOrder/filesLookVisible.vue"; -import DownFileDialog from "@/components/materialOrder/downFileDialog.vue"; -// import CopperOrder from "@/components/materialOrder/copper-order.vue"; +import PrintDialog from "@/views/business/materialOrderComponents/materialOrder/printDialog.vue"; +import ShowInfo from "@/views/business/materialOrderComponents/materialOrder/showInfo.vue"; +import DataLookVisible from "@/views/business/materialOrderComponents/materialOrder/dataLookVisible.vue"; +import FilesLookVisible from "@/views/business/materialOrderComponents/materialOrder/filesLookVisible.vue"; +import DownFileDialog from "@/views/business/materialOrderComponents/materialOrder/downFileDialog.vue"; +import limsTable from "@/components/Table/lims-table.vue"; +import { + getIfsByAll, + getIfsByOver, + getIfsByQuarter, + getIfsByStateOne, + getPurchaseOrder +} from "@/api/business/rawMaterialOrder"; +import {getWarehouseSubmit} from "@/api/business/materialInspection"; // import Inspection from "../do/b1-inspect-order-plan/Inspection.vue"; export default { name: "b1-material-inspection-order", // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� - components: { - // Inspection, - // CopperOrder, - DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog, CustomsInspection, ValueTable}, + components: {limsTable,DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog, CustomsInspection}, data() { // 杩欓噷瀛樻斁鏁版嵁 return { - isShowIFS: false, - entityEmpty: {}, + tableData: [], + tableLoading: false, + column: [ + {label: '鎵瑰彿', prop: 'updateBatchNo'}, + {label: '闆朵欢鍙�', prop: 'partNo'}, + {label: '闆朵欢鎻忚堪', prop: 'partDesc'}, + { + dataType: 'tag', + label: '鐗╂枡绫诲瀷', + prop: 'isExpire', + formatData: (params) => { + if (params == 1) { + return '杩囨湡鐗╂枡' + } else { + return '' + } + }, + formatType: (params) => { + if (params == 1) { + return 'info' + } else { + return '' + } + } + }, + {label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived'}, + {label: '鍗曚綅', prop: 'buyUnitMeas'}, + {label: '璁㈠崟鍙�', prop: 'orderNo'}, + {label: '鎺ユ敹鏃堕棿', prop: 'receiverDate'}, + {label: '鎶ユ鏃堕棿', prop: 'declareDate'}, + { + dataType: 'action', + fixed: 'right', + label: '鎿嶄綔', + width: '170px', + operation: [ + { + name: '涓嬪崟', + type: 'text', + clickFun: (row) => { + this.playOrder(row); + } + }, + { + name: '鍏嶆', + type: 'text', + clickFun: (row) => { + this.exemption(row); + }, + }, + { + name: '鎾ら攢鎶ユ', + type: 'text', + clickFun: (row) => { + this.cancelDeclare(row); + }, + }, + ] + } + ], + page: { + total:0, + size:10, + current:1 + }, + tableData1: [], + tableLoading1: false, + column1: [ + {label: '鎵瑰彿', prop: 'updateBatchNo'}, + {label: '濮旀墭缂栧彿', prop: 'entrustCode'}, + {label: '闆朵欢鍙�', prop: 'partNo'}, + {label: '闆朵欢鎻忚堪', prop: 'partDesc'}, + {label: '鏍峰搧鍚嶇О', prop: 'sampleName'}, + {label: '鏍峰搧鍨嬪彿', prop: 'sampleModel'}, + {label: '妫�楠屼汉', prop: 'userName'}, + {label: '涓嬪彂鏃堕棿', prop: 'sendTime'}, + { + dataType: 'tag', + label: '鐗╂枡绫诲瀷', + prop: 'isExpire', + formatData: (params) => { + if (params == 1) { + return '杩囨湡鐗╂枡' + } else { + return '' + } + }, + formatType: (params) => { + if (params == 1) { + return 'info' + } else { + return '' + } + } + }, + {label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived'}, + {label: '鍗曚綅', prop: 'buyUnitMeas'}, + {label: '璁㈠崟鍙�', prop: 'orderNo'}, + {label: '鎺ユ敹鏃堕棿', prop: 'receiverDate'}, + {label: '鎶ユ鏃堕棿', prop: 'declareDate'}, + { + dataType: 'action', + fixed: 'right', + label: '鎿嶄綔', + width: '140px', + operation: [ + { + name: '鏁版嵁鏌ョ湅', + type: 'text', + clickFun: (row) => { + this.handleDataLook(row); + }, + }, + { + name: '闄勪欢鏌ョ湅', + type: 'text', + clickFun: (row) => { + this.handleFileLook(row); + }, + }, + { + name: '鎾ら攢涓嬪崟', + type: 'text', + clickFun: (row) => { + this.cancelOrder(row); + }, + }, + ] + } + ], + page1: { + total:0, + size:10, + current:1 + }, + tableData2: [], + tableLoading2: false, + column2: [ + {label: '濮旀墭缂栧彿', prop: 'entrustCode'}, + {label: '妫�楠岀姸鎬�', prop: 'inspectStatus'}, + {label: '璁㈠崟鍙�', prop: 'orderNo'}, + {label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived'}, + {label: '涓嬪彂鏃堕棿', prop: 'sendTime'}, + {label: '鎵瑰彿', prop: 'updateBatchNo'}, + {label: '闆朵欢鍙�', prop: 'partNo'}, + {label: '闆朵欢鎻忚堪', prop: 'partDesc'}, + {label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName'}, + {label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc'}, + {label: '鍏嶆', prop: 'isExemption'}, + {label: '鏍峰搧鍚嶇О', prop: 'sampleName'}, + {label: '鏍峰搧鍨嬪彿', prop: 'sampleModel'}, + {label: '妫�楠屼汉', prop: 'userName'}, + { + dataType: 'tag', + label: '鐗╂枡绫诲瀷', + prop: 'isExpire', + formatData: (params) => { + if (params == 1) { + return '杩囨湡鐗╂枡' + } else { + return '' + } + }, + formatType: (params) => { + if (params == 1) { + return 'info' + } else { + return '' + } + } + }, + {label: '鍗曚綅', prop: 'buyUnitMeas'}, + {label: '鎺ユ敹鏃堕棿', prop: 'receiverDate'}, + {label: '鎶ユ鏃堕棿', prop: 'declareDate'}, + { + dataType: 'action', + fixed: 'right', + label: '鎿嶄綔', + width: '300px', + operation: [ + { + name: '瀛e害妫�楠�', + type: 'text', + clickFun: (row) => { + this.playOrderSec(row); + }, + disabled: (row) => { + return row.isQuarter == 0 + }, + }, + { + name: '鏁版嵁鏌ョ湅', + type: 'text', + clickFun: (row) => { + this.handleDataLook(row); + } + }, + { + name: '闄勪欢鏌ョ湅', + type: 'text', + clickFun: (row) => { + this.handleFileLook(row); + }, + }, + { + name: '鎶ュ憡涓嬭浇', + type: 'text', + clickFun: (row) => { + this.download(row); + }, + }, + { + name: '鍘熷璁板綍', + type: 'text', + clickFun: (row) => { + this.viewInspectInfo(row); + }, + disabled: (row) => { + return row.sampleName === null + }, + }, + { + name: '鏀捐', + type: 'text', + clickFun: (row) => { + this.goPass(row); + }, + disabled: (row) => { + return row.inspectStatus != 2 + }, + }, + { + name: '瀛e害鎾ら攢', + type: 'text', + clickFun: (row) => { + this.repealQuarter(row); + }, + disabled: (row) => { + return row.quarterOrderId == null || row.quarterReportId != null + }, + }, + ] + } + ], + page2: { + total:0, + size:10, + current:1 + }, + tableData3: [], + tableLoading3: false, + column3: [ + {label: '濮旀墭缂栧彿', prop: 'entrustCode'}, + {label: '妫�楠岀姸鎬�', prop: 'inspectStatus'}, + {label: '璁㈠崟鍙�', prop: 'orderNo'}, + {label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived'}, + {label: '涓嬪彂鏃堕棿', prop: 'sendTime'}, + {label: '鎵瑰彿', prop: 'updateBatchNo'}, + {label: '闆朵欢鍙�', prop: 'partNo'}, + {label: '闆朵欢鎻忚堪', prop: 'partDesc'}, + {label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName'}, + {label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc'}, + {label: '鍏嶆', prop: 'isExemption'}, + {label: '鏍峰搧鍚嶇О', prop: 'sampleName'}, + {label: '鏍峰搧鍨嬪彿', prop: 'sampleModel'}, + {label: '妫�楠屼汉', prop: 'userName'}, + { + dataType: 'tag', + label: '鐗╂枡绫诲瀷', + prop: 'isExpire', + formatData: (params) => { + if (params == 1) { + return '杩囨湡鐗╂枡' + } else { + return '' + } + }, + formatType: (params) => { + if (params == 1) { + return 'info' + } else { + return '' + } + } + }, + {label: '鍗曚綅', prop: 'buyUnitMeas'}, + {label: '鎺ユ敹鏃堕棿', prop: 'receiverDate'}, + {label: '鎶ユ鏃堕棿', prop: 'declareDate'}, + { + dataType: 'action', + fixed: 'right', + label: '鎿嶄綔', + width: '140px', + operation: [ + { + name: '鏁版嵁鏌ョ湅', + type: 'text', + clickFun: (row) => { + this.handleDataLook(row); + } + }, + { + name: '闄勪欢鏌ョ湅', + type: 'text', + clickFun: (row) => { + this.handleFileLook(row); + }, + } + ] + } + ], + page3: { + total:0, + size:10, + current:1 + }, + tableData4: [], + tableLoading4: false, + column4: [ + {label: '濮旀墭缂栧彿', prop: 'entrustCode'}, + {label: '妫�楠岀姸鎬�', prop: 'inspectStatus'}, + {label: '璁㈠崟鍙�', prop: 'orderNo'}, + {label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived'}, + {label: '涓嬪彂鏃堕棿', prop: 'sendTime'}, + {label: '鎵瑰彿', prop: 'updateBatchNo'}, + {label: '闆朵欢鍙�', prop: 'partNo'}, + {label: '闆朵欢鎻忚堪', prop: 'partDesc'}, + {label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName'}, + {label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc'}, + {label: '鍏嶆', prop: 'isExemption'}, + {label: '鏍峰搧鍚嶇О', prop: 'sampleName'}, + {label: '鏍峰搧鍨嬪彿', prop: 'sampleModel'}, + {label: '妫�楠屼汉', prop: 'userName'}, + { + dataType: 'tag', + label: '鐗╂枡绫诲瀷', + prop: 'isExpire', + formatData: (params) => { + if (params == 1) { + return '杩囨湡鐗╂枡' + } else { + return '' + } + }, + formatType: (params) => { + if (params == 1) { + return 'info' + } else { + return '' + } + } + }, + {label: '鍗曚綅', prop: 'buyUnitMeas'}, + {label: '鎺ユ敹鏃堕棿', prop: 'receiverDate'}, + {label: '鎶ユ鏃堕棿', prop: 'declareDate'}, + { + dataType: 'action', + fixed: 'right', + label: '鎿嶄綔', + width: '250px', + operation: [ + { + name: '瀛e害妫�楠�', + type: 'text', + clickFun: (row) => { + this.playOrderSec(row); + }, + disabled: (row, index) => { + return row.isQuarter == 0 + } + }, + { + name: '鏁版嵁鏌ョ湅', + type: 'text', + clickFun: (row) => { + this.handleDataLook(row); + } + }, + { + name: '闄勪欢鏌ョ湅', + type: 'text', + clickFun: (row) => { + this.handleFileLook(row); + }, + }, + { + name: '鎶ュ憡涓嬭浇', + type: 'text', + clickFun: (row) => { + this.download(row); + }, + } + ] + } + ], + page4: { + total:0, + size:10, + current:1 + }, entity: { updateBatchNo: null, entrustCode: null, @@ -244,488 +638,6 @@ date: null, beginDeclareDate: null, endDeclareDate: null, - }, - componentData: { // 琛ㄦ牸鏁版嵁 - entity: { - updateBatchNo: null, - partDesc: null, - state: 0, - isInspect: 1, - partNo: null - }, - isIndex: true, - showSelect: false, - select: false, - selectMethod:'selectMethod', - do: [ - { - font: '涓嬪崟', - type: 'text', - method: 'playOrder', - }, - { - font: '鍏嶆', - type: 'text', - method: 'exemption', - }, - { - font: '鎾ら攢鎶ユ', - type: 'text', - method: 'cancelDeclare', - }, - // { - // font: '浜т笟閾�', - // type: 'text', - // method: 'openInfoDialog', - // } - ], - tagField: { - isExpire: { - select: [{ - value: 1, - label: '杩囨湡鐗╂枡', - type: 'warning' - }] - }, - }, - selectField: {}, - requiredAdd: [], - requiredUp: [] - }, - componentData1: { - entity: { - orderBy: { - field: 'entrustCode', - order: 'desc' - }, - updateBatchNo: null, - entrustCode: null, - partDesc: null, - state: 1, - orderState: 1, - partNo: null - }, - isIndex: true, - showSelect: true, - select: true, - selectMethod:'selectMethod', - do: [ - // { - // font: '瀛e害妫�楠�', - // type: 'text', - // method: 'playOrderSec', - // disabFun: (row, index) => { - // return row.isQuarter == 0 - // } - // }, - { - id: 'dataLook', - font: '鏁版嵁鏌ョ湅', - type: 'text', - method: 'handleDataLook', - }, - { - font: '闄勪欢鏌ョ湅', - type: 'text', - method: 'handleFileLook', - }, - { - font: '鎾ら攢涓嬪崟', - type: 'text', - method: 'cancelOrder', - }, - // { - // font: '浜т笟閾�', - // type: 'text', - // method: 'openInfoDialog', - // } - ], - linkEvent: { - sampleName: { - method: 'selectAllByOne' - }, - entrustCode: { - method: 'changeEntrustCode' - } - }, - tagField: { - inspectStatus: { - select: [{ - value: 0, - label: '妫�楠屼腑', - type: 'warning' - },{ - value: 1, - label: '鍚堟牸', - type: 'success' - },{ - value: 2, - label: '涓嶅悎鏍�', - type: 'danger' - },{ - value: 3, - label: '鏈笅鍗�', - type: 'info' - }] - }, - isExpire: { - select: [{ - value: 1, - label: '杩囨湡鐗╂枡', - type: 'warning' - }] - }, - }, - selectField: {}, - requiredAdd: [], - requiredUp: [] - }, - componentData2: { - entity: { - orderBy: { - field: 'entrustCode', - order: 'desc' - }, - updateBatchNo: null, - entrustCode: null, - partDesc: null, - sampleModel: null, - state: 2, - orderState: 4, - supplierName: '', - partNo: null, - beginDeclareDate: null, - endDeclareDate: null, - }, - isIndex: true, - showSelect: true, - select: true, - selectMethod:'selectMethod', - do: [ - { - font: '瀛e害妫�楠�', - type: 'text', - method: 'playOrderSec', - disabFun: (row, index) => { - return row.isQuarter == 0 - } - }, - { - id: 'dataLook', - font: '鏁版嵁鏌ョ湅', - type: 'text', - method: 'handleDataLook', - }, - { - font: '闄勪欢鏌ョ湅', - type: 'text', - method: 'handleFileLook', - },{ - id: 'download', - font: '鎶ュ憡涓嬭浇', - type: 'text', - method: 'download', - }, - // { - // font: '浜т笟閾�', - // type: 'text', - // method: 'openInfoDialog', - // }, - { - id: '', - font: '鍘熷璁板綍', - type: 'text', - method: 'viewInspectInfo', - disabFun: (row, index) => { - return row.sampleName === null - } - }, - { - id: '', - font: '鏀捐', - type: 'text', - method: 'goPass', - disabFun: (row, index) => { - return row.inspectStatus != 2 - } - }, - { - id: '', - font: '瀛e害鎾ら攢', - type: 'text', - method: 'repealQuarter', - disabFun: (row, index) => { - return row.quarterOrderId == null || row.quarterReportId != null - } - } - ], - linkEvent: { - sampleName: { - method: 'selectAllByOne' - }, - entrustCode: { - method: 'changeEntrustCode' - } - }, - tagField: { - inspectStatus: { - select: [{ - value: 0, - label: '妫�楠屼腑', - type: 'warning' - },{ - value: 1, - label: '鍚堟牸', - type: 'success' - },{ - value: 2, - label: '涓嶅悎鏍�', - type: 'danger' - },{ - value: 3, - label: '鏈笅鍗�', - type: 'info' - },{ - value: 4, - label: '璁╂鏀捐', - type: 'info' - }] - }, - isExemption: { - select: [{ - value: 1, - label: '鍏嶆', - type: 'success' - }] - }, - isExpire: { - select: [{ - value: 1, - label: '杩囨湡鐗╂枡', - type: 'warning' - }] - }, - }, - selectField: {}, - requiredAdd: [], - requiredUp: [] - }, - componentData4: { - entity: { - orderBy: { - field: 'entrustCode', - order: 'desc' - }, - updateBatchNo: null, - entrustCode: null, - partDesc: null, - sampleModel: null, - supplierName: '', - partNo: null, - beginDeclareDate: null, - endDeclareDate: null, - }, - isIndex: true, - showSelect: true, - select: true, - selectMethod:'selectMethod', - do: [ - { - font: '瀛e害妫�楠�', - type: 'text', - method: 'playOrderSec', - disabFun: (row, index) => { - return row.isQuarter == 0 - } - }, - { - id: 'dataLook', - font: '鏁版嵁鏌ョ湅', - type: 'text', - method: 'handleDataLook', - }, - { - font: '闄勪欢鏌ョ湅', - type: 'text', - method: 'handleFileLook', - },{ - id: 'download', - font: '鎶ュ憡涓嬭浇', - type: 'text', - method: 'download', - }, - // { - // font: '浜т笟閾�', - // type: 'text', - // method: 'openInfoDialog', - // }, - { - id: '', - font: '鍘熷璁板綍', - type: 'text', - method: 'viewInspectInfo', - disabFun: (row, index) => { - return row.sampleName === null - } - }, - // { - // id: '', - // font: '鏀捐', - // type: 'text', - // method: 'goPass', - // disabFun: (row, index) => { - // return row.inspectStatus != 2 - // } - // }, - { - id: '', - font: '瀛e害鎾ら攢', - type: 'text', - method: 'repealQuarter', - disabFun: (row, index) => { - return row.quarterOrderId == null || row.quarterReportId != null - } - } - ], - linkEvent: { - sampleName: { - method: 'selectAllByOne' - }, - entrustCode: { - method: 'changeEntrustCode' - } - }, - tagField: { - inspectStatus: { - select: [{ - value: 0, - label: '妫�楠屼腑', - type: 'warning' - },{ - value: 1, - label: '鍚堟牸', - type: 'success' - },{ - value: 2, - label: '涓嶅悎鏍�', - type: 'danger' - },{ - value: 3, - label: '鏈笅鍗�', - type: 'info' - },{ - value: 4, - label: '璁╂鏀捐', - type: 'info' - }] - }, - isExemption: { - select: [{ - value: 1, - label: '鍏嶆', - type: 'success' - }] - }, - isExpire: { - select: [{ - value: 1, - label: '杩囨湡鐗╂枡', - type: 'warning' - }] - }, - }, - selectField: {}, - requiredAdd: [], - requiredUp: [] - }, - componentData3: { - entity: { - orderBy: { - field: 'entrustCode', - order: 'desc' - }, - updateBatchNo: null, - entrustCode: null, - partDesc: null, - sampleModel: null, - isInspect: 1, - supplierName: '', - partNo: null, - beginDeclareDate: null, - endDeclareDate: null, - }, - isIndex: true, - showSelect: true, - select: true, - selectMethod:'selectMethod', - do: [ - { - id: 'dataLook', - font: '鏁版嵁鏌ョ湅', - type: 'text', - method: 'handleDataLook', - }, - { - font: '闄勪欢鏌ョ湅', - type: 'text', - method: 'handleFileLook', - }, - // { - // font: '浜т笟閾�', - // type: 'text', - // method: 'openInfoDialog', - // } - ], - linkEvent: { - sampleName: { - method: 'selectAllByOne' - }, - entrustCode: { - method: 'changeEntrustCode' - } - }, - tagField: { - inspectStatus: { - select: [{ - value: 0, - label: '妫�楠屼腑', - type: 'warning' - },{ - value: 1, - label: '鍚堟牸', - type: 'success' - },{ - value: 2, - label: '涓嶅悎鏍�', - type: 'danger' - },{ - value: 3, - label: '鏈笅鍗�', - type: 'info' - },{ - value: 4, - label: '璁╂鏀捐', - type: '' - }] - }, - isExemption: { - select: [{ - value: 1, - label: '鍏嶆', - type: 'success' - }] - }, - isExpire: { - select: [{ - value: 1, - label: '杩囨湡鐗╂枡', - type: 'warning' - }] - }, - }, - selectField: {}, - requiredAdd: [], - requiredUp: [] }, tabList: [ { @@ -750,18 +662,11 @@ } ], more:false, - upIndex: 0, tabIndex: 0, multipleSelection:[], - entityCopy: {}, - entityCopy1: {}, - entityCopy2: {}, - entityCopy3: {}, - entityCopy4: {}, active: 0, //1锛氫笅鍗曪紝2锛氭煡鐪� orderType: 0, //0锛氬師鏉愭枡涓嬪崟锛�1锛氬搴︽楠屼笅鍗� currentId: null, - customsInspection: {}, btnLoading: false, quashDialogVisible: false, // 鎾ら攢涓嬪崟鎻愰啋寮规 declareDialogVisible: false, // 鎾ら攢鎶ユ鎻愰啋寮规 @@ -795,32 +700,127 @@ typeSource: null,// 0:鎴愬搧涓嬪崟锛�1锛氬師鏉愭枡涓嬪崟, 2: 閾滃崟涓濅笅鍗� InspectInfoDialog: false, // 鏁版嵁鏌ョ湅寮规 insInfo: {}, - isCopper: null, outLoading:false } }, mounted () { - this.entityEmpty = this.HaveJson(this.entity) - this.entityCopy = this.HaveJson(this.componentData.entity) - this.entityCopy1 = this.HaveJson(this.componentData1.entity) - this.entityCopy2 = this.HaveJson(this.componentData2.entity) - this.entityCopy3 = this.HaveJson(this.componentData3.entity) - this.getPower() + this.refreshTable() }, // 鏂规硶闆嗗悎 methods: { - // 鑾峰彇鏉冮檺 - getPower(){ - let power = JSON.parse(sessionStorage.getItem('power')) - let getIFS = false - for (var i = 0; i < power.length; i++) { - if (power[i].menuMethod == 'getIfsByAll') { // 鑾峰彇IFS鐨勬潈闄� - getIFS = true + // 鏌ヨ鍥炶皟 + refreshTable() { + if (this.tabIndex === 0) { + // 寰呬笅鍗曟煡璇� + this.getPurchaseOrderList() + } else if (this.tabIndex === 1) { + // 妫�楠屼腑鏌ヨ + this.getIfsByStateOneList() + } else if (this.tabIndex === 2) { + // 宸叉楠屾煡璇� + this.getIfsByOverList() + } else if (this.tabIndex === 4) { + // 鏌ヨ瀛e害妫�楠� + this.getIfsByQuarterList() + } else { + // 鍏ㄩ儴鏌ヨ + this.getIfsByAllList() + } + }, + // 寰呬笅鍗曟煡璇� + getPurchaseOrderList () { + this.tableLoading = true + const params = {...this.entity, isInspect: 1, state: 0} + getWarehouseSubmit(params).then(res => { + this.tableLoading = false + if (res.code === 200) { + this.tableData = res.data.records + this.page.total = res.data.total } - } - if (!getIFS) { - this.tabList.splice(-1, 1) - } + }).catch(err => { + this.tableLoading = false + }) + }, + // 妫�楠屼腑鏌ヨ + getIfsByStateOneList () { + this.tableLoading1 = true + const params = {...this.entity, orderState: 1, state: 1} + getIfsByStateOne(params).then(res => { + this.tableLoading1 = false + if (res.code === 200) { + this.tableData1 = res.data.records + this.page1.total = res.data.total + } + }).catch(err => { + this.tableLoading1 = false + }) + }, + // 宸叉楠屾煡璇� + getIfsByOverList () { + this.tableLoading2 = true + const params = {...this.entity, orderState: 4, state: 2} + getIfsByOver(params).then(res => { + this.tableLoading2 = false + if (res.code === 200) { + this.tableData2 = res.data.records + this.page2.total = res.data.total + } + }).catch(err => { + this.tableLoading2 = false + }) + }, + // 鏌ヨ瀛e害妫�楠� + getIfsByQuarterList () { + this.tableLoading4 = true + const params = {...this.entity} + getIfsByOver(params).then(res => { + this.tableLoading4 = false + if (res.code === 200) { + this.tableData4 = res.data.records + this.page4.total = res.data.total + } + }).catch(err => { + this.tableLoading4 = false + }) + }, + // 鍏ㄩ儴 + getIfsByAllList () { + this.tableLoading3 = true + const params = {...this.entity, isInspect: 1} + getIfsByAll(params).then(res => { + this.tableLoading3 = false + if (res.code === 200) { + this.tableData3 = res.data.records + this.page3.total = res.data.total + } + }).catch(err => { + this.tableLoading3 = false + }) + }, + // 閲� 缃� + refresh() { + this.resetForm('entity') + this.refreshTable() + }, + pagination (page) { + this.page.size = page.limit + this.refreshTable() + }, + pagination1 (page) { + this.page1.size = page.limit + this.refreshTable() + }, + pagination2 (page) { + this.page2.size = page.limit + this.refreshTable() + }, + pagination3 (page) { + this.page3.size = page.limit + this.refreshTable() + }, + pagination4 (page) { + this.page4.size = page.limit + this.refreshTable() }, // 鏌ョ湅妫�楠屾暟鎹� viewInspectInfo (row) { @@ -900,7 +900,8 @@ }, // 閾滄潗鏂欎笅鍗� copper () { - this.$router.push("/materialOrder/customsInspection"); + this.$router.push("/materialOrder/copperOrder"); + this.$router.push({ path: "/materialOrder/copperOrder", query: {active: 1} }); }, // 鎵撳紑鏍囩鎵撳嵃寮规 openPrint () { @@ -918,113 +919,16 @@ closePrintDialog () { this.printDialog = false }, - // 鏌ヨ鍥炶皟 - refreshTable(e) { - if (this.tabIndex === 0) { - this.componentData.entity.updateBatchNo = this.entity.updateBatchNo - this.componentData.entity.partDesc = this.entity.partDesc - this.componentData.entity.partNo = this.entity.partNo - this.$refs['ValueTable'].selectList(e) - } else if (this.tabIndex === 1) { - this.componentData1.entity.updateBatchNo = this.entity.updateBatchNo - this.componentData1.entity.entrustCode = this.entity.entrustCode - this.componentData1.entity.partDesc = this.entity.partDesc - this.componentData1.entity.partNo = this.entity.partNo - this.$refs['ValueTable1'].selectList(e) - } else if (this.tabIndex === 2) { - this.componentData2.entity.updateBatchNo = this.entity.updateBatchNo - this.componentData2.entity.entrustCode = this.entity.entrustCode - this.componentData2.entity.partDesc = this.entity.partDesc - this.componentData2.entity.supplierName = this.entity.supplierName - this.componentData2.entity.sampleModel = this.entity.sampleModel - this.componentData2.entity.partNo = this.entity.partNo - this.componentData2.entity.inspectStatus = this.entity.inspectStatus - if (this.entity.date!==null) { - this.componentData2.entity.beginDeclareDate = this.entity.date[0] + ' 00:00:00' - this.componentData2.entity.endDeclareDate = this.entity.date[1] + ' 23:59:59' - } else { - this.componentData2.entity.beginDeclareDate = '' - this.componentData2.entity.endDeclareDate = '' - } - this.$refs['ValueTable2'].selectList(e) - } else if (this.tabIndex === 4) { - this.componentData4.entity.updateBatchNo = this.entity.updateBatchNo - this.componentData4.entity.entrustCode = this.entity.entrustCode - this.componentData4.entity.partDesc = this.entity.partDesc - this.componentData4.entity.supplierName = this.entity.supplierName - this.componentData4.entity.sampleModel = this.entity.sampleModel - this.componentData4.entity.partNo = this.entity.partNo - this.componentData4.entity.inspectStatus = this.entity.inspectStatus - if (this.entity.date!==null) { - this.componentData4.entity.beginDeclareDate = this.entity.date[0] + ' 00:00:00' - this.componentData4.entity.endDeclareDate = this.entity.date[1] + ' 23:59:59' - } else { - this.componentData4.entity.beginDeclareDate = '' - this.componentData4.entity.endDeclareDate = '' - } - this.$refs['ValueTable4'].selectList(e) - } else { - this.componentData3.entity.updateBatchNo = this.entity.updateBatchNo - this.componentData3.entity.entrustCode = this.entity.entrustCode - this.componentData3.entity.partDesc = this.entity.partDesc - this.componentData3.entity.supplierName = this.entity.supplierName - this.componentData3.entity.sampleModel = this.entity.sampleModel - this.componentData3.entity.partNo = this.entity.partNo - this.componentData3.entity.inspectStatus = this.entity.inspectStatus - if (this.entity.date!==null) { - this.componentData3.entity.beginDeclareDate = this.entity.date[0] + ' 00:00:00' - this.componentData3.entity.endDeclareDate = this.entity.date[1] + ' 23:59:59' - } else { - this.componentData3.entity.beginDeclareDate = '' - this.componentData3.entity.endDeclareDate = '' - } - this.$nextTick(()=> { - this.$refs['ValueTable3'].selectList(e) - }) - } - }, - // 閲� 缃� - refresh() { - this.entity = this.HaveJson(this.entityEmpty) - if (this.tabIndex === 0) { - this.componentData.entity = this.HaveJson(this.entityCopy) - } else if (this.tabIndex === 1) { - this.componentData1.entity = this.HaveJson(this.entityCopy1) - } else if (this.tabIndex === 2) { - this.componentData2.entity = this.HaveJson(this.entityCopy2) - } else if (this.tabIndex === 4) { - this.componentData4.entity = this.HaveJson(this.entityCopy4) - } else { - this.componentData3.entity = this.HaveJson(this.entityCopy3) - } - this.refreshTable() - }, // 涓嬪崟 - playOrder(num) { - if (typeof num === "number") { - this.active = num - } else { - this.active = 1 - this.orderType = 0 - this.isCopper = 0 - this.customsInspection = num - } - if (num === 0) { - this.refreshTable('page') - } + playOrder(row) { + this.$router.push({ path: "/materialOrder/customsInspection", query: {orderType: 0, customsInspection: row, active: 1} }); }, // 瀛e害妫�楠屼笅鍗� playOrderSec (row) { - if (typeof row === "number") { - this.active = row + if (typeof row !== "object") { + this.$router.push({ path: "/materialOrder/customsInspection", query: {active: row} }); } else { - this.active = 1 - this.orderType = 1 - this.isCopper = 0 - this.customsInspection = row - } - if (row === 0) { - this.refreshTable('page') + this.$router.push({ path: "/materialOrder/customsInspection", query: {orderType: 1, customsInspection: row, active: 1} }); } }, // 鎵撳紑鍏嶆寮规 @@ -1109,7 +1013,6 @@ this.insOrderRow = row }, cancelQuashOrder (type) { - console.log('type---', type) const url = type === 'enterOrderId' ? this.$api.rawMaterialOrder.repealEnterRawOrder : this.$api.rawMaterialOrder.repealQuarterRawOrder const name = type === 'enterOrderId' ? 'enterOrderId' : 'quarterOrderId' const paramInfo = type === 'enterOrderId' ? this.insOrderRow.enterOrderId : this.insOrderRow.quarterOrderId @@ -1129,8 +1032,7 @@ // 鐐瑰嚮鏍峰搧鍚嶇О鏌ョ湅璇︽儏 selectAllByOne(row) { this.currentId = row.insOrderId - this.isCopper = row.isCopper - if (this.isCopper == 1) { + if (row.isCopper == 1) { this.currentId = row.enterOrderId } this.customsInspection = row @@ -1199,7 +1101,7 @@ }, // 瀵煎嚭 handleOut(){ - let entity = this.tabIndex === 3 ? {...this.componentData3.entity} : {...this.componentData2.entity} + let entity = this.tabIndex === 3 ? {...this.entity, isInspect: 2} : {...this.entity,state: 2, orderState: 4,} delete entity.orderBy this.outLoading = true this.$axios.post(this.$api.rawMaterialOrder.rawAllExport,{ @@ -1243,48 +1145,20 @@ // 鍒囨崲涓嬪崟tab琛ㄦ牸 handleTab(m) { this.tabIndex = m.value; - if (this.tabIndex === 0) { - this.componentData.entity.updateBatchNo = this.entity.updateBatchNo - this.componentData.entity.partDesc = this.entity.partDesc - } else if (this.tabIndex === 1) { - this.componentData1.entity.updateBatchNo = this.entity.updateBatchNo - this.componentData1.entity.entrustCode = this.entity.entrustCode - this.componentData1.entity.partDesc = this.entity.partDesc - } else if (this.tabIndex === 4) { - this.componentData4.entity.updateBatchNo = this.entity.updateBatchNo - this.componentData4.entity.entrustCode = this.entity.entrustCode - this.componentData4.entity.partDesc = this.entity.partDesc - } else { - this.componentData2.entity.updateBatchNo = this.entity.updateBatchNo - this.componentData2.entity.entrustCode = this.entity.entrustCode - this.componentData2.entity.partDesc = this.entity.partDesc - } this.refreshTable() }, // 琛ㄦ牸閫夋嫨鏂规硶 selectMethod(val){ this.multipleSelection = val }, - changeRowClass({row, rowIndex}) { - if (row.isFirst == 1) { - return 'highlight-danger-row-border' - } - return '' - }, - getStyle(){ - return 'height: calc(100% - '+(this.more?'94':'44')+'px)' - } }, } </script> <style scoped> -.app-container { - padding-top: 0; -} -.title { - height: 60px; - line-height: 60px; +.table-tab { + display: flex; + justify-content: space-between; } .tab { list-style-type: none; diff --git a/src/components/materialOrder/dataLookVisible.vue b/src/views/business/materialOrderComponents/materialOrder/dataLookVisible.vue similarity index 100% rename from src/components/materialOrder/dataLookVisible.vue rename to src/views/business/materialOrderComponents/materialOrder/dataLookVisible.vue diff --git a/src/components/materialOrder/downFileDialog.vue b/src/views/business/materialOrderComponents/materialOrder/downFileDialog.vue similarity index 100% rename from src/components/materialOrder/downFileDialog.vue rename to src/views/business/materialOrderComponents/materialOrder/downFileDialog.vue diff --git a/src/components/materialOrder/filesLookVisible.vue b/src/views/business/materialOrderComponents/materialOrder/filesLookVisible.vue similarity index 100% rename from src/components/materialOrder/filesLookVisible.vue rename to src/views/business/materialOrderComponents/materialOrder/filesLookVisible.vue diff --git a/src/components/materialOrder/printDialog.vue b/src/views/business/materialOrderComponents/materialOrder/printDialog.vue similarity index 100% rename from src/components/materialOrder/printDialog.vue rename to src/views/business/materialOrderComponents/materialOrder/printDialog.vue diff --git a/src/components/materialOrder/showInfo.vue b/src/views/business/materialOrderComponents/materialOrder/showInfo.vue similarity index 100% rename from src/components/materialOrder/showInfo.vue rename to src/views/business/materialOrderComponents/materialOrder/showInfo.vue diff --git a/src/components/materialOrder/unPassRetestResult.vue b/src/views/business/materialOrderComponents/materialOrder/unPassRetestResult.vue similarity index 100% rename from src/components/materialOrder/unPassRetestResult.vue rename to src/views/business/materialOrderComponents/materialOrder/unPassRetestResult.vue diff --git a/src/views/business/rawMaterialInspection/index.vue b/src/views/business/rawMaterialInspection/index.vue index 57674fb..3430970 100644 --- a/src/views/business/rawMaterialInspection/index.vue +++ b/src/views/business/rawMaterialInspection/index.vue @@ -26,9 +26,11 @@ @keyup.enter.native="refreshTable"> </el-input> </el-form-item> - <el-button v-if="tabIndex === 3 || tabIndex === 4" :icon="!more?'el-icon-arrow-down':'el-icon-arrow-up'" style="color: #3A7BFA;" type="text" @click="more=!more">{{!more?'鏇村':'鏀惰捣'}}</el-button> - <el-button size="small" icon="el-icon-search" type="primary" @click="refreshTable()">鏌� 璇�</el-button> - <el-button size="small" @click="refresh()" icon="el-icon-refresh">閲� 缃�</el-button> + <el-form-item> + <el-button v-if="tabIndex === 3 || tabIndex === 4" :icon="!more?'el-icon-arrow-down':'el-icon-arrow-up'" style="color: #3A7BFA;" type="text" @click="more=!more">{{!more?'鏇村':'鏀惰捣'}}</el-button> + <el-button size="mini" icon="el-icon-search" type="primary" @click="refreshTable()">鏌� 璇�</el-button> + <el-button size="mini" @click="refresh()" icon="el-icon-refresh">閲� 缃�</el-button> + </el-form-item> </el-row> <el-row> <el-form-item label="妫�楠岀姸鎬�" prop="inspectStatus" v-if="(tabIndex === 3 || tabIndex === 4) && more"> @@ -76,7 +78,7 @@ </div> <!--寰呮姤妫�銆佸緟涓嬪崟--> <div class="table"> - <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0 || tabIndex === 1"> + <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0 || tabIndex === 1" @pagination="pagination" :height="'calc(100vh - 290px)'" :page="page" :tableLoading="tableLoading"></lims-table> </div> @@ -206,7 +208,25 @@ {label: '闆朵欢鍙�', prop: 'partNo'}, {label: '闆朵欢鎻忚堪', prop: 'partDesc'}, {label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName'}, - {label: '鐗╂枡绫诲瀷', prop: 'isExpire'}, + { + dataType: 'tag', + label: '鐗╂枡绫诲瀷', + prop: 'isExpire', + formatData: (params) => { + if (params == 1) { + return '杩囨湡鐗╂枡' + } else { + return '' + } + }, + formatType: (params) => { + if (params == 1) { + return 'info' + } else { + return '' + } + } + }, {label: '鍗曚綅', prop: 'buyUnitMeas'}, {label: '鎺ユ敹鏃堕棿', prop: 'receiverDate'}, {label: '鎶ユ鏃堕棿', prop: 'declareDate'}, @@ -214,7 +234,7 @@ dataType: 'action', fixed: 'right', label: '鎿嶄綔', - width: '140px', + width: '150px', operation: [ { name: '鎶ユ', @@ -271,7 +291,25 @@ {label: '鏍峰搧鍚嶇О', prop: 'sampleName'}, {label: '鏍峰搧鍨嬪彿', prop: 'sampleModel'}, {label: '妫�楠屼汉', prop: 'userName'}, - {label: '鐗╂枡绫诲瀷', prop: 'isExpire'}, + { + dataType: 'tag', + label: '鐗╂枡绫诲瀷', + prop: 'isExpire', + formatData: (params) => { + if (params == 1) { + return '杩囨湡鐗╂枡' + } else { + return '' + } + }, + formatType: (params) => { + if (params == 1) { + return 'info' + } else { + return '' + } + } + }, {label: '鍗曚綅', prop: 'buyUnitMeas'}, {label: '鎺ユ敹鏃堕棿', prop: 'receiverDate'}, {label: '鎶ユ鏃堕棿', prop: 'declareDate'}, diff --git a/src/views/structural/capabilityAndLaboratory/capability/index.vue b/src/views/structural/capabilityAndLaboratory/capability/index.vue index 3b7e31d..1bb6202 100644 --- a/src/views/structural/capabilityAndLaboratory/capability/index.vue +++ b/src/views/structural/capabilityAndLaboratory/capability/index.vue @@ -45,13 +45,13 @@ </el-form> <!-- 妫�楠岄」鐩弬鏁拌〃鏍�--> <div class="table" v-if="radio===0"> - <lims-table :tableData="tableData" :column="column" + <lims-table :tableData="tableData" :column="column" key="tableData" @pagination="pagination" :height="'calc(100vh - 290px)'" :page="page" :tableLoading="tableLoading"></lims-table> </div> <!-- 妫�楠屽璞¤〃鏍�--> <div class="table" v-if="radio===1"> - <lims-table :tableData="testObjectTableData" :column="testObjectColumn" + <lims-table :tableData="testObjectTableData" :column="testObjectColumn" key="testObjectTableData" @pagination="pagination" :height="'calc(100vh - 290px)'" :page="testObjectPage" :tableLoading="tableLoading"></lims-table> </div> -- Gitblit v1.9.3