From 8cf8aef0a99b4a2f7432542b13d705a575ae5cae Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期四, 01 八月 2024 14:01:55 +0800 Subject: [PATCH] 上线后优化 --- src/components/do/b1-ins-order/add.vue | 690 +++++++++++++++++++++++----------------------- src/components/view/b1-report-preparation.vue | 86 +++++ src/components/do/b1-inspect-order-plan/Inspection.vue | 85 +++++ src/components/view/b1-inspection-order.vue | 22 src/assets/api/controller.js | 2 5 files changed, 523 insertions(+), 362 deletions(-) diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js index 04cf0e3..394fb22 100644 --- a/src/assets/api/controller.js +++ b/src/assets/api/controller.js @@ -259,6 +259,8 @@ writeReport: "/insReport/writeReport", //鎶ュ憡鎻愪氦 examineReport: "/insReport/examineReport", //鎶ュ憡瀹℃牳 ratifyReport: "/insReport/ratifyReport", //鎶ュ憡鎵瑰噯 + downAll: "/insReport/downAll", //鎶ュ憡鎵归噺涓嬭浇 + upAll: "/insReport/upAll", //鎶ュ憡鎵归噺涓婁紶 } const warehouse = { diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index 328cd5b..e07d307 100644 --- a/src/components/do/b1-ins-order/add.vue +++ b/src/components/do/b1-ins-order/add.vue @@ -131,7 +131,7 @@ </style> <template> - <div class="ins_order_add"> + <div class="ins_order_add" style=" display: block; "> <div v-show="!configShow&&!equipConfigShow&&!cableConfigShow"> <el-row class="title"> <el-col :span="6" style="padding-left: 20px;text-align: left;">濮旀墭鍗曚俊鎭� 鎬讳环锛�<span @@ -164,355 +164,355 @@ </el-col> </el-row> </div> - <div style="height: (100vh - 200px);"> - <div class="search" v-show="!configShow&&!equipConfigShow&&!cableConfigShow"> - <el-row> - <el-col class="search_thing" :span="6"> - <div class="search_label">濮旀墭缂栧彿锛�</div> - <div class="search_input"> - <el-input v-model="addObj.entrustCode" size="small" placeholder="绯荤粺鐢熸垚" disabled></el-input> - </div> - </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label"><span class="required-span">* </span>妫�楠岀被鍒細</div> - <div class="search_input"> - <el-select size="small" style="width: 100%;" clearable v-model="addObj.orderType" :disabled="active>1"> - <el-option v-for="(a, ai) in orderType" :key="ai" :value="a.value" :label="a.label"></el-option> - </el-select> - </div> - </el-col> - <el-col class="search_thing" :span="6" > - <div class="search_label"><span class="required-span">* </span>鍒跺崟浜猴細</div> - <div class="search_input"> - <el-input size="small" clearable disabled v-model="addObj.custom"></el-input> - <!-- <el-input readonly size="small" v-model="addObj.custom"> - <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectUserDia = true" - :disabled="active>1"></el-button></template> - </el-input> --> - </div> - </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label"><span class="required-span">* </span>濮旀墭鍗曚綅锛�</div> - <div class="search_input"> - <!-- <el-input size="small" placeholder="鈫愰�夋嫨濮旀墭瀹㈡埛" clearable disabled v-model="addObj.company"></el-input> --> - <el-input readonly size="small" v-model="addObj.company" placeholder="閫夋嫨濮旀墭鍗曚綅"> - <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectUserDia = true" - :disabled="active>1"></el-button></template> - </el-input> - </div> - </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label"><span class="required-span">* </span>鑱旂郴鏂瑰紡锛�</div> - <div class="search_input"> - <el-input size="small" placeholder="閫夋嫨濮旀墭瀹㈡埛" clearable :readonly="active>1" v-model="addObj.phone"></el-input> - </div> - </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label"><span class="required-span">* </span>绱ф�ョ▼搴︼細</div> - <div class="search_input"> - <el-select size="small" style="width: 100%;" clearable v-model="addObj.type" :disabled="active>1"> - <el-option v-for="(a, ai) in type" :key="ai" :value="a.value" :label="a.label"></el-option> - </el-select> - </div> - </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label"><span class="required-span">* </span>鏍峰搧鍚嶇О锛�</div> - <div class="search_input"> - <el-input readonly size="small" v-model="addObj.sample"> - <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectStandardTree = true" - :disabled="active>1"></el-button></template> - </el-input> - </div> - </el-col> - <!-- <el-col class="search_thing" :span="6"> - <div class="search_label"><span class="required-span">* </span>鏍峰搧绫诲瀷锛�</div> - <div class="search_input"> - <el-input size="small" clearable disabled v-model="addObj.sampleType"></el-input> - </div> - </el-col> --> - <el-col class="search_thing" :span="6"> - <div class="search_label"><span class="required-span">* </span>鏍峰搧鏁伴噺锛�</div> - <div class="search_input"> - <el-input-number size="small" v-model="addObj.sampleNum" :min="1" :max="100" :precision="0" - style="width: 65%;" @change="addStandardTree" :disabled="active>1"></el-input-number> - </div> - </el-col> - <!-- <el-col class="search_thing" :span="6"> - <div class="search_label">鏍峰搧鍗曚綅锛�</div> - <div class="search_input"> - <el-select v-model="addObj.unit" clearable size="small" style="width: 100%;" :disabled="active>1"> - <el-option v-for="(a, i) in units" :key="i" :label="a.label" :value="a.value"></el-option> - </el-select> - </div> - </el-col> --> - <el-col class="search_thing" :span="6"> - <div class="search_label"><span class="required-span">* </span>鏉ユ牱鏂瑰紡锛�</div> - <div class="search_input"> - <el-select v-model="addObj.formType" size="small" :disabled="active>1" style="width: 100%;"> - <el-option v-for="(a,ai) in formType" :key="ai" :label="a.label" :value="a.value"></el-option> - </el-select> - </div> - </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label">鎶ュ憡鍙戦�佹柟寮忥細</div> - <div class="search_input"> - <el-radio-group v-model="addObj.send"> - <el-radio :label="1">鑷彇</el-radio> - <el-radio :label="0">鍏朵粬</el-radio> - </el-radio-group> - </div> - </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label">鏍峰搧澶勭悊鏂瑰紡锛�</div> - <div class="search_input"> - <el-radio-group v-model="addObj.processing"> - <el-radio :label="0">濮旀墭鍗曚綅鍙栧洖</el-radio> - <el-radio :label="1">瀹為獙瀹ゅ鐞�</el-radio> - </el-radio-group> - </div> - </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label">宸ョ▼鍚嶇О锛�</div> - <div class="search_input"> - <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.engineering" - :readonly="active>1"></el-input> - </div> - </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label">宸ョ▼鍚嶇ОEN锛�</div> - <div class="search_input"> - <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.engineeringEn" - :readonly="active>1"></el-input> - </div> - </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label"><span class="required-span">* </span>鐢熶骇鍗曚綅锛�</div> - <div class="search_input"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.production" - :readonly="active>1"></el-input> - </div> - </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label"><span class="required-span">* </span>鐢熶骇鍗曚綅EN锛�</div> - <div class="search_input"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.productionEn" - :readonly="active>1"></el-input> - </div> - </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label">鏄惁鐣欐牱锛�</div> - <div class="search_input"> - <el-radio-group v-model="addObj.isLeave"> - <el-radio :label="0">涓嶇暀鏍�</el-radio> - <el-radio :label="1">鐣欐牱</el-radio> - </el-radio-group> - </div> - </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label" style="width: 175px;">鏄惁娑夊強閰嶅鏍峰搧锛�</div> - <div class="search_input" style="width: calc(100% - 175px);"> - <el-radio-group v-model="addObj.mating" @change="$refs.sampleTable.doLayout()"> - <el-radio :label="1">鏄�</el-radio> - <el-radio :label="0">鍚�</el-radio> - </el-radio-group> - </div> - </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label">OTC璁㈠崟鍙凤細</div> - <div class="search_input"> - <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.otcCode" :readonly="active>1"></el-input> - </div> - </el-col> - <el-col class="search_thing" :span="6"> - <div class="search_label">濮旀墭浜猴細</div> - <div class="search_input"> - <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.prepareUser" :readonly="active>1"></el-input> - </div> - </el-col> - <el-col class="search_thing" :span="6" style="align-items: flex-start;margin: 8px 0;"> - <div class="search_label">澶囨敞锛�</div> - <div class="search_input"> - <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" size="small" clearable :placeholder="active>1 ? '' : '璇疯緭鍏�'" - v-model="addObj.remark" :readonly="active>1"></el-input> - </div> - </el-col> - <!-- <el-col class="search_thing" :span="6" v-if="active==1"> - <div class="search_label">RTS锛�</div> - <div class="search_input"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="RTS"></el-input> - </div> - </el-col> --> - </el-row> - </div> - <div v-show="!configShow&&!equipConfigShow&&!cableConfigShow"> - <div class="search" v-if="active==1" style="display: flex;background: transparent;"> - <div class="search_thing"> - <div class="search_label">鏍峰搧鍨嬪彿锛�</div> - <div class="search_input"> - <el-select v-model="model" :placeholder="active>1 ? '' : '璇疯緭鍏�'" filterable allow-create default-first-option size="small" - @change="changeModel"> - <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value"> - </el-option> - </el-select> - </div> - </div> - <div class="search_thing"> - <div class="search_label">妫�楠屾爣鍑嗭細</div> - <div class="search_input"> - <el-select v-model="standardMethodListId" :placeholder="active>1 ? '' : '璇疯緭鍏�'" size="small" @focus="methodFocus" - :loading="methodLoad" @change="changeStandardMethodListId"> - <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> - </el-option> - </el-select> - </div> - </div> + <div v-show="!configShow&&!equipConfigShow&&!cableConfigShow" class="container"> + <div class="search"> + <el-row> + <el-col class="search_thing" :span="6"> + <div class="search_label">濮旀墭缂栧彿锛�</div> + <div class="search_input"> + <el-input v-model="addObj.entrustCode" size="small" placeholder="绯荤粺鐢熸垚" disabled></el-input> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label"><span class="required-span">* </span>妫�楠岀被鍒細</div> + <div class="search_input"> + <el-select size="small" style="width: 100%;" clearable v-model="addObj.orderType" :disabled="active>1"> + <el-option v-for="(a, ai) in orderType" :key="ai" :value="a.value" :label="a.label"></el-option> + </el-select> + </div> + </el-col> + <el-col class="search_thing" :span="6" > + <div class="search_label"><span class="required-span">* </span>鍒跺崟浜猴細</div> + <div class="search_input"> + <el-input size="small" clearable disabled v-model="addObj.custom"></el-input> + <!-- <el-input readonly size="small" v-model="addObj.custom"> + <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectUserDia = true" + :disabled="active>1"></el-button></template> + </el-input> --> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label"><span class="required-span">* </span>濮旀墭鍗曚綅锛�</div> + <div class="search_input"> + <!-- <el-input size="small" placeholder="鈫愰�夋嫨濮旀墭瀹㈡埛" clearable disabled v-model="addObj.company"></el-input> --> + <el-input readonly size="small" v-model="addObj.company" placeholder="閫夋嫨濮旀墭鍗曚綅"> + <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectUserDia = true" + :disabled="active>1"></el-button></template> + </el-input> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label"><span class="required-span">* </span>鑱旂郴鏂瑰紡锛�</div> + <div class="search_input"> + <el-input size="small" placeholder="閫夋嫨濮旀墭瀹㈡埛" clearable :readonly="active>1" v-model="addObj.phone"></el-input> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label"><span class="required-span">* </span>绱ф�ョ▼搴︼細</div> + <div class="search_input"> + <el-select size="small" style="width: 100%;" clearable v-model="addObj.type" :disabled="active>1"> + <el-option v-for="(a, ai) in type" :key="ai" :value="a.value" :label="a.label"></el-option> + </el-select> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label"><span class="required-span">* </span>鏍峰搧鍚嶇О锛�</div> + <div class="search_input"> + <el-input readonly size="small" v-model="addObj.sample"> + <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectStandardTree = true" + :disabled="active>1"></el-button></template> + </el-input> + </div> + </el-col> + <!-- <el-col class="search_thing" :span="6"> + <div class="search_label"><span class="required-span">* </span>鏍峰搧绫诲瀷锛�</div> + <div class="search_input"> + <el-input size="small" clearable disabled v-model="addObj.sampleType"></el-input> + </div> + </el-col> --> + <el-col class="search_thing" :span="6"> + <div class="search_label"><span class="required-span">* </span>鏍峰搧鏁伴噺锛�</div> + <div class="search_input"> + <el-input-number size="small" v-model="addObj.sampleNum" :min="1" :max="100" :precision="0" + style="width: 65%;" @change="addStandardTree" :disabled="active>1"></el-input-number> + </div> + </el-col> + <!-- <el-col class="search_thing" :span="6"> + <div class="search_label">鏍峰搧鍗曚綅锛�</div> + <div class="search_input"> + <el-select v-model="addObj.unit" clearable size="small" style="width: 100%;" :disabled="active>1"> + <el-option v-for="(a, i) in units" :key="i" :label="a.label" :value="a.value"></el-option> + </el-select> + </div> + </el-col> --> + <el-col class="search_thing" :span="6"> + <div class="search_label"><span class="required-span">* </span>鏉ユ牱鏂瑰紡锛�</div> + <div class="search_input"> + <el-select v-model="addObj.formType" size="small" :disabled="active>1" style="width: 100%;"> + <el-option v-for="(a,ai) in formType" :key="ai" :label="a.label" :value="a.value"></el-option> + </el-select> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label">鎶ュ憡鍙戦�佹柟寮忥細</div> + <div class="search_input"> + <el-radio-group v-model="addObj.send"> + <el-radio :label="1">鑷彇</el-radio> + <el-radio :label="0">鍏朵粬</el-radio> + </el-radio-group> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label">鏍峰搧澶勭悊鏂瑰紡锛�</div> + <div class="search_input"> + <el-radio-group v-model="addObj.processing"> + <el-radio :label="0">濮旀墭鍗曚綅鍙栧洖</el-radio> + <el-radio :label="1">瀹為獙瀹ゅ鐞�</el-radio> + </el-radio-group> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label">宸ョ▼鍚嶇О锛�</div> + <div class="search_input"> + <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.engineering" + :readonly="active>1"></el-input> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label">宸ョ▼鍚嶇ОEN锛�</div> + <div class="search_input"> + <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.engineeringEn" + :readonly="active>1"></el-input> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label"><span class="required-span">* </span>鐢熶骇鍗曚綅锛�</div> + <div class="search_input"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.production" + :readonly="active>1"></el-input> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label"><span class="required-span">* </span>鐢熶骇鍗曚綅EN锛�</div> + <div class="search_input"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.productionEn" + :readonly="active>1"></el-input> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label">鏄惁鐣欐牱锛�</div> + <div class="search_input"> + <el-radio-group v-model="addObj.isLeave"> + <el-radio :label="0">涓嶇暀鏍�</el-radio> + <el-radio :label="1">鐣欐牱</el-radio> + </el-radio-group> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label" style="width: 175px;">鏄惁娑夊強閰嶅鏍峰搧锛�</div> + <div class="search_input" style="width: calc(100% - 175px);"> + <el-radio-group v-model="addObj.mating" @change="$refs.sampleTable.doLayout()"> + <el-radio :label="1">鏄�</el-radio> + <el-radio :label="0">鍚�</el-radio> + </el-radio-group> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label">OTC璁㈠崟鍙凤細</div> + <div class="search_input"> + <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.otcCode" :readonly="active>1"></el-input> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label">濮旀墭浜猴細</div> + <div class="search_input"> + <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.prepareUser" :readonly="active>1"></el-input> + </div> + </el-col> + <el-col class="search_thing" :span="6" style="align-items: flex-start;margin: 8px 0;"> + <div class="search_label">澶囨敞锛�</div> + <div class="search_input"> + <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" size="small" clearable :placeholder="active>1 ? '' : '璇疯緭鍏�'" + v-model="addObj.remark" :readonly="active>1"></el-input> + </div> + </el-col> + <!-- <el-col class="search_thing" :span="6" v-if="active==1"> + <div class="search_label">RTS锛�</div> + <div class="search_input"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="RTS"></el-input> + </div> + </el-col> --> + </el-row> </div> - <el-table class="el-table sampleTable" ref="sampleTable" :data="sampleList" height="250px" tooltip-effect="dark" - border @selection-change="selectSample" highlight-current-row @row-click="rowClick" style="margin-top: 10px;"> - <el-table-column type="selection" width="60" :selectable="selectable" v-if="active==1"></el-table-column> - <el-table-column type="index" label="搴忓彿" width="65" align="center"></el-table-column> - <el-table-column prop="sample" label="鏍峰搧鍚嶇О" align="center" min-width="100"> - <template slot-scope="scope"> - <el-input size="small" v-model="scope.row.sample" clearable :readonly="active>1"></el-input> - </template> - </el-table-column> - <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿" min-width="140" align="center"> - <template slot-scope="scope"> - <el-input size="small" v-model="scope.row.sampleCode" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚" - :readonly="active>1"></el-input> - </template> - </el-table-column> - <el-table-column prop="model" label="鏍峰搧鍨嬪彿" align="center" min-width="100"> - <template slot-scope="scope"> - <el-select v-model="scope.row.model" filterable allow-create default-first-option placeholder="鏍峰搧鍨嬪彿" - size="small" @change="handleChangeModel" :disabled="active>1" style="width: 100%;"> - <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value"> - </el-option> - </el-select> - </template> - </el-table-column> - <el-table-column prop="modelNum" label="鍨嬪彿鍙傛暟" width="130" align="center" v-if="!(active>1)"> - <template slot-scope="scope"> - <el-input size="small" v-model="scope.row.modelNum" clearable placeholder="闈炲繀濉�" - @keyup.enter.native="methodChange(scope.row.standardMethodListId, scope.row)" - @clear="methodChange(scope.row.standardMethodListId, scope.row)"></el-input> - </template> - </el-table-column> - <el-table-column prop="standardMethodListId" label="妫�楠屾爣鍑�" align="center" min-width="100"> - <template slot-scope="scope"> - <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model==null||active>1" - placeholder="妫�楠屾爣鍑�" size="small" :loading="methodLoad" @change="(value)=>methodChange(value, scope.row)" - @focus="methodFocus" :readonly="active>1" style="width: 100%;" clearable @clear="productList = []"> - <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> - </el-option> - </el-select> - </template> - </el-table-column> - <el-table-column prop="joinName" label="閰嶅鏍峰搧鍚嶇О" width="140" align="center" v-if="addObj.mating==1"> - <template slot-scope="scope"> - <el-input size="small" type="textarea" :autosize="{ minRows: 1, maxRows: 1}" - v-model="scope.row.joinName"></el-input> - </template> - </el-table-column> - <el-table-column prop="joinModel" label="閰嶅鏍峰搧鍨嬪彿" width="140" align="center" v-if="addObj.mating==1"> - <template slot-scope="scope"> - <el-input size="small" type="textarea" :autosize="{ minRows: 1, maxRows: 1}" - v-model="scope.row.joinModel"></el-input> - </template> - </el-table-column> - <el-table-column prop="joinNum" label="閰嶅鏍峰搧鏁伴噺" width="140" align="center" v-if="addObj.mating==1"> - <template slot-scope="scope"> - <el-input-number size="small" v-model="scope.row.joinNum" :min="1" :max="100" :precision="0" - :controls="false" style="width: 80%;"></el-input-number> - </template> - </el-table-column> - <el-table-column prop="proNum" label="寰呮椤规暟閲�" width="105" align="center"></el-table-column> - </el-table> - <el-table class="el-table" ref="productTable" :data="productList" height="380px" tooltip-effect="dark" border - @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect" :row-key="rowKey" - :row-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll"> - <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1" :reserve-selection="true"></el-table-column> - <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" 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" - @input="searchFilterList" - size="mini" - placeholder="璇疯緭鍏�"/> + <div style="height: auto;"> + <div class="search" v-if="active==1" style="display: flex;background: transparent;"> + <div class="search_thing"> + <div class="search_label">鏍峰搧鍨嬪彿锛�</div> + <div class="search_input"> + <el-select v-model="model" :placeholder="active>1 ? '' : '璇疯緭鍏�'" filterable allow-create default-first-option size="small" + @change="changeModel"> + <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> </div> - </template> - </el-table-column> - <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140" - 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" + </div> + <div class="search_thing"> + <div class="search_label">妫�楠屾爣鍑嗭細</div> + <div class="search_input"> + <el-select v-model="standardMethodListId" :placeholder="active>1 ? '' : '璇疯緭鍏�'" size="small" @focus="methodFocus" + :loading="methodLoad" @change="changeStandardMethodListId"> + <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> + </el-option> + </el-select> + </div> + </div> + </div> + <el-table class="el-table sampleTable" ref="sampleTable" :data="sampleList" height="250px" tooltip-effect="dark" + border @selection-change="selectSample" highlight-current-row @row-click="rowClick" style="margin-top: 10px;"> + <el-table-column type="selection" width="60" :selectable="selectable" v-if="active==1"></el-table-column> + <el-table-column type="index" label="搴忓彿" width="65" align="center"></el-table-column> + <el-table-column prop="sample" label="鏍峰搧鍚嶇О" align="center" min-width="100"> + <template slot-scope="scope"> + <el-input size="small" v-model="scope.row.sample" clearable :readonly="active>1"></el-input> + </template> + </el-table-column> + <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿" min-width="140" align="center"> + <template slot-scope="scope"> + <el-input size="small" v-model="scope.row.sampleCode" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚" + :readonly="active>1"></el-input> + </template> + </el-table-column> + <el-table-column prop="model" label="鏍峰搧鍨嬪彿" align="center" min-width="100"> + <template slot-scope="scope"> + <el-select v-model="scope.row.model" filterable allow-create default-first-option placeholder="鏍峰搧鍨嬪彿" + size="small" @change="handleChangeModel" :disabled="active>1" style="width: 100%;"> + <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </template> + </el-table-column> + <el-table-column prop="modelNum" label="鍨嬪彿鍙傛暟" width="130" align="center" v-if="!(active>1)"> + <template slot-scope="scope"> + <el-input size="small" v-model="scope.row.modelNum" clearable placeholder="闈炲繀濉�" + @keyup.enter.native="methodChange(scope.row.standardMethodListId, scope.row)" + @clear="methodChange(scope.row.standardMethodListId, scope.row)"></el-input> + </template> + </el-table-column> + <el-table-column prop="standardMethodListId" label="妫�楠屾爣鍑�" align="center" min-width="100"> + <template slot-scope="scope"> + <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model==null||active>1" + placeholder="妫�楠屾爣鍑�" size="small" :loading="methodLoad" @change="(value)=>methodChange(value, scope.row)" + @focus="methodFocus" :readonly="active>1" style="width: 100%;" clearable @clear="productList = []"> + <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> + </el-option> + </el-select> + </template> + </el-table-column> + <el-table-column prop="joinName" label="閰嶅鏍峰搧鍚嶇О" width="140" align="center" v-if="addObj.mating==1"> + <template slot-scope="scope"> + <el-input size="small" type="textarea" :autosize="{ minRows: 1, maxRows: 1}" + v-model="scope.row.joinName"></el-input> + </template> + </el-table-column> + <el-table-column prop="joinModel" label="閰嶅鏍峰搧鍨嬪彿" width="140" align="center" v-if="addObj.mating==1"> + <template slot-scope="scope"> + <el-input size="small" type="textarea" :autosize="{ minRows: 1, maxRows: 1}" + v-model="scope.row.joinModel"></el-input> + </template> + </el-table-column> + <el-table-column prop="joinNum" label="閰嶅鏍峰搧鏁伴噺" width="140" align="center" v-if="addObj.mating==1"> + <template slot-scope="scope"> + <el-input-number size="small" v-model="scope.row.joinNum" :min="1" :max="100" :precision="0" + :controls="false" style="width: 80%;"></el-input-number> + </template> + </el-table-column> + <el-table-column prop="proNum" label="寰呮椤规暟閲�" width="105" align="center"></el-table-column> + </el-table> + <el-table class="el-table" ref="productTable" :data="productList" height="380px" tooltip-effect="dark" border + @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect" :row-key="rowKey" + :row-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll"> + <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1" :reserve-selection="true"></el-table-column> + <el-table-column prop="inspectionItemClass" v-if="PROJECT === '瑁呭鐢电紗'" label="妫�楠岄」鍒嗙被" min-width="140" show-overflow-tooltip></el-table-column> + <el-table-column prop="inspectionItemClassEn" v-if="PROJECT === '瑁呭鐢电紗'" label="妫�楠岄」鍒嗙被(EN)" min-width="140" show-overflow-tooltip></el-table-column> + <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" 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" @input="searchFilterList" size="mini" placeholder="璇疯緭鍏�"/> - </div> - </template> - </el-table-column> - <el-table-column prop="inspectionItemClass" v-if="PROJECT === '瑁呭鐢电紗'" label="妫�楠岄」鍒嗙被" min-width="140" show-overflow-tooltip></el-table-column> - <el-table-column prop="inspectionItemClassEn" v-if="PROJECT === '瑁呭鐢电紗'" label="妫�楠岄」鍒嗙被(EN)" min-width="140" show-overflow-tooltip></el-table-column> - <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" min-width="130" show-overflow-tooltip :filters="filters" - :filter-method="filterHandler"></el-table-column> - <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="120" 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" - @input="searchFilterList" - size="mini" - placeholder="璇疯緭鍏�"/> - </div> - </template> - </el-table-column> - <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column> - <el-table-column prop="price" label="鍗曚环" width="100" show-overflow-tooltip></el-table-column> - <!-- <el-table-column prop="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 prop="section" label="鍖洪棿" min-width="120" show-overflow-tooltip></el-table-column> - <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="220px" v-if="isAskOnlyRead"> - <template slot-scope="scope"> - <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable type="textarea" - :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row,'ask')" - v-if="active==1&&isAskOnlyRead"></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 prop="tell" label="瑕佹眰鎻忚堪" min-width="220px"> - <template slot-scope="scope"> - <el-input size="small" placeholder="瑕佹眰鎻忚堪" v-model="scope.row.tell" clearable type="textarea" - :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row,'tell')" - v-if="active==1&&isAskOnlyRead"></el-input> - <span v-else> - <template >{{ scope.row.tell }}</template> - </span> - </template> - </el-table-column> - </el-table> - </div> + </div> + </template> + </el-table-column> + <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140" + 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" + @input="searchFilterList" + size="mini" + placeholder="璇疯緭鍏�"/> + </div> + </template> + </el-table-column> + <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="220px" v-if="isAskOnlyRead"> + <template slot-scope="scope"> + <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable type="textarea" + :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row,'ask')" + v-if="active==1&&isAskOnlyRead"></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 prop="tell" label="瑕佹眰鎻忚堪" min-width="220px"> + <template slot-scope="scope"> + <el-input size="small" placeholder="瑕佹眰鎻忚堪" v-model="scope.row.tell" clearable type="textarea" + :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row,'tell')" + v-if="active==1&&isAskOnlyRead"></el-input> + <span v-else> + <template >{{ scope.row.tell }}</template> + </span> + </template> + </el-table-column> + <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="120" 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" + @input="searchFilterList" + size="mini" + placeholder="璇疯緭鍏�"/> + </div> + </template> + </el-table-column> + <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column> + <el-table-column prop="price" label="鍗曚环" width="100" show-overflow-tooltip></el-table-column> + <!-- <el-table-column prop="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 prop="section" label="鍖洪棿" min-width="120" show-overflow-tooltip></el-table-column> + <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" min-width="130" show-overflow-tooltip :filters="filters" + :filter-method="filterHandler"></el-table-column> + </el-table> + </div> </div> <el-dialog title="閫夋嫨鍗曚綅" :visible.sync="selectUserDia" width="70%"> <div class="body" style="height: 60vh;" v-if="selectUserDia"> diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue index de39416..a87fd58 100644 --- a/src/components/do/b1-inspect-order-plan/Inspection.vue +++ b/src/components/do/b1-inspect-order-plan/Inspection.vue @@ -784,6 +784,46 @@ <el-button type="primary" @click="submit()">纭� 瀹�</el-button> </span> </el-dialog> + <el-dialog title="鏁版嵁閲囬泦" :visible.sync="dataGetDia" min-width="400px" :close-on-click-modal="false" :close-on-press-escape="false" :before-close="beforeDataGetDia"> + <div> + <table border="1" cellpadding="10" class="thermal-table"> + <tr> + <td style="width: 120px;">妫�楠岄」</td> + <td style="width: 120px;">妫�楠屽瓙椤�</td> + <td>鏁伴噰鏁版嵁</td> + </tr> + <template v-for="(item,index) in getData"> + <tr> + <td :rowspan="item.child.length">{{item.faName}}</td> + <td>{{ item.child[0].name }}</td> + <td> + <el-checkbox-group + v-model="item.child[0].value" + :min="0" + :max="item.child[0].maxNum"> + <el-checkbox v-for="(n,j) in item.child[0].arr" :label="n" :key="j+'ppppppppp'">{{n}}</el-checkbox> + </el-checkbox-group> + </td> + </tr> + <tr v-for="(m,i) in item.child" :key="i+'bbbbbbbbbbbbbb'" v-show="i>0"> + <td>{{ m.name }}</td> + <td> + <el-checkbox-group + v-model="m.value" + :min="0" + :max="m.maxNum"> + <el-checkbox v-for="(n,j) in m.arr" :label="n" :key="j+'bbbbbbbbbbbbbb'">{{n}}</el-checkbox> + </el-checkbox-group> + </td> + </tr> + </template> + </table> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="beforeDataGetDia()">鍙� 娑�</el-button> + <el-button type="primary" @click="submitDataGet()">纭� 瀹�</el-button> + </span> + </el-dialog> </div> </template> @@ -798,6 +838,7 @@ }, data() { return { + dataGetDia:false, wareTableDataLoading:false, fileAdd:false, sampleVisible: false, @@ -961,6 +1002,36 @@ }, thermalCyclingLoading:false, temDataAcquisition:false, + getData:[ + { + faName:'娉㈤暱闄勫姞琛板噺', + child:[ + { + name:'1285nm~1330nm', + arr:[12,13], + maxNum:1, + value:[] + }, + { + name:'1525nm~1575nm', + arr:[12,13], + maxNum:1, + value:[] + }, + ] + }, + { + faName:'鎴嚦娉㈤暱', + child:[ + { + name:'鎴嚦娉㈤暱', + arr:[12,13,14,15], + maxNum:3, + value:[] + } + ] + } + ] } }, computed: { @@ -1218,6 +1289,20 @@ }) } }, + beforeDataGetDia(done){ + this.$confirm('鏄惁鍙栨秷鏁版嵁閲囬泦?', "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + if(done){ + done() + }else{ + this.dataGetDia = false + } + }).catch(() => {}) + }, + submitDataGet(){}, // 澶氱嚎绋� startWorker() { if (this.worker) { diff --git a/src/components/view/b1-inspection-order.vue b/src/components/view/b1-inspection-order.vue index da47dd9..3860336 100644 --- a/src/components/view/b1-inspection-order.vue +++ b/src/components/view/b1-inspection-order.vue @@ -135,8 +135,8 @@ border: none !important; } .scor{ - width: 3px; - height: 3px; + width: 0.01cm; + height: 0.01cm; border-radius: 1px; border: 1px solid #000; display: inline-block; @@ -383,32 +383,32 @@ </el-row> </span> </el-dialog> - <div class="el-dialog__body" style="display:none;overflow-y: auto;margin-top: 0;position: fixed;top: 999px;z-index: 99999;"> + <div class="el-dialog__body" style="overflow-y: auto;margin-top: 0;position: fixed;top: 999px;z-index: 99999;display: none;"> <div id="printMOrder"> - <el-card class="box-card" v-for="(item, i) in checkDataList" :key="i" style="font-size: 8px !important;page-break-after: always;color: #000;box-shadow: none;" > + <el-card class="box-card" v-for="(item, i) in checkDataList" :key="i" style="font-size: 0.21cm !important;page-break-after: always;color: #000;box-shadow: none;" > <div style="display: flex;"> <div> <el-col :span="10" :offset="2"> <vueQr :text="JSON.stringify(item.sampleCode)" :size="78" :margin="2"></vueQr> </el-col> </div> - <div style="margin-left: 12px;line-height: 9px;"> + <div style="margin-left: 0.32cm;line-height: 0.25cm;"> <el-row> - <el-col style="font-size: 8px;"><span>鏍峰搧缂栧彿: </span>{{ item.sampleCode }}</el-col> + <el-col style="font-size: 0.21cm;"><span>鏍峰搧缂栧彿: </span>{{ item.sampleCode }}</el-col> </el-row> - <el-row style="font-size: 8px;"> + <el-row style="font-size: 0.21cm;"> <el-col><span>濮旀墭鍗曞彿: </span>{{ item.code }}</el-col> </el-row> - <el-row style="font-size: 8px;"> + <el-row style="font-size: 0.21cm;"> <el-col><span>瑙勬牸鍨嬪彿: </span>{{ item.model }}</el-col> </el-row> - <el-row style="font-size: 8px;"> + <el-row style="font-size: 0.21cm;"> <el-col ><span>鏍峰搧鍚嶇О: </span>{{ item.sampleName }}</el-col> </el-row> - <el-row style="font-size: 8px;width: 140px;"> + <el-row style="font-size: 0.21cm;width: 4.77cm;"> <el-col class="ellipsis-multiline"><span>妫�娴嬮」鐩�: </span>{{ item.item }}</el-col> </el-row> - <el-row style="margin-top: 3px;font-size: 8px;"> + <el-row style="margin-top: 0.01cm;font-size: 0.21cm;"> <el-col style="display: flex;align-items: center;"><span>鏍峰搧鐘舵��: </span> <span style="white-space: nowrap;"><span v-if="item.insState==0">鈭�</span><span class="scor" v-if="item.insState!=0"></span>寰呮 diff --git a/src/components/view/b1-report-preparation.vue b/src/components/view/b1-report-preparation.vue index 9ad9eb6..93f9d91 100644 --- a/src/components/view/b1-report-preparation.vue +++ b/src/components/view/b1-report-preparation.vue @@ -47,8 +47,11 @@ .btns { position: absolute; - right: 100px; - top: 17px; + right: 40px; + top: 50%; + transform: translate(0, -50%); + display: flex; + align-items: center; } .fullscreen { @@ -64,7 +67,7 @@ <el-col :span="12" style="padding-left: 20px;text-align: left;">鎶ュ憡缂栧埗</el-col> </el-row> </div> - <div class="search"> + <div class="search" style="position: relative;"> <div class="search_thing"> <div class="search_label">鎶ュ憡缂栧彿锛�</div> <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable @@ -80,6 +83,22 @@ <div class="search_thing" style="padding-left: 30px;"> <el-button size="small" @click="refresh()">閲� 缃�</el-button> <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> + </div> + <div class="btns"> + <el-button size="small" type="primary" @click="handleDowns" :loading="outLoading" style="margin-right: 16px;">鎵归噺涓嬭浇</el-button> + <!-- <el-upload + class="upload-demo" + :action="action" + :headers="headers" + :show-file-list="false" + accept=".zip" + :limit="1" + :before-upload="beforeUpload" + :on-success="handleSuccess" + ref="upload" + :on-error="onError"> + <el-button size="small" type="primary">鎵归噺涓婁紶</el-button> + </el-upload> --> </div> </div> <!-- <input id="input" type="file" accept=".doc,.docx"></input> --> @@ -173,8 +192,9 @@ } }, isIndex: true, - showSelect: false, - select: false, + showSelect: true, + select: true, + selectMethod: 'handleChange', do: [ { id: 'handleWeave', @@ -298,9 +318,21 @@ value: ``, reason: '', currentInfo: null, - option:null + option:null, + mutiList:[], + outLoading:false } }, + computed: { + headers() { + return { + 'token': sessionStorage.getItem('token') + } + }, + action() { + return this.javaApi + this.$api.insReport.upAll + } + }, mounted() { this.entityCopy = this.HaveJson(this.componentData.entity) this.getPower() @@ -333,6 +365,48 @@ // } }, methods: { + handleChange(arr){ + this.mutiList = arr + }, + handleDowns(){ + if(this.mutiList.length==0){ + this.$message.error('璇烽�夋嫨鎶ュ憡') + return + } + let str = this.mutiList.map(m=>m.id).join(',') + this.outLoading = true + this.$axios.get(this.$api.insReport.downAll+'?ids='+str).then(res => { + this.outLoading = false + this.$message.success('瀵煎嚭鎴愬姛') + // const blob = new Blob([res],{ type: 'application/octet-stream' }); + // const url = URL.createObjectURL(blob); + // const link = document.createElement('a'); + // link.href = url; + // link.download = '鎶ュ憡.zip'; + // link.click(); + const link = document.createElement('a'); + link.href = this.javaApi + res.message; + link.target = '_blank'; + document.body.appendChild(link); + link.click(); + }) + }, + beforeUpload(file){ + const isZip = file.type === 'application/zip' || file.name.endsWith('.zip'); + if (!isZip) { + this.$message.error('涓婁紶鏂囦欢鍙兘鏄� ZIP 鏍煎紡!'); + } + return isZip; + }, + handleSuccess(response,){ + if (response.code == 200) { + this.$message.success('瀵煎叆鎴愬姛') + } + }, + onError(err, file, fileList,type) { + this.$message.error('涓婁紶澶辫触') + this.$refs.upload.clearFiles() + }, refreshTable(e) { this.$refs['ValueTable'].selectList(e) }, -- Gitblit v1.9.3