From b984c7c63ec686298846555bb2fe14839cc6e1c5 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期三, 19 二月 2025 10:07:49 +0800 Subject: [PATCH] 监督计划明细字段展示修改 --- src/components/view/b1-inspect-order-plan.vue | 1578 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 1,337 insertions(+), 241 deletions(-) diff --git a/src/components/view/b1-inspect-order-plan.vue b/src/components/view/b1-inspect-order-plan.vue index 2216473..2cfc34e 100644 --- a/src/components/view/b1-inspect-order-plan.vue +++ b/src/components/view/b1-inspect-order-plan.vue @@ -1,274 +1,1370 @@ <style scoped> -.ins-order-plan-main{ - padding-top: 60px; -} -.ins-order-plan-main .search{ - width: 100%; - margin-bottom: 10px; - height: 10vh; - background-color: #fff; - border-radius: 3px; -} -.search .form-inline{ - height: 5vh; - padding-top:2.5vh; - padding-left: 1%; -} -.ins-order-plan-main .center{ - width: 100%; - height: 70vh; - background-color: #fff; - border-radius: 3px; -} -.ins-order-plan-main .center .value-table{ - width:98%; - height: 80%; - margin-left:1%; -} -.tab { - list-style-type: none; - display: flex; - padding: 10px 0px; -} -.tab li { - line-height: 24px; - padding: 6px 14px; - font-size: 14px; - color: #333333; - border: 1px solid #EEEEEE; - cursor: pointer; -} + .ins-order-plan-main .title { + font-size: 20px; + color: #3A7BFA + } -.tab li:nth-child(1) { - border-radius: 8px 0 0 8px; -} + .search { + background-color: #fff; + height: 80px; + display: flex; + align-items: center; + } -.tab li:nth-child(3) { - border-radius: 0 8px 8px 0; -} + .search_thing { + display: flex; + align-items: center; + height: 50px; + } -.tab li.active { - border-color: #3A7BFA; - color: #3A7BFA; -} -.center .center-options:nth-child(1){ - padding-left: 1%; -} -.center .center-options .center-title { - width:85%; - padding-top: 20px; - text-align: right; -} -.center .center-options .center-title span:last-child{ - color: #3A7BFA; - font-size: 23px; - font-weight: 400; -} + .search_label { + width: 120px; + font-size: 14px; + text-align: right; + } + .search_input { + width: calc(100% - 120px); + } + + .ins-order-plan-main .search { + width: 100%; + margin-bottom: 10px; + height: 80px; + background-color: #fff; + border-radius: 3px; + } + + .search .form-inline { + height: 50px; + padding-top: 20px; + padding-left: 50px; + } + + .ins-order-plan-main .center { + width: calc(100% - 40px); + height: calc(100% - 60px - 80px - 40px); + background-color: #fff; + border-radius: 3px; + padding: 20px; + } + + .ins-order-plan-main .center .value-table { + width: 100%; + height: calc(100% - 68px); + } + + .tab { + list-style-type: none; + display: flex; + } + + .tab li { + line-height: 24px; + padding: 6px 14px; + font-size: 14px; + color: #333333; + border: 1px solid #EEEEEE; + cursor: pointer; + } + + .tab li:nth-child(1) { + border-radius: 8px 0 0 8px; + } + + .tab li:nth-last-child(1) { + border-radius: 0 8px 8px 0; + } + + .tab li.active { + border-color: #3A7BFA; + color: #3A7BFA; + } + + .center .center-options .center-title { + width: 100%; + display: flex; + align-items: center; + justify-content: right; + } + + .center .center-options .center-title span:last-child { + color: #3A7BFA; + font-size: 23px; + font-weight: 400; + } + + .view-self-checkbox { + margin-left: 50px; + } + .draggable-row { + cursor: move; + position: relative; + } + .node_i { + color: orange; + font-size: 18px; + } + .custom-tree-node .el-button { + opacity: 0; + } + + .custom-tree-node:hover .el-button { + opacity: 1; + } + .el-dialog { + position: relative; + } +</style> +<style> + .ins-order-plan-main .el-form-item__label{ + color: #000; + } + + .ins-order-plan-main .el-table th.el-table__cell>.cell{ + height: 46px; + line-height: 30px; + } </style> <template> - <div class="ins-order-plan-main"> - <div class="search"> - <el-form :inline="true" :model="searchForm" class="form-inline"> - <el-form-item label="鏍峰搧鍚嶇О:"> - <el-input clearable v-model="searchForm.sampleName" size="small" placeholder="璇疯緭鍏�"></el-input> - </el-form-item> - <el-form-item label="鐘舵��:"> - <el-select clearable size="small" v-model="searchForm.state" placeholder="璇烽�夋嫨"> - <el-option v-for="(item,index) in insStateList" :key="index" - :label="item.label" :value="item.value"></el-option> + <div class="ins-order-plan-main"> + <div v-show="activeFace == 0&&state==0" style="height: 100%;"> + <p style="font-size: 16px;padding-left: 20px;text-align: left;height: 60px;line-height: 60px;">妫�楠屼换鍔�</p> + <div class="search"> + <div class="search_thing"> + <div class="search_label">濮旀墭缂栧彿锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="componentData.entity.entrustCode" @keyup.enter.native="refreshTable()"></el-input></div> + </div> + <div class="search_thing"> + <div class="search_label">妫�楠岀姸鎬侊細</div> + <div class="search_input"> + <el-select size="small" v-model="componentData.entity.insState" style="width: 100%;" @change="refreshTable()"> + <el-option v-for="(a, i) in insStateList" :key="i" :label="a.label" :value="a.value"></el-option> + </el-select> + </div> + </div> + <div class="search_thing"> + <div class="search_label">鏍峰搧缂栧彿锛�</div> + <div class="search_input"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="componentData.entity.sampleCOde" @keyup.enter.native="refreshTable()"></el-input> + </div> + </div> + <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> + <div class="center"> + <div class="center-options"> + <el-row> + <el-col :span="18"> + <div style="display: flex;align-items: center;margin-bottom: 10px;"> + <ul class="tab"> + <li v-for="(m,i) in tabList" :key="i" :class="{active:i==tabIndex}" @click="handleTab(m,i)">{{m.label.replace('璇曢獙瀹�','')}} + </li> + </ul> + <div> + <el-checkbox @change="changeCheckBox" class="view-self-checkbox" + v-model="alone"><span>鎴戠殑浠诲姟</span></el-checkbox> + </div> + </div> + </el-col> + <el-col :span="6"> + <div class="center-title"> + <el-button size="small" type="primary" @click="qrCodeVisible=true" v-if="selectWarehouse">鎵爜鎶ユ</el-button> + <el-button size="small" type="primary" @click="exportVisible=true" style="margin-right: 16px;" v-if="selectWarehouse">鍑哄簱</el-button> + <span>鎬昏浠诲姟鏁伴噺:</span> + <span>{{total}}</span> + </div> + </el-col> + </el-row> + </div> + <!-- <ValueTable :tableRowClassName="changeRowClass" class="value-table" ref="insOrderPlan" + :isColumnWidth="true" + :url="$api.insOrderPlan.selectInsOrderPlanList" :upUrl="$api.user.updateUser" :componentData="componentData" @handleInspection="handleInspection" + :key="upIndex"/> --> + <el-table + :data="tableData" + ref="table0" + border + style="width: 100%;" + height="calc(100% - 80px)" + :row-class-name="rowClassName" + v-loading="tableLoading" + row-key="orderStateId" + > + <el-table-column + prop="entrustCode" + label="濮旀墭缂栧彿" + width="140px" + > + <template slot-scope="scope"> + <el-button @click="selectAllByOne(scope.row)" type="text" size="small">{{ scope.row.entrustCode }}</el-button> + </template> + </el-table-column> + <el-table-column + prop="sample" + label="鏍峰搧鍚嶇О" + width="100px" + ></el-table-column> + <el-table-column + prop="sampleCode" + label="鏍峰搧缂栧彿" + width="170px" + ></el-table-column> + <el-table-column + prop="type" + label="绱ф�ョ▼搴�" + width="100px" + > + <template slot-scope="scope"> + <el-tag :type="typeList.find(m=>m.value==scope.row.type)?typeList.find(m=>m.value==scope.row.type).type:''" size="small">{{ typeList.find(m=>m.value==scope.row.type)?typeList.find(m=>m.value==scope.row.type).label:'' }}</el-tag> + </template> + </el-table-column> + <el-table-column + prop="insState" + label="鐘舵��" + width="100px" + > + <template slot-scope="scope"> + <el-tag :type="insStateList.find(m=>m.value==scope.row.insState).type" size="small">{{ insStateList.find(m=>m.value==scope.row.insState).label }}</el-tag> + </template></el-table-column> + <el-table-column + prop="userName" + label="妫�楠屼汉" + width="140px" + ></el-table-column> + <el-table-column + prop="checkName" + label="澶嶆牳浜�" + width="100px" + ></el-table-column> + <el-table-column + prop="appointed" + label="绾﹀畾鏃堕棿" + width="120px" + ></el-table-column> + <el-table-column + prop="sendTime" + label="涓嬪彂鏃堕棿" + width="160px" + ></el-table-column> + <el-table-column + prop="insTime" + label="妫�楠屽紑濮嬫椂闂�" + width="160px" + ></el-table-column> + <el-table-column + prop="submitTime" + label="妫�楠岀粨鏉熸椂闂�" + width="160px" + ></el-table-column> + <el-table-column + prop="verifyTell" + label="鐞嗙敱" + width="150px" + ></el-table-column> + <el-table-column + fixed="right" + align="center" label="鎿嶄綔" + width="340px" + > + <template slot-scope="scope"> + <el-button @click="handleDataLook(scope.row)" type="text" size="small">鏁版嵁鏌ョ湅</el-button> + <el-button @click="handleInspection(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState == 3 || scope.row.insState == 5||scope.row.insState == 6||(scope.row.userName&&!scope.row.userName.includes(userName))" v-if="inspection">妫�楠�</el-button> + <el-button @click="handleConnect(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState == 5 || scope.row.insState == 3||scope.row.insState == 6||(scope.row.userName&&!scope.row.userName.includes(userName))" v-if="connect">浜ゆ帴</el-button> + <el-button @click="cancelSubmitPlan(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState != 3 ||(scope.row.userName&&!scope.row.userName.includes(userName))" v-if="inspection">鎾ら攢</el-button> + <el-button @click="handleReview(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState != 3 ||(scope.row.checkName&&!scope.row.checkName.includes(userName))" v-if="review">澶嶆牳</el-button> + <el-button @click="handleReview0(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || (scope.row.insState != 4&&scope.row.insState != 5&&scope.row.insState != 6) " v-if="verifyPlan2">绾犳澶嶆牳</el-button> + <el-button @click="claimFun(scope.row)" type="text" size="small" :disabled="scope.row.userName != null || scope.row.checkName!=null" v-if="claim">璁ら</el-button> + <el-button @click="lookHistory0(scope.row)" type="text" size="small">鏌ョ湅璁板綍</el-button> + </template> + </el-table-column> + </el-table> + <div style="display: flex;justify-content: flex-end;width: 100%;margin-top: 10px;"> + <span></span> + <el-pagination @size-change="refreshTable" @current-change="refreshTable" :current-page="page.current" + :page-sizes="[10, 20, 30, 50, 100]" :page-size="page.size" layout="total, sizes, prev, pager, next, jumper" + :total="total"> + </el-pagination> + </div> + </div> + </div> + <el-dialog title="鎻愮ず" :visible.sync="claimVisible" width="400px"> + 鏄惁璁ら濮旀墭缂栧彿<span style="color:#33C130">{{sampleUserForm.entrustCode}}</span>鐨勪换鍔� + <span slot="footer" class="dialog-footer"> + <el-button @click="claimVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="confirmClaim" :loading="loading">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog title="妫�楠屼氦鎺�" :visible.sync="connectVisible" width="400px"> + <div class="search_thing"> + <div class="search_label" style="width:90px"><span class="required-span">* </span>浜ゆ帴浜哄憳锛�</div> + <div class="search_input"> + <el-select v-model="connect.connectPerson" placeholder="璇烽�夋嫨" style="width: 100%;" filterable> + <el-option + v-for="item in personList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> </el-select> - </el-form-item> - <el-form-item> - <el-button size="small" @click="onReset">閲嶇疆</el-button> - <el-button size="small" type="primary" @click="onSubmit">鏌ヨ</el-button> - </el-form-item> - </el-form> - </div> - <div class="center"> - <div class="center-options"> - <el-row> - <el-col :span="20"> - <ul class="tab"> - <li v-for="(m,i) in tabList" :key="i" :class="{active:i==tabIndex}" @click="handleTab(m,i)">{{m.label}}</li> - </ul> - </el-col> - <el-col :span="4"> - <div class="center-title"> - <span>鎬昏浠诲姟鏁伴噺:</span> - <span v-if="$refs.insOrderPlan != undefined">{{$refs.insOrderPlan.total}}</span> - </div> - </el-col> - </el-row> + </div> </div> - <ValueTable :tableRowClassName="changeRowClass" class="value-table" ref="insOrderPlan" :url="$api.insOrderPlan.selectInsOrderPlanList" :upUrl="$api.user.updateUser" :componentData="componentData" :key="upIndex" @upUser="upUser"/> - </div> + <!-- <div class="search_thing"> + <div class="search_label" style="width:90px"><span class="required-span">* </span>璇曢獙瀹わ細</div> + <div class="search_input"> + <el-select v-model="connect.sonLaboratory" placeholder="璇烽�夋嫨" style="width: 100%;" filterable> + <el-option + v-for="item in sonLaboratoryList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + </div> --> + <span slot="footer" class="dialog-footer"> + <el-button @click="connectVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="confirmConnect" :loading="loading">纭� 瀹�</el-button> + </span> + </el-dialog> + <div style="width: 100%;height: 100%;" v-if="activeFace >0"> + <Add :active="activeFace" :currentId="currentId" :examine="examine"/> + </div> + <Inspection v-if="state>0" @goback="goback" :orderId="orderId" :inspectorList="inspectorList" :sonLaboratory="componentData.entity.sonLaboratory" :state="state" :orderStateId="orderStateId" :version="version" :isLook="isLook" :num1="num1" :orderId0="orderId0" :userInfo="userInfo" ref="Inspection" /> + <el-dialog title="鏁版嵁鏌ョ湅" :visible.sync="dataDialogVisible" width="80%"> + <div style="height: 70vh;overflow-y: auto;" v-if="dataDialogVisible"> + <ValueTable ref="ValueTableDataLook" :rowKey="'insProductId'" :url="$api.insOrder.selectSampleAndProductByOrderId" + :componentData="componentDataDataLook"/> + </div> + </el-dialog> + <el-dialog title="鏌ョ湅璁板綍" :visible.sync="historyDialogVisible" width="50%"> + <el-table + :data="historyList" + border + style="width: 100%"> + <el-table-column + prop="submitTime" + label="鎻愪氦鏃ユ湡" + min-width="150"> + </el-table-column> + <el-table-column + prop="submitUserName" + label="鎻愪氦浜�" + min-width="90"> + </el-table-column> + <el-table-column + prop="term" + label="瀹為獙闃舵" + min-width="120"> + </el-table-column> + <el-table-column + prop="note" + label="瀹為獙鎿嶄綔" + min-width="120"> + </el-table-column> + <el-table-column + prop="tell" + label="鍐嶆妫�楠屽師鍥�" + min-width="120"> + </el-table-column> + <el-table-column + fixed="right" + label="鎿嶄綔" + min-width="100"> + <template slot-scope="scope"> + <el-button @click="lookHistory(scope.row)" type="text" size="small">鏌ョ湅</el-button> + </template> + </el-table-column> + </el-table> + </el-dialog> + <el-dialog title="鎵爜妫�楠�" :visible.sync="qrCodeVisible" width="400px"> + <el-row> + <el-col class="search_thing" :span="24"> + <div class="search_label" style="width: 90px"><span class="required-span">* </span>鏍峰搧缂栧彿锛�</div> + <div class="search_input"> + <el-input v-model="sampleCode" size="small" clearable :disabled="sampleCodeBtnDisabled"> + <el-tooltip :content="sampleCodeBtnDisabled?'鎵嬪姩杈撳叆':'鎵爜鏋緭鍏�'" placement="top" slot="append"> + <el-button type="primary" icon="el-icon-edit" @click="sampleCodeBtnDisabled=!sampleCodeBtnDisabled"></el-button> + </el-tooltip> + </el-input> + </div> + </el-col> + <el-col class="search_thing" :span="24"> + <div class="search_label" style="width: 90px"><span class="required-span">* </span>璁㈠崟缂栧彿锛�</div> + <div class="search_input"> + <el-input v-model="entrustCode" size="small" clearable :disabled="sampleCodeBtnDisabled"> + </el-input> + </div> + </el-col> + </el-row> + <el-tree :data="storageList" ref="tree" :props="{ children: 'warehouseShelfList', label: 'name' }" node-key="id" + :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" + @node-collapse="nodeClose" :default-expanded-keys="expandedKeys" v-if="qrCodeVisible" + empty-text="鏆傛棤鏁版嵁"> + <div class="custom-tree-node" slot-scope="{ node, data }"> + <el-row> + <el-col :span="24"> + <span><i + :class="`node_i ${data.warehouseShelfList != undefined ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i> + {{ data.name }}</span> + </el-col> + </el-row> + </div> + </el-tree> + <span slot="footer" class="dialog-footer"> + <el-button @click="qrCodeVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="confirmStorage" :loading="upLoadStorage">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog title="鍑哄簱" :visible.sync="exportVisible" width="400px"> + <el-row> + <el-col class="search_thing" :span="24"> + <div class="search_label" style="width: 90px"><span class="required-span">* </span>鏍峰搧缂栧彿锛�</div> + <div class="search_input"> + <el-input v-model="sampleCode" size="small" clearable :disabled="sampleCodeBtnDisabled"> + <el-tooltip :content="sampleCodeBtnDisabled?'鎵嬪姩杈撳叆':'鎵爜鏋緭鍏�'" placement="top" slot="append"> + <el-button type="primary" icon="el-icon-edit" @click="sampleCodeBtnDisabled=!sampleCodeBtnDisabled"></el-button> + </el-tooltip> + </el-input> + </div> + </el-col> + <el-col class="search_thing" :span="24"> + <div class="search_label" style="width: 90px"><span class="required-span">* </span>濮旀墭缂栧彿锛�</div> + <div class="search_input"> + <el-input v-model="entrustCode" size="small" clearable :disabled="sampleCodeBtnDisabled"> + </el-input> + </div> + </el-col> + </el-row> + <span slot="footer" class="dialog-footer"> + <el-button @click="exportVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="confirmExport" :loading="upLoadExport">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog title="绾犳澶嶆牳" :visible="upInsReviewDia" width="600px" :close-on-click-modal="false" :show-close="false"> + <el-radio-group + v-model="verifyPlanInfo.type" + style="display: flex;flex-direction: column" + v-if="upInsReviewDia" + > + <el-radio :label="1" style="margin: 10px 0; " + :inert="false">缁х画娴嬭瘯涓嬩竴涓牱鍝佹垨鍏朵粬绔欑偣浠诲姟</el-radio + > + <el-radio :label="0" style="margin: 10px 0; " :inert="false">鍐嶆妫�楠岃鏍峰搧</el-radio> + <el-radio :label="2" style="margin: 10px 0; " :inert="false">姝ゅ鎵樺崟缁撴潫</el-radio> + <p style="font-size: 12px;color:red"> + 鎱庨噸锛氬鏋滆繕鏈夊叾浠栨牱鍝佸湪妫�锛岀偣鍑荤粨鏉熷彲鑳戒細涓柇锛岃纭繚鎵�鏈夋牱鍝侀兘妫�楠屼笖澶嶆牳瀹屾垚鍐嶇偣鍑� + </p> + </el-radio-group> + <p style="margin-top: 16px;margin-bottom: 6px;"><span style="color:red;margin-right: 4px;">*</span>绾犳鍘熷洜锛�</p> + <el-input + type="textarea" + :rows="2" + placeholder="璇疯緭鍏�" + v-model="verifyPlanInfo.tell"> + </el-input> + <span slot="footer" class="dialog-footer"> + <el-button @click="upInsReviewDia = false">鍙� 娑�</el-button> + <el-button type="primary" @click="upInsReview" :loading="reviewLoading" + >纭� 瀹�</el-button + > + </span> + </el-dialog> + <input id="ScanCodeInfo" v-model="codeInfo" @keyup.enter="keyup" style="opacity: 0;height: 0px;margin: 0px;padding: 0px;position: absolute;top: 0;"></input> </div> </template> <script> -import ValueTable from '../tool/value-table.vue' -import { getYearAndMonthAndDays } from '../../util/date' -export default { - components:{ - ValueTable - }, - data(){ - return { - searchForm:{ - sampleName: null, - state: null - }, - tabList: [ - { - label: '瀹為獙瀹�1', - value: 1 - }, - { - label: '瀹為獙瀹�2', - value: 2 - }, - { - label: '瀹為獙瀹�3', - value: 3 - } - ], - active: 1, - tabIndex: 0, - componentData: { + import ValueTable from '../tool/value-table.vue' + import Inspection from '../do/b1-inspect-order-plan/Inspection.vue' + import { + getYearAndMonthAndDays + } from '../../util/date' + import Add from '../do/b1-ins-order/add.vue' + import Sortable from 'sortablejs'; + export default { + components: { + ValueTable, + Inspection, + Add + }, + data() { + return { + currentHistory:{}, + historyDialogVisible:false, + historyList:[], + orderStateId:null, + version:null, + examine: null, + inspectorList: [],//妫�楠屼汉鍛樺垪琛� + alone: false, + sampleUserForm: { + entrustCode: null, + insSampleId: null, + userId: null + }, + claimVisible: false, + tabList: [], + active: 1, + tabIndex: 0, + componentDataDataLook: { entity: { - state: 1, - insState: null, - sample: null, + id: 0, orderBy: { - field: 'type', - order: 'desc' + field: 'sampleCode', + order: 'asc' } }, + isIndex: false, + showSelect: false, + select: false, + do: [], + tagField: { + insState: { + select: [] + }, + insResult: { + select: [{ + value: 1, + label: '鍚堟牸', + type: 'success' + },{ + value: 0, + label: '涓嶅悎鏍�', + type: 'danger' + },{ + value: 3, + label: '涓嶅垽瀹�', + type: '' + }] + } + }, + selectField: {}, + spanConfig:{ + rows:[ + { + name:'sampleCode', + index:0 + }, + { + name:'sample', + index:1 + }, + { + name:'model', + index:5 + } + ] + }, + requiredAdd: [], + requiredUp: [] + }, + dataDialogVisible: false, + componentData: { + entity: { + sonLaboratory: null, + insState: null, + userId: null, + sampleCode:null, + }, + sortable:true, isIndex: true, showSelect: false, select: false, + init: false, + needSort: ['createTime', 'sendTime', 'type', 'appointed', 'insState'], do: [{ id: '', - font: '妫�楠�', + font: '鏁版嵁鏌ョ湅', type: 'text', - method: '', - field:[] + method: 'handleDataLook', + //disabFun: (row, index) => { + //const user = JSON.parse(localStorage.getItem('user')) + // let currentUserName = '' + // if(user){ + // currentUserName = user.name + //} + //return row.userName.indexOf(currentUserName)<0 && row.checkName.indexOf(currentUserName)<0 + //} },{ - id: '', - font: '浜ゆ帴', - type: 'text', - method: '' + id: '', + font: '妫�楠�', + type: 'text', + method: 'handleInspection', + disabFun: (row, index) => { + return row.userName == null || row.insState == 3 || row.insState == 5||row.insState == 6||(row.userName&&!row.userName.includes(JSON.parse(localStorage.getItem("user")).name)) + } + // disabFun: (row, index) => { + // return row.userId == null || row.insState == 3 || row.insState == 5 + // } + }, { + id: '', + font: '浜ゆ帴', + type: 'text', + method: 'handleConnect', + disabFun: (row, index) => { + return row.userName == null || row.insState == 5 || row.insState == 3||row.insState == 6||(row.userName&&!row.userName.includes(JSON.parse(localStorage.getItem("user")).name)) + } + }, + { + id: '', + font: '澶嶆牳', + type: 'text', + method: 'handleReview', + disabFun: (row, userName) => { + return row.userName == null || row.insState != 3 ||(row.checkName&&!row.checkName.includes(JSON.parse(localStorage.getItem("user")).name)) + } + }, { + id: '', + font: '璁ら', + type: 'text', + method: 'claimFun', + disabFun: (row, index) => { + return row.userName != null || row.checkName!=null + } + }, { + id: '', + font: '鏌ョ湅璁板綍', + type: 'text', + method: 'claimFun', + disabFun: (row, index) => { + return !row.num1 || row.num1<2 + } + } + ], + linkEvent: { + entrustCode: { + method: 'selectAllByOne' + } }, - { - id: '', - font: '澶嶆牳', - type: 'text', - method: '' - },{ - id: '', - font: '璁ら', - type: 'text', - method: '' - }], tagField: { - type:{ - select:[] - }, - insState:{ - select:[] - } - }, + type: { + select: [] + }, + insState: { + select: [] + }, + insResult: { + select: [{ + value: 0, + label: '涓嶅悎鏍�', + type: 'danger' + },{ + value: 1, + label: '鍚堟牸', + type: 'success' + },{ + value: '', + label: '鏈嚭缁撴灉', + type: 'info' + }] + } + }, selectField: {}, - requiredAdd:[], - requiredUp:[] + requiredAdd: [], + requiredUp: [] }, - upIndex: 0, - planTotal: 0, - insStateList: [] - } - }, - created(){ - this.getTypeDicts() - this.getInsStateDicts() - this.refreshTable() - }, - methods:{ - upUser(){ + userName:JSON.parse(localStorage.getItem("user")).name, + upIndex: 0, + planTotal: 0, + insStateList: [], + state:0,//0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0 + activeFace: 0, //1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍革紝榛樿涓�0 + currentId: null, + entityCopy: {}, + orderId: null, + orderId0:null, + personList:[], + connectVisible:false, + connect:{ + connectPerson:'', + // sonLaboratory:'' + }, + loading:false, + currentTime: null, + sonLaboratoryList:[], + tableData: [], + page:{ + current:1, + size:20, + }, + total:0, + tableLoading:false, + jumpTeam:false, + insResultList:[{ + value: 0, + label: '涓嶅悎鏍�', + type: 'danger' + },{ + value: 1, + label: '鍚堟牸', + type: 'success' + },{ + value: '', + label: '鏈嚭缁撴灉', + type: 'info' + }], + typeList:[], + getInsProduct2:false, + claim:false, + review:false, + verifyPlan2:false, + connect:false, + inspection:false, + isLook:false,//鏄惁鏄煡鐪嬪巻鍙查〉闈� + num1:null, + codeInfo:null, + startTime:null, + scanInsOrderState:false, + qrCodeVisible: false, + sampleCode: '', + entrustCode:'', + storageList:[], + expandedKeys: [], + selectTree: [], + upLoadStorage: false, + exportVisible: false, + upLoadExport: false, + selectWarehouse:false, + userInfo:{ + name:[], + ids:[] + }, + sampleCodeBtnDisabled:true, + upInsReviewDia:false, + verifyPlanInfo:{ + tell:null, + type:null + }, + reviewLoading:false + } + }, + watch:{ + qrCodeVisible(newVal){ + if(newVal){ + // this.$message.success('鎵爜锛氭墦寮�') + this.selectList() + this.sampleCode = null + this.entrustCode = null + let input = document.getElementById('ScanCodeInfo'); + input.focus(); + this.startTime = setInterval(()=>{ + input.focus() + },1000) + }else{ + // this.$message.warning('鎵爜锛氬叧闂�') + clearInterval(this.startTime) + this.sampleCodeBtnDisabled=true + } + }, + exportVisible(newVal){ + if(newVal){ + // this.$message.success('鎵爜锛氭墦寮�') + this.sampleCode = null + this.entrustCode = null + let input = document.getElementById('ScanCodeInfo'); + input.focus(); + this.startTime = setInterval(()=>{ + input.focus() + },1000) + }else{ + // this.$message.warning('鎵爜锛氬叧闂�') + clearInterval(this.startTime) + this.sampleCodeBtnDisabled=true + } + }, + sampleCodeBtnDisabled(val){ + if(!val){ + this.startTime&&clearInterval(this.startTime) + }else if(this.exportVisible||this.qrCodeVisible){ + // this.sampleCode = null + // this.entrustCode = null + let input = document.getElementById('ScanCodeInfo'); + input.focus(); + this.startTime = setInterval(()=>{ + input.focus() + },1000) + } + } + }, + created() { + this.getLaboratoryDicts() + this.getTypeDicts() + this.getInsStateDicts() + this.getAuthorizedPerson() + this.currentTime = getYearAndMonthAndDays() + }, + mounted() { + this.entityCopy = this.HaveJson(this.componentData.entity) + this.getPower() + if(this.jumpTeam){ + this.initializeSortable(); + } + }, + methods: { + selectList () { + this.$axios.get(this.$api.warehouse.selectWarehouse).then(res => { + this.warehouse = res.data + this.storageList = this.HaveJson(res.data).map(item=>{ + item.warehouseShelfList&&item.warehouseShelfList.length>0&&item.warehouseShelfList.map(m=>{ + let warehouseShelfList = []; + let warehouseShelfList0 = [] + let warehouseCellList = m.warehouseCellList?m.warehouseCellList:[] + warehouseCellList.forEach(a=>{ + if(warehouseShelfList.find(n=>n.id==a.row)){ + warehouseShelfList0.push({ + name:a.col+'鍒�', + id:a.col + }) + }else if(warehouseShelfList.length==0){ + warehouseShelfList.push({ + name:a.row+'灞�', + id:a.row + }) + warehouseShelfList0.push({ + name:a.col+'鍒�', + id:a.col + }) + }else if(!warehouseShelfList.find(n=>n.id==a.row)){ + warehouseShelfList[warehouseShelfList.length-1].warehouseShelfList = JSON.parse(JSON.stringify(warehouseShelfList0)) + warehouseShelfList0 = [] + warehouseShelfList.push({ + name:a.row+'灞�', + id:a.row + }) + warehouseShelfList0.push({ + name:a.col+'鍒�', + id:a.col + }) + } + }) + warehouseShelfList[warehouseShelfList.length-1].warehouseShelfList = JSON.parse(JSON.stringify(warehouseShelfList0)) + m.warehouseShelfList = warehouseShelfList; + return m; + }) + return item; + }) + }) + }, + filterNode(value, data) { + if (!value) return true; + return data.label.indexOf(value) !== -1; + }, + handleNodeClick(val, node, el) { //鏍戠殑鍊� + this.selectTree[node.level-1] = val.id; + }, + nodeOpen(data, node, el) { + $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened') + this.selectTree[node.level-1] = data.id; + }, + nodeClose(data, node, el) { + $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder') + }, + // 鎵爜鎶ユ + confirmStorage() { + if (!this.sampleCode) { + this.$message.error('璇峰~鍐欐牱鍝佺紪鍙�') + return + } + if (!this.entrustCode) { + this.$message.error('璇峰~鍐欒鍗曠紪鍙�') + return + } + if (this.selectTree.length < 4) { + this.$message.error('璇烽�夋嫨鏍峰搧鍏ュ簱浣嶇疆') + return + } + this.upLoadStorage = true; + this.$axios.post(this.$api.insOrderPlan.scanInsOrderState, { + trees: this.selectTree.join('-'), + sampleCode:this.sampleCode, + entrustCode:this.entrustCode, + sonLaboratory: this.componentData.entity.sonLaboratory + }).then(res => { + this.upLoadStorage = false; + this.qrCodeVisible = false + this.sampleCode = ''; + this.entrustCode = ''; + this.selectTree = [] + if (res.code == 201) { + this.$message.error('娣诲姞澶辫触') + return + } + this.$message.success('娣诲姞鎴愬姛') + this.refreshTable() + }) + }, + // 纭鍑哄簱 + confirmExport () { + if (!this.sampleCode) { + this.$message.error('璇峰~鍐欐牱鍝佺紪鍙�') + return + } + if (!this.entrustCode) { + this.$message.error('璇峰~鍐欒鍗曠紪鍙�') + return + } + this.upLoadExport = true; + this.$axios.post(this.$api.insOrderPlan.outInsOrderState, { + sampleCode:this.sampleCode, + entrustCode:this.entrustCode, + sonLaboratory: this.componentData.entity.sonLaboratory + }).then(res => { + this.upLoadExport = false; + this.exportVisible = false + this.sampleCode = ''; + this.entrustCode = ''; + if (res.code == 201) { + this.$message.error('鍑哄簱澶辫触') + return + } + this.$message.success('鍑哄簱鎴愬姛') + this.handleShelf(this.entity.shelfId) + }) + }, + // 鎵爜鏋寜涓� + keyup(e){ + var codeInfo = null + try{ + console.log(2222,this.codeInfo) + codeInfo = JSON.parse(this.codeInfo) + if(!codeInfo||codeInfo.sampleCode==undefined||codeInfo.entrustCode==undefined){ + this.$message.error('璇ヤ簩缁寸爜鏈夎') + }else{ + this.sampleCode = codeInfo.sampleCode + this.entrustCode = codeInfo.entrustCode + } + }catch(e){ + this.$message.error('璇疯皟鑷宠嫳鏂囬敭鐩�') + console.log(e) + } + this.codeInfo = null + }, + // 鎷栨嫿 + initializeSortable() { + const tableBody = this.$refs.table0.$el.querySelector('.el-table__body-wrapper > table > tbody'); + if (tableBody) { + Sortable.create(tableBody, { + handle: '.el-table__row', // 鎷栧姩鎵嬫焺 + animation: 200, + onEnd: this.handleSortEnd, + }); + } else { + console.error('Table body not found.'); + } + }, + handleSortEnd(evt) { + const oldIndex = evt.oldIndex; + const newIndex = evt.newIndex; + const movedItem = this.tableData[oldIndex]; + if (oldIndex !== newIndex) { + this.tableData.splice(oldIndex, 1); + this.tableData.splice(newIndex, 0, movedItem); + } + this.upIndex++ + this.$axios.post(this.$api.insOrderPlan.jumpTeam, + { + id: movedItem.orderStateId, + sort: newIndex+1, + ...this.page + }, { + headers: { + 'Content-Type': 'application/json' + } + } + ).then(res => { - }, - refreshTable() { - this.$refs.insOrderPlan.selectList() - this.$nextTick(()=>{ - this.planTotal = this.$refs.insOrderPlan.total - }) - }, - changeRowClass(obj,rowIndex){ - let currentTime = getYearAndMonthAndDays() - if(obj.row.sendTime && currentTime===obj.row.sendTime){ - return 'highlight-warning-row-border' - }else if(obj.row.sendTime && currentTime>obj.row.sendTime){ - return 'highlight-danger-row-border' - } - return '' - }, - onReset(){ - this.searchForm = { - sampleName: null, - state: null, - } - this.componentData.entity.insState = null - this.componentData.entity.sample = null - this.refreshTable() - }, - onSubmit(){ - this.componentData.entity.insState = this.searchForm.state - this.componentData.entity.sample = this.searchForm.sampleName - this.$nextTick(()=>{ - this.refreshTable() - }) - }, - handleTab(m, i) { - this.tabIndex = i; - //this.componentData.entity.state = m.value - //this.refreshTable() - }, - getTypeDicts() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "绱ф�ョ▼搴�" - }).then(res => { - let data = res.data - data.forEach(ele=>{ - if(ele.value==='0'){ - ele.type='success' - }else if(ele.value==='1'){ - ele.type='warning' - }else if(ele.value==='2'){ - ele.type='danger' - } }) - this.componentData.tagField.type.select = data - }) - }, - getInsStateDicts() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "妫�楠屼换鍔$姸鎬�" - }).then(res => { - let data = res.data - this.insStateList = data - data.forEach(ele=>{ - //0:寰呮楠� 1:妫�楠屼腑 2:宸叉楠� 3:寰呭鏍� 4:澶嶆牳鏈�氳繃 5:澶嶆牳閫氳繃 - if(['2','5'].includes(ele.value)){ - ele.type='success' - }else if(['1','3'].includes(ele.value)){ - ele.type='warning' - }else if(['0','4'].includes(ele.value)){ - ele.type='danger' + }, + rowClassName({ row, rowIndex }) { + return 'draggable-row'; + }, + // 鏁版嵁鏌ョ湅 + handleDataLook(row) { + this.componentDataDataLook.entity.id = row.id + this.dataDialogVisible = true; + }, + // 鏉冮檺鍒嗛厤 + getPower(radio) { + let power = JSON.parse(sessionStorage.getItem('power')) + let inspection = false + let connect = false + let review = false + let claim = false + let jumpTeam = false + let verifyPlan2 = false + // let getInsProduct2 = false + // let getInsOrderUserList = false + for (var i = 0; i < power.length; i++) { + if (power[i].menuMethod == 'doInsOrder') { + inspection = true + } + if (power[i].menuMethod == 'upPlanUser') { + connect = true + } + if (power[i].menuMethod == 'verifyPlan') { + review = true + } + if (power[i].menuMethod == 'verifyPlan2') { + verifyPlan2 = true + } + if (power[i].menuMethod == 'claimInsOrderPlan') { + claim = true + } + if (power[i].menuMethod == 'jumpTeam') { + jumpTeam = true + } + // if (power[i].menuMethod == 'getInsProduct2') { + // getInsProduct2 = true + // } + if (power[i].menuMethod == 'scanInsOrderState') { + this.scanInsOrderState = true + } + if (power[i].menuMethod == 'scanInsOrderState') { + this.selectWarehouse = true + } + } + // if (!getInsProduct2) { + // this.componentData.do.splice(5, 1) + // } + // if (!claim) { + // this.componentData.do.splice(4, 1) + // } + // if (!review) { + // this.componentData.do.splice(3, 1) + // } + // if (!connect) { + // this.componentData.do.splice(2, 1) + // } + // if (!inspection) { + // this.componentData.do.splice(1, 1) + // } + // this.getInsProduct2 = getInsProduct2 + this.claim = claim + this.review = review + this.verifyPlan2 =verifyPlan2 + this.connect = connect + this.inspection = inspection + this.jumpTeam = jumpTeam + }, + changeCheckBox(val) { + this.componentData.entity.userId = val?0:null + this.refreshTable() + }, + refresh() { + this.componentData.entity = this.HaveJson(this.entityCopy) + if(this.tabList.length>0){ + this.tabIndex = 0 + this.componentData.entity.sonLaboratory = this.tabList[0].value + } + this.refreshTable() + }, + claimFun(row) { + if (row) { + this.sampleUserForm = { + entrustCode: row.entrustCode, + insSampleId: row.sampleId, + sonLaboratory: row.sonLaboratory, + } + this.claimVisible = true + } + }, + confirmClaim() { + this.loading = true; + // this.sampleUserForm.insSampleId = this.orderId + this.$axios.post(this.$api.insOrderPlan.claimInsOrderPlan, this.sampleUserForm, { + headers: { + 'Content-Type': 'application/json' + }, + noQs:true + },).then(res => { + if (res.code === 200 && res.data) { + this.loading = false; + this.$message.success("璁ら鎴愬姛") + this.claimVisible = false + this.refreshTable('page') + } else { + this.loading = false; + } + }).catch(error => { + console.error(error) + this.loading = false; + }) + }, + refreshTable() { + this.tableLoading = true + this.$axios.post(this.$api.insOrderPlan.selectInsOrderPlanList,{ + entity:this.componentData.entity, + page:this.page + }, { + headers: { + 'Content-Type': 'application/json' } + }).then((res) => { + this.tableLoading = false + this.total = res.data.body.total + this.tableData = res.data.body.records + // this.$refs.table0.doLayout() }) - this.componentData.tagField.insState.select = data - }) - }, - } -} + }, + changeRowClass({ + row, + rowIndex + }) { + if (this.currentTime == row.appointed) { + return 'highlight-warning-row-border' + } else if (this.currentTime > row.appointed) { + return 'highlight-danger-row-border' + } + return '' + }, + onReset() { + this.searchForm = { + sampleName: null, + state: null, + } + this.componentData.entity.insState = null + this.componentData.entity.sampleName = null + this.refreshTable() + }, + onSubmit() { + this.componentData.entity.insState = this.searchForm.state + this.componentData.entity.sampleName = this.searchForm.sampleName + this.$nextTick(() => { + this.refreshTable() + }) + }, + handleTab(m, i) { + this.tabIndex = i; + this.componentData.entity.sonLaboratory = m.value + this.refreshTable() + }, + getTypeDicts() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "绱ф�ョ▼搴�" + }).then(res => { + let data = res.data + data.forEach(ele => { + if (ele.value === '0') { + ele.type = 'success' + } else if (ele.value === '1') { + ele.type = 'warning' + } else if (ele.value === '2') { + ele.type = 'danger' + } + }) + this.componentData.tagField.type.select = data + this.typeList = data + }) + }, + getInsStateDicts() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "妫�楠屼换鍔$姸鎬�" + }).then(res => { + let data = res.data + this.insStateList = data + data.forEach(ele => { + //0:寰呮楠� 1:妫�楠屼腑 2:宸叉楠� 3:寰呭鏍� 4:澶嶆牳鏈�氳繃 5:澶嶆牳閫氳繃 + if (['2', '5'].includes(ele.value)) { + ele.type = 'success' + } else if (['1', '3'].includes(ele.value)) { + ele.type = 'warning' + } else if (['0', '4'].includes(ele.value)) { + ele.type = 'danger' + } + }) + this.componentData.tagField.insState.select = data + }) + }, + getLaboratoryDicts() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "瀛愬疄楠屽" + }).then(res => { + this.tabList = res.data.map(ele => { + return { + label: ele.label, + value: ele.value + } + }) + if(this.tabList.length>0){ + this.componentData.entity.sonLaboratory = this.tabList[0].value + } + this.refreshTable() + }) + }, + selectAllByOne(row) { + this.activeFace = 2; + this.examine = 1; + this.currentId = parseInt(row.id) + }, + playOrder(num) { + this.activeFace = num + }, + goback() { + this.state = 0 + this.refreshTable('page') + }, + handleInspection(row){ + //褰撳墠妫�楠屼换鍔$殑妫�楠屼汉鍒楄〃 + let inspectorList = [] + if(row.userName){ + inspectorList = row.userName.split(',') + } + let user = JSON.parse(localStorage.getItem('user')) + if(user){ + inspectorList.push(user.name) + } + this.inspectorList = inspectorList + this.orderId = row.sampleId + this.orderId0 = row.id + this.version = row.version + this.orderStateId = row.orderStateId + this.state = 1; + this.userInfo.name = row.userName.split(',') + this.userInfo.ids = row.userNameId.split(',') + this.isLook = false + }, + handleConnect(row){ + this.orderId = row.sampleId + this.orderId0 = row.id + this.connect = {} + this.connectVisible=true; + // this.$axios.post(this.$api.insOrderPlan.upPlanUser2, { + // orderId:this.orderId, + // }).then(res => { + // if (res.code === 200&&res.data.length>0) { + // this.sonLaboratoryList = []; + // res.data.forEach(m=>{ + // this.sonLaboratoryList.push({ + // value:m, + // label:m + // }) + // }) + // // this.connect.sonLaboratory = this.sonLaboratoryList[0].value + // } + // }) + }, + cancelSubmitPlan(row){ + this.$confirm('纭畾鎾ら攢姝ゆ妫�楠屾彁浜�?', "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + this.$axios.post(this.$api.insOrderPlan.cancelSubmitPlan, { + orderStateId: row.orderStateId + }).then(res => { + if(res.code==201){ + return + } + this.$message.success("鎿嶄綔鎴愬姛") + this.refreshTable('page') + }).catch(() => {}) + }).catch(() => {}) + }, + confirmConnect(){ + if(this.connect.connectPerson==null||this.connect.connectPerson==''||this.connect.connectPerson==undefined){ + this.$message.error('鏈�夋嫨浜ゆ帴浜哄憳') + return + } + // if(this.connect.sonLaboratory==null||this.connect.sonLaboratory==''||this.connect.sonLaboratory==undefined){ + // this.$message.error('鏈�夋嫨璇曢獙瀹�') + // return + // } + this.loading = true; + this.$axios.post(this.$api.insOrderPlan.upPlanUser, { + sampleId:this.orderId, + userId:this.connect.connectPerson, + sonLaboratory:this.componentData.entity.sonLaboratory, + }).then(res => { + if (res.code === 200) { + this.loading = false; + this.$message.success("鎿嶄綔鎴愬姛") + this.refreshTable('page') + } + this.connectVisible = false + }).catch(error => { + console.error(error) + this.loading = false; + }) + }, + handleReview(row){ + this.state = 2; + this.orderId = row.sampleId + this.orderId0 = row.id + this.version = row.version + this.orderStateId = row.orderStateId + this.isLook = false + }, + getAuthorizedPerson() { + this.$axios.get(this.$api.user.getUserMenu).then(res => { + let data = [] + res.data.forEach(a => { + data.push({ + label: a.name, + value: a.id + }) + }) + this.personList = data + }) + }, + lookHistory0(row){ + this.currentHistory = row + this.$axios.post(this.$api.insOrderPlan.getInsOrderUserList, { + insOrderStateId:row.orderStateId, + }).then(res => { + this.historyList = res.data + this.historyDialogVisible = true + }) + }, + lookHistory(row){ + this.isLook = true + this.state = 2; + this.orderId = this.currentHistory.sampleId + this.orderId0 = this.currentHistory.id + this.version = this.currentHistory.version + this.orderStateId = this.currentHistory.orderStateId + this.num1 = row.num + this.historyDialogVisible = false + }, + // 绾犳澶嶆牳 + upInsReview(){ + if(this.verifyPlanInfo.type!=0&&this.verifyPlanInfo.type!=1&&this.verifyPlanInfo.type!=2){ + return this.$message.error("璇烽�夋嫨澶嶆牳鐘舵��"); + } + if(!this.verifyPlanInfo.tell){ + return this.$message.error("璇疯緭鍏ョ籂姝e鏍哥殑鍘熷洜"); + } + this.reviewLoading = true; + this.$axios + .post(this.$api.insOrderPlan.verifyPlan2, { + sampleId: this.verifyPlanInfo.sampleId, + type: this.verifyPlanInfo.type, + laboratory: this.componentData.entity.sonLaboratory, + tell: this.verifyPlanInfo.tell + }) + .then(res => { + if (res.code === 200) { + this.$message.success("鎿嶄綔鎴愬姛"); + this.upInsReviewDia = false; + this.refreshTable() + } + this.reviewLoading = false; + }) + .catch(error => { + console.error(error); + this.reviewLoading = false; + }); + }, + handleReview0(row){ + this.verifyPlanInfo = JSON.parse(JSON.stringify(row)); + this.$set(this.verifyPlanInfo,'tell',null) + this.$set(this.verifyPlanInfo,'type',null) + this.upInsReviewDia = true + } + } + } </script> -- Gitblit v1.9.3