From 71c4ece010f68a74eeff5e986caecb9a0bb2e36c Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期四, 25 四月 2024 17:37:39 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/components/do/b1-ins-order/add.vue | 2233 ++++++++++++++++++++++++++++++---------------------------- 1 files changed, 1,153 insertions(+), 1,080 deletions(-) diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index 6a358af..87de2ad 100644 --- a/src/components/do/b1-ins-order/add.vue +++ b/src/components/do/b1-ins-order/add.vue @@ -1,701 +1,744 @@ <style scoped> - .ins_order_add { - width: 100%; - height: 100%; - overflow-y: auto; - overflow-x: hidden; - } + .ins_order_add { + width: 100%; + height: 100%; + overflow-y: auto; + overflow-x: hidden; + } - .ins_order_add::-webkit-scrollbar { - width: 0; - } + .ins_order_add::-webkit-scrollbar { + width: 0; + } - .title { - height: 60px; - line-height: 60px; - } + .title { + height: 60px; + line-height: 60px; + } - .search { - width: calc(100% - 40px); - background-color: #fff; - padding: 5px 40px 5px 0; - } + .search { + width: calc(100% - 40px); + background-color: #fff; + padding: 5px 40px 5px 0; + } - .search_thing { - display: flex; - align-items: center; - height: 50px; - } + .search_thing { + display: flex; + align-items: center; + height: 50px; + } - .search_label { - width: 120px; - font-size: 14px; - text-align: right; - } + .search_label { + width: 120px; + font-size: 14px; + text-align: right; + } - .search_input { - width: calc(100% - 120px); - } + .search_input { + width: calc(100% - 120px); + } - .node_i { - color: orange; - font-size: 18px; - } + .node_i { + color: orange; + font-size: 18px; + } - .el-select-dropdown__item { - display: flex; - align-items: center; - justify-content: space-between; - } + .el-select-dropdown__item { + display: flex; + align-items: center; + justify-content: space-between; + } </style> <style> - .ins_order_add .el-input-group__append, - .el-input-group__prepend { - padding: 0 10px; - } + .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-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 .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 .cell { + line-height: 30px; + background-color: #fafafa; + } - .ins_order_add .has-gutter .el-table__cell { - background-color: #fafafa !important; - } + .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__row .cell { + font-size: 12px; + } - .ins_order_add .el-table .warning-row .cell { - color: #bababa; - } + .ins_order_add .el-table .warning-row .cell { + color: #bababa; + } - .el-select .is-disabled{ + .el-select .is-disabled { background: transparent !important; } - .el-select .is-disabled .el-input__inner{ + + .el-select .is-disabled .el-input__inner { background: transparent !important; } </style> <template> - <div class="ins_order_add"> - <div> - <el-row class="title"> - <el-col :span="6" style="padding-left: 20px;">濮旀墭鍗曚俊鎭�</el-col> - <el-col :span="18" style="text-align: right;"> - <el-select v-model="template" size="medium" placeholder="涓嬪崟妯℃澘" style="margin-right: 10px;" v-show="active==1" - @change="selectInsOrderTemplateById"> - <el-option v-for="(a, ai) in templates" :key="ai" :value="a.id" :label="a.name"> - <span style="float: left">{{ a.name }}</span> - <i class="el-icon-delete" style="float: right; color: #66b1ff; font-size: 16px" - @click.stop="handleDelete(a)"></i> - </el-option> - </el-select> - <el-button size="medium" @click="templateDia=true" v-show="active==1"> - <span style="color: #3A7BFA;">淇濆瓨妯℃澘</span> - </el-button> - <el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-show="active==1">鎻愪氦</el-button> + <div class="ins_order_add"> + <div> + <el-row class="title"> + <el-col :span="6" style="padding-left: 20px;">濮旀墭鍗曚俊鎭�</el-col> + <el-col :span="18" style="text-align: right;"> + <el-select v-model="template" size="medium" placeholder="涓嬪崟妯℃澘" style="margin-right: 10px;" v-show="active==1" + @change="selectInsOrderTemplateById"> + <el-option v-for="(a, ai) in templates" :key="ai" :value="a.id" :label="a.name"> + <span style="float: left">{{ a.name }}</span> + <i class="el-icon-delete" style="float: right; color: #66b1ff; font-size: 16px" + @click.stop="handleDelete(a)"></i> + </el-option> + </el-select> + <el-button size="medium" @click="templateDia=true" v-show="active==1"> + <span style="color: #3A7BFA;">淇濆瓨妯℃澘</span> + </el-button> + <el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-show="active==1">鎻愪氦</el-button> <!-- 瀹℃牳 --> - <el-button size="medium" @click="upInsOrderOfState(2)" :loading="saveLoad" v-show="active==3">涓嶉�氳繃</el-button> - <el-button size="medium" type="primary" @click="upInsOrderOfState(1)" :loading="saveLoad" - v-show="active==3">閫氳繃</el-button> - <el-button size="medium" @click="$parent.playOrder(0)"> - <span style="color: #3A7BFA;">杩斿洖</span> - </el-button> - </el-col> - </el-row> - </div> - <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-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> - </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.laboratory"></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" :readonly="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">OTC璁㈠崟鍙凤細</div> - <div class="search_input"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.otcCode" :readonly="active>1"></el-input> - </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()" :disabled="active>1"> - <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" 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 - v-model="addObj.remark" :readonly="active>1"></el-input> - </div> - </el-col> - </el-row> - </div> - <div> - <!-- <div style="text-align: right;line-height: 45px;" v-if="active<2"> - <el-button type="primary" size="small" @click="addSampleDia = true">娣诲姞鏍峰搧</el-button> - <el-button size="small" @click="delSample"> - <span style="color: #3A7BFA;">鍒犻櫎鏍峰搧</span> - </el-button> - </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="factory" label="宸ュ巶" align="center" min-width="100"> - </el-table-column> - <el-table-column prop="laboratory" label="瀹為獙瀹�" align="center" min-width="100"> - </el-table-column> - <el-table-column prop="sampleType" label="鏍峰搧绫诲瀷" align="center" min-width="100"> - </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"> - <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="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"> - <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="unit" label="鍗曚綅" align="center" min-width="100"> - <template slot-scope="scope"> - <el-select v-model="scope.row.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> - </template> - </el-table-column> - <el-table-column prop="isLeave" label="鏄惁鐣欐牱" align="center" min-width="100"> - <template slot-scope="scope"> - <el-select v-model="scope.row.isLeave" size="small" :disabled="active>1"> - <el-option label="鐣欐牱" :value="1"></el-option> - <el-option label="涓嶇暀鏍�" :value="0"></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 label="鎿嶄綔" width="65" align="center"> - <template slot-scope="scope"> - {{scope.index}} - <el-button type="text" size="small" @click="delSampleAndProduct" :disabled="active!=1">鍒犻櫎</el-button> - </template> - </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-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll"> - <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1"></el-table-column> - <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip></el-table-column> - <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140" - show-overflow-tooltip></el-table-column> - <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" width="130" show-overflow-tooltip></el-table-column> - <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="120" show-overflow-tooltip> + <el-button size="medium" @click="upInsOrderOfState(2)" :loading="saveLoad" v-show="active==3" + :disabled="saveLoad">涓嶉�氳繃</el-button> + <el-button size="medium" type="primary" @click="upInsOrderOfState(1)" :loading="saveLoad" + v-show="active==3">閫氳繃</el-button> + <el-button size="medium" @click="$parent.playOrder(0)"> + <span style="color: #3A7BFA;">杩斿洖</span> + </el-button> + </el-col> + </el-row> + </div> + <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 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> + </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.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-input size="small" clearable v-model="addObj.formType" :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.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-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="璇疯緭鍏�" clearable v-model="addObj.otcCode" :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 + v-model="addObj.remark" :readonly="active>1"></el-input> + </div> + </el-col> + </el-row> + </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="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="manHourGroup" 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="鍖洪棿" width="120" show-overflow-tooltip></el-table-column> - <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="220px"> - <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)"></el-input> - </template> - </el-table-column> - </el-table> - </div> - <el-dialog title="閫夋嫨瀹㈡埛" :visible.sync="selectUserDia" width="70%"> - <div class="body" style="height: 60vh;" v-if="selectUserDia"> - <ValueTable ref="ValueTable2" :url="$api.user.selectCustomPageList" :componentData="componentData2" /> - </div> - <span slot="footer" class="dialog-footer"> - <el-button @click="selectUserDia = false">鍙� 娑�</el-button> - <el-button type="primary" @click="selectUser">纭� 瀹�</el-button> - </span> - </el-dialog> - <el-dialog title="閫夋嫨鏍峰搧" :visible.sync="selectStandardTree" width="400px"> - <div class="body" style="height: 60vh;overflow-y: auto;" v-if="selectStandardTree"> - <el-row> - <el-col :span="24"> - <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" suffix-icon="el-icon-search" v-model="search" size="small" - style="margin-bottom: 5px;" clearable @blur="searchFilter" @clear="searchFilter" - @keyup.enter.native="searchFilter"></el-input> - </el-col> - </el-row> - <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }" node-key="label" - :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" - @node-collapse="nodeClose" :default-expanded-keys="expandedKeys"> - <div class="custom-tree-node" slot-scope="{ node, data }"> - <el-row> - <el-col :span="24"> - <span><i - :class="`node_i ${data.children != undefined ? 'el-icon-folder-opened' : '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 title="娣诲姞鏍峰搧" :visible.sync="addSampleDia" width="400px"> - <div class="body" style="max-height: 60vh;"> - <el-row> - <el-col class="search_thing" :span="22"> - <div class="search_label"><span class="required-span">* </span>鏍峰搧鍚嶇О锛�</div> - <div class="search_input"> - <el-input readonly size="small" v-model="sample.sample"> - <template slot="append"><el-button slot="append" icon="el-icon-search" - @click="selectStandardTree = true"></el-button></template> - </el-input> - </div> - </el-col> - <el-col class="search_thing" :span="22"> - <div class="search_label"><span class="required-span">* </span>宸ュ巶鍚嶇О锛�</div> - <div class="search_input"> - <el-input size="small" clearable disabled v-model="sample.factory"></el-input> - </div> - </el-col> - <el-col class="search_thing" :span="22"> - <div class="search_label"><span class="required-span">* </span>瀹為獙瀹ゅ悕绉帮細</div> - <div class="search_input"> - <el-input size="small" clearable disabled v-model="sample.laboratory"></el-input> - </div> - </el-col> - <el-col class="search_thing" :span="22"> - <div class="search_label"><span class="required-span">* </span>鏍峰搧绫诲瀷锛�</div> - <div class="search_input"> - <el-input size="small" clearable disabled v-model="sample.sampleType"></el-input> - </div> - </el-col> - <el-col class="search_thing" :span="22"> - <div class="search_label"><span class="required-span">* </span>瑙勬牸鍨嬪彿锛�</div> - <div class="search_input"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="sample.model"></el-input> - </div> - </el-col> - <el-col class="search_thing" :span="22"> - <div class="search_label">鏍峰搧缂栧彿锛�</div> - <div class="search_input"> - <el-input v-model="sample.sampleCode" size="small" placeholder="璇疯緭鍏�" clearable></el-input> - </div> - </el-col> - <el-col class="search_thing" :span="24"> - <div class="search_label">鏍峰搧鏁伴噺锛�</div> - <div class="search_input"> - <el-input-number size="small" v-model="sample.sampleNum" :min="1" :max="100" :precision="0" - style="width: 50%;"></el-input-number> - </div> - </el-col> - <el-col class="search_thing" :span="22"> - <div class="search_label">鏍峰搧鐣欐牱锛�</div> - <div class="search_input"> - <el-radio-group v-model="sample.isLeave"> - <el-radio :label="1">鐣欐牱</el-radio> - <el-radio :label="0">涓嶇暀鏍�</el-radio> - </el-radio-group> - </div> - </el-col> - </el-row> - </div> - <span slot="footer" class="dialog-footer"> - <el-button @click="addSampleDia = false">鍙� 娑�</el-button> - <el-button type="primary" @click="onSample()" :loading="getProductLoad">纭� 瀹�</el-button> - </span> - </el-dialog> - <el-dialog title="淇濆瓨妯℃澘" :visible.sync="templateDia" width="400px"> - <div class="body" style="display: flex;align-items: center;" v-if="templateDia"> - <div class="search_label" style="width: 90px;"><span class="required-span">* </span>妯℃澘鍚嶇О锛�</div> - <div class="search_input"> - <el-input size="small" clearable v-model="templateName"></el-input> - </div> - </div> - <span slot="footer" class="dialog-footer"> - <el-button @click="templateDia = false">鍙� 娑�</el-button> - <el-button type="primary" @click="addTemplateDia" :loading="templateLoading">纭� 瀹�</el-button> - </span> - </el-dialog> - <el-dialog title="妫�楠屼笅鍙�" :visible.sync="issuedDialogVisible" width="400px"> - <div class="body" style="max-height: 60vh;"> - <el-row> - <el-col class="search_thing" :span="22"> - <div class="search_label"><span class="required-span">* </span>绾﹀畾鏃堕棿锛�</div> - <div class="search_input"> - <el-date-picker size="small" v-model="distributeData.appointed" type="date" placeholder="閫夋嫨鏃ユ湡" - value-format="yyyy-MM-dd" style="width: 100%;" format="yyyy-MM-dd"> - </el-date-picker> - </div> - </el-col> - <el-col class="search_thing" :span="22"> - <div class="search_label"><span class="required-span" v-if="addObj.type == 2">* </span>鎸囨淳浜哄憳锛�</div> - <div class="search_input"> - <el-select v-model="distributeData.userId" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> - <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value"> - </el-option> - </el-select> - </div> - </el-col> - </el-row> - </div> - <span slot="footer" class="dialog-footer"> - <el-row> - <el-button @click="issuedDialogVisible=false">鍙� 娑�</el-button> - <el-button type="primary" @click="submitForm2" :loading="upLoad">纭� 瀹�</el-button> - </el-row> - </span> - </el-dialog> + <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"> + <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="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"> + <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="unit" label="鍗曚綅" align="center" min-width="100"> + <template slot-scope="scope"> + <el-select v-model="scope.row.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> + </template> + </el-table-column> + <!-- <el-table-column prop="isLeave" label="鏄惁鐣欐牱" align="center" min-width="100"> + <template slot-scope="scope"> + <el-select v-model="scope.row.isLeave" size="small" :disabled="active>1"> + <el-option label="鐣欐牱" :value="1"></el-option> + <el-option label="涓嶇暀鏍�" :value="0"></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> + <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-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll"> + <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1"></el-table-column> + <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip></el-table-column> + <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140" + show-overflow-tooltip></el-table-column> + <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" 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> + </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="manHourGroup" 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="鍖洪棿" width="120" show-overflow-tooltip></el-table-column> + <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="220px"> + <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)" :readonly="active>1"></el-input> + </template> + </el-table-column> + </el-table> + </div> + <el-dialog title="閫夋嫨瀹㈡埛" :visible.sync="selectUserDia" width="70%"> + <div class="body" style="height: 60vh;" v-if="selectUserDia"> + <ValueTable ref="ValueTable2" :url="$api.user.selectCustomPageList" :componentData="componentData2" /> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="selectUserDia = false">鍙� 娑�</el-button> + <el-button type="primary" @click="selectUser">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog title="閫夋嫨鏍峰搧" :visible.sync="selectStandardTree" width="400px"> + <div class="body" style="height: 60vh;overflow-y: auto;" v-if="selectStandardTree"> + <el-row> + <el-col :span="24"> + <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" suffix-icon="el-icon-search" v-model="search" size="small" + style="margin-bottom: 5px;" clearable @blur="searchFilter" @clear="searchFilter" + @keyup.enter.native="searchFilter"></el-input> + </el-col> + </el-row> + <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }" node-key="label" + :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" + @node-collapse="nodeClose" :default-expanded-keys="expandedKeys"> + <div class="custom-tree-node" slot-scope="{ node, data }"> + <el-row> + <el-col :span="24"> + <span><i + :class="`node_i ${data.children != undefined ? 'el-icon-folder-opened' : '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 title="娣诲姞鏍峰搧" :visible.sync="addSampleDia" width="400px"> + <div class="body" style="max-height: 60vh;"> + <el-row> + <el-col class="search_thing" :span="22"> + <div class="search_label"><span class="required-span">* </span>鏍峰搧鍚嶇О锛�</div> + <div class="search_input"> + <el-input readonly size="small" v-model="sample.sample"> + <template slot="append"><el-button slot="append" icon="el-icon-search" + @click="selectStandardTree = true"></el-button></template> + </el-input> + </div> + </el-col> + <el-col class="search_thing" :span="22"> + <div class="search_label"><span class="required-span">* </span>宸ュ巶鍚嶇О锛�</div> + <div class="search_input"> + <el-input size="small" clearable disabled v-model="sample.factory"></el-input> + </div> + </el-col> + <el-col class="search_thing" :span="22"> + <div class="search_label"><span class="required-span">* </span>瀹為獙瀹ゅ悕绉帮細</div> + <div class="search_input"> + <el-input size="small" clearable disabled v-model="sample.laboratory"></el-input> + </div> + </el-col> + <el-col class="search_thing" :span="22"> + <div class="search_label"><span class="required-span">* </span>鏍峰搧绫诲瀷锛�</div> + <div class="search_input"> + <el-input size="small" clearable disabled v-model="sample.sampleType"></el-input> + </div> + </el-col> + <el-col class="search_thing" :span="22"> + <div class="search_label"><span class="required-span">* </span>瑙勬牸鍨嬪彿锛�</div> + <div class="search_input"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="sample.model"></el-input> + </div> + </el-col> + <el-col class="search_thing" :span="22"> + <div class="search_label">鏍峰搧缂栧彿锛�</div> + <div class="search_input"> + <el-input v-model="sample.sampleCode" size="small" placeholder="璇疯緭鍏�" clearable></el-input> + </div> + </el-col> + <el-col class="search_thing" :span="24"> + <div class="search_label">鏍峰搧鏁伴噺锛�</div> + <div class="search_input"> + <el-input-number size="small" v-model="sample.sampleNum" :min="1" :max="100" :precision="0" + style="width: 50%;"></el-input-number> + </div> + </el-col> + <el-col class="search_thing" :span="22"> + <div class="search_label">鏍峰搧鐣欐牱锛�</div> + <div class="search_input"> + <el-radio-group v-model="sample.isLeave"> + <el-radio :label="1">鐣欐牱</el-radio> + <el-radio :label="0">涓嶇暀鏍�</el-radio> + </el-radio-group> + </div> + </el-col> + </el-row> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="addSampleDia = false">鍙� 娑�</el-button> + <el-button type="primary" @click="onSample()" :loading="getProductLoad">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog title="淇濆瓨妯℃澘" :visible.sync="templateDia" width="400px"> + <div class="body" style="display: flex;align-items: center;" v-if="templateDia"> + <div class="search_label" style="width: 90px;"><span class="required-span">* </span>妯℃澘鍚嶇О锛�</div> + <div class="search_input"> + <el-input size="small" clearable v-model="templateName"></el-input> + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="templateDia = false">鍙� 娑�</el-button> + <el-button type="primary" @click="addTemplateDia" :loading="templateLoading">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog title="妫�楠屼笅鍙�" :visible.sync="issuedDialogVisible" width="400px"> + <div class="body" style="max-height: 60vh;"> + <el-row> + <el-col class="search_thing" :span="22"> + <div class="search_label"><span class="required-span">* </span>绾﹀畾鏃堕棿锛�</div> + <div class="search_input"> + <el-date-picker size="small" v-model="distributeData.appointed" type="date" placeholder="閫夋嫨鏃ユ湡" + value-format="yyyy-MM-dd" style="width: 100%;" format="yyyy-MM-dd"> + </el-date-picker> + </div> + </el-col> + <el-col class="search_thing" :span="22"> + <div class="search_label"><span class="required-span" v-if="addObj.type == 2">* </span>鎸囨淳浜哄憳锛�</div> + <div class="search_input"> + <el-select v-model="distributeData.userId" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </div> + </el-col> + </el-row> + </div> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button @click="issuedDialogVisible=false">鍙� 娑�</el-button> + <el-button type="primary" @click="submitForm2" :loading="upLoad">纭� 瀹�</el-button> + </el-row> + </span> + </el-dialog> <el-dialog title="涓嶉�氳繃鍘熷洜" :visible.sync="noDialogVisible" width="400px"> - <div class="body" style="max-height: 60vh;"> - <el-row> - <el-col class="search_thing" :span="22"> - <div class="search_label"><span class="required-span">* </span>涓嶉�氳繃鍘熷洜锛�</div> - <div class="search_input"> - <el-input v-model="tell" size="small" placeholder="璇疯緭鍏ヤ笉閫氳繃鍘熷洜"></el-input> - </div> - </el-col> - </el-row> - </div> - <span slot="footer" class="dialog-footer"> - <el-row> - <el-button @click="noDialogVisible=false,tell=''">鍙� 娑�</el-button> - <el-button type="primary" @click="submitTell" :loading="noLoading">纭� 瀹�</el-button> - </el-row> - </span> - </el-dialog> - </div> + <div class="body" style="max-height: 60vh;"> + <el-row> + <el-col class="search_thing" :span="22"> + <div class="search_label"><span class="required-span">* </span>涓嶉�氳繃鍘熷洜锛�</div> + <div class="search_input"> + <el-input v-model="tell" size="small" placeholder="璇疯緭鍏ヤ笉閫氳繃鍘熷洜"></el-input> + </div> + </el-col> + </el-row> + </div> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button @click="noDialogVisible=false,tell=''">鍙� 娑�</el-button> + <el-button type="primary" @click="submitTell" :loading="noLoading">纭� 瀹�</el-button> + </el-row> + </span> + </el-dialog> + </div> </template> <script> - import ValueTable from '../../tool/value-table.vue' - export default { - components: { - ValueTable - }, - props: { - active: { - type: Number, - default: () => 0 - }, - currentId: { - type: Number, - default: () => 0 - } - }, - data() { - return { - template: null, - templates: [], - addObj: { - entrustCode: null, - custom: null, - company: null, - userId: null, - type: '0', - code: null, - appointed: null, - remark: null, - otcCode: null, - mating: 0, - sample: null, - factory: null, - laboratory: null, - sampleType: null, - sampleNum: 1, - unit: null, - model: null, - method: null - }, - sample: { - sampleCode: null, - laboratory: null, - factory: null, - sampleType: null, - sample: null, - model: null, - sampleNum: 1, - isLeave: 0, - unit: null - }, - type: [], - selectUserDia: false, - componentData2: { - entity: { - orderBy: { - field: 'id', - order: 'asc' - } - }, - isIndex: true, - showSelect: true, - select: false, - do: [], - tagField: { - state: { - select: [{ - value: 1, - type: 'success', - label: '鍚敤' - }, { - value: 0, - type: 'danger', - label: '鍋滅敤' - }] - } - }, - selectField: {}, - }, - selectStandardTree: false, - search: null, - list: [], - selectTree: null, - expandedKeys: [], - sampleList: [], - sampleIds: [], - methodList: [], - addSampleDia: false, - count: 1, - productList: [], - productIds: [], - getProductLoad: false, - saveLoad: false, - templateDia: false, - templateLoading: false, - templateName: '', - issuedDialogVisible: false, - distributeData: { - appointed: '', - userId: '' - }, - personList: [], - upLoad: false, - units: [], - models: [], - methods: [], - methodLoad: false, - noDialogVisible:false, - tell:'', - noLoading:false - } - }, - watch: { - sampleList() { - this.addObj.method = null - this.productList = [] - } - }, - mounted() { - this.selectEnumByCategoryForType() - this.getUserNow() - this.selectStandardTreeList() - this.selectInsOrderTemplate() - this.getAuthorizedPerson(); - this.selectEnumByCategoryForUnit() - this.selectStandardMethods() - if (this.active != 1) { - // 鏌ョ湅/瀹℃牳娴佺▼ - // 璇锋眰鎺ュ彛锛屽洖鏄炬暟鎹� - this.$axios.post(this.$api.insOrder.getInsOrder, { - orderId: this.currentId - }).then(res => { - this.addObj = { - ...res.data.insOrder - }; - this.addObj.type = String(this.addObj.type) - this.sampleList = this.HaveJson(res.data.sampleProduct); - this.addObj.sampleNum = this.sampleList.length - this.$nextTick(() => { - this.$refs.sampleTable.doLayout() - }) - }) - } - }, - methods: { - 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 - }) - }, - selectEnumByCategoryForType() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "绱ф�ョ▼搴�" - }).then(res => { - this.type = res.data - }) - }, - selectUser() { - let selects = this.$refs.ValueTable2.multipleSelection - if (selects.length == 0) { - this.$message.error('鏈�夋嫨鏁版嵁') - return - } - delete selects['orderBy'] - delete selects['updateUser'] - delete selects['updateTime'] - this.addObj.userId = selects.id - this.addObj.company = selects.company - this.addObj.custom = selects.name - this.addObj.code = selects.code - this.selectUserDia = false - }, - save() { - if (!this.addObj.custom) { - this.$message.error('鏈�夋嫨涓嬪崟瀹㈡埛') + import ValueTable from '../../tool/value-table.vue' + export default { + components: { + ValueTable + }, + props: { + active: { + type: Number, + default: () => 0 + }, + currentId: { + type: Number, + default: () => 0 + } + }, + data() { + return { + template: null, + templates: [], + addObj: { + entrustCode: null, + custom: null, + company: null, + userId: null, + type: '0', + code: null, + appointed: null, + remark: null, + otcCode: null, + mating: 0, + sample: null, + factory: null, + laboratory: null, + sampleType: null, + sampleNum: 1, + unit: null, + model: null, + method: null, + phone: null, + processing: 1, + isLeave: 0, + orderType: null, + send: 1, + formType: '閫佹' + }, + sample: { + sampleCode: null, + laboratory: null, + factory: null, + sampleType: null, + sample: null, + model: null, + sampleNum: 1, + isLeave: 0, + unit: null + }, + type: [], + selectUserDia: false, + componentData2: { + entity: { + orderBy: { + field: 'id', + order: 'asc' + } + }, + isIndex: true, + showSelect: true, + select: false, + do: [], + tagField: { + state: { + select: [{ + value: 1, + type: 'success', + label: '鍚敤' + }, { + value: 0, + type: 'danger', + label: '鍋滅敤' + }] + } + }, + selectField: {}, + }, + selectStandardTree: false, + search: null, + list: [], + selectTree: null, + expandedKeys: [], + sampleList: [], + sampleIds: [], + methodList: [], + addSampleDia: false, + count: 1, + productList: [], + productIds: [], + getProductLoad: false, + saveLoad: false, + templateDia: false, + templateLoading: false, + templateName: '', + issuedDialogVisible: false, + distributeData: { + appointed: '', + userId: '' + }, + personList: [], + upLoad: false, + units: [], + models: [], + methods: [], + methodLoad: false, + noDialogVisible: false, + tell: '', + noLoading: false, + orderType: [], + filters: [] + } + }, + watch: { + sampleList() { + this.addObj.method = null + this.productList = [] + } + }, + mounted() { + this.selectEnumByCategoryForType() + this.getUserNow() + this.selectStandardTreeList() + this.selectInsOrderTemplate() + this.getAuthorizedPerson(); + this.selectEnumByCategoryForUnit() + this.selectStandardMethods() + this.selectEnumByCategoryForOrderType() + this.selectEnumByCategoryForSonLaboratory() + if (this.active != 1) { + // 鏌ョ湅/瀹℃牳娴佺▼ + // 璇锋眰鎺ュ彛锛屽洖鏄炬暟鎹� + this.$axios.post(this.$api.insOrder.getInsOrder, { + orderId: this.currentId + }).then(res => { + this.addObj = { + ...res.data.insOrder + }; + this.addObj.type = String(this.addObj.type) + this.sampleList = this.HaveJson(res.data.sampleProduct); + this.addObj.sampleNum = this.sampleList.length + this.$nextTick(() => { + this.$refs.sampleTable.doLayout() + }) + }) + } + }, + methods: { + 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 + }) + }, + selectEnumByCategoryForType() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "绱ф�ョ▼搴�" + }).then(res => { + this.type = res.data + }) + }, + selectUser() { + let selects = this.$refs.ValueTable2.multipleSelection + if (selects.length == 0) { + this.$message.error('鏈�夋嫨鏁版嵁') return - } + } + delete selects['orderBy'] + delete selects['updateUser'] + delete selects['updateTime'] + 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.selectUserDia = false + }, + save() { + if (!this.addObj.custom) { + this.$message.error('鏈�夋嫨涓嬪崟瀹㈡埛') + return + } if (!this.addObj.type) { - this.$message.error('鏈�夋嫨绱ф�ョ▼搴�') - } else if (this.sampleList.length < 1) { - this.$message.error('璇锋坊鍔犱竴涓牱鍝�') - } else if (!this.sampleList.every(m => m.sample)) { - this.$message.error('璇疯緭鍏ユ牱鍝佸悕绉�') - } else if (!this.sampleList.every(m => m.model)) { - this.$message.error('璇疯緭鍏ユ牱鍝佸瀷鍙�') - } else if (!this.sampleList.every(m => m.standardMethodListId)) { - this.$message.error('璇烽�夋嫨妫�楠屾爣鍑�') - } else if (!this.sampleList.every(m => m.unit)) { - this.$message.error('璇疯緭鍏ユ牱鍝佺殑鍗曚綅') - } else { - this.saveLoad = true - this.$axios.post(this.$api.insOrder.addInsOrder, { - insOrder: this.addObj, - list: JSON.stringify(this.sampleList) - }, { - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - this.saveLoad = false - if (res.code == 201) return - this.$message.success('宸叉彁浜�') - this.$parent.playOrder(0) - }) - } - }, - upInsOrderOfState(state) { - if(state == 1){ + this.$message.error('鏈�夋嫨绱ф�ョ▼搴�') + } else if (!this.addObj.formType) { + this.$message.error('璇疯緭鍏ユ潵鏍锋柟寮�') + } else if (!this.addObj.orderType) { + this.$message.error('璇烽�夋嫨妫�楠岀被鍒�') + } else if (this.sampleList.length < 1) { + this.$message.error('璇锋坊鍔犱竴涓牱鍝�') + } else if (!this.sampleList.every(m => m.sample)) { + this.$message.error('璇疯緭鍏ユ牱鍝佸悕绉�') + } else if (!this.sampleList.every(m => m.model)) { + this.$message.error('璇疯緭鍏ユ牱鍝佸瀷鍙�') + } else if (!this.sampleList.every(m => m.standardMethodListId)) { + this.$message.error('璇烽�夋嫨妫�楠屾爣鍑�') + } else if (!this.sampleList.every(m => m.unit)) { + this.$message.error('璇疯緭鍏ユ牱鍝佺殑鍗曚綅') + } else { + this.saveLoad = true + this.$axios.post(this.$api.insOrder.addInsOrder, { + insOrder: this.addObj, + list: JSON.stringify(this.sampleList) + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + this.saveLoad = false + if (res.code == 201) return + this.$message.success('宸叉彁浜�') + this.$parent.playOrder(0) + }) + } + }, + upInsOrderOfState(state) { + if (state == 1) { this.saveLoad = true this.$axios.post(this.$api.insOrder.upInsOrderOfState, { state, @@ -720,421 +763,434 @@ // } else { // this.$parent.playOrder(0) // } - this.issuedDialogVisible = true; this.$axios.post(this.$api.insOrder.selectOrderManDay, { id: this.currentId }).then(ress => { this.distributeData.orderId = this.currentId this.distributeData.appointed = ress.data }) + setTimeout(()=>{ + this.issuedDialogVisible = true; + },1000) }) - }else{ + } else { // 涓嶉�氳繃 this.noDialogVisible = true } - }, - // 涓嬪彂 - submitForm2() { - if (this.distributeData.appointed == null || this.distributeData.appointed == '') { - this.$message.error('绾﹀畾鏃堕棿鏈~鍐�') - return - } - if (this.addObj.type == 2&&(this.distributeData.userId == null || this.distributeData.userId == '')) { - this.$message.error('鎸囨淳浜哄憳鏈~鍐�') - return - } - this.upLoad = true; - this.$axios.post(this.$api.insOrder.upInsOrder, { - orderId: this.distributeData.orderId, - appointed: this.distributeData.appointed, - userId: this.distributeData.userId - }).then(res => { - if (res.code === 201) { - this.upLoad = false - return - } - this.$message.success('鎻愪氦鎴愬姛') - this.upLoad = false - this.issuedDialogVisible = false - this.$parent.playOrder(0) - }).catch(e => { - this.$message.error('鎻愪氦澶辫触') - this.upLoad = 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 - }) - }, - 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) - this.selectTree = this.selectTree.replace(' - ', '') - 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) { - this.selectTree += ' - ' + val.label - this.getNodeParent(val.parent) - } - }, - selectStandardTreeList() { - this.$axios.get(this.$api.standardTree.selectStandardTreeList).then(res => { - this.list = res.data - this.list.forEach(a => { - a.children.forEach(b => { - this.expandedKeys.push(b.label) - }) - }) - }) - }, - filterNode(value, data) { - if (!value) return true; - return data.label.indexOf(value) !== -1; - }, - activeStandardTree() { - let trees = this.selectTree.split(" - ") - if (trees.length < 4) { - this.$message.error('鏈�夋嫨鏍峰搧') - return - } - this.addObj.factory = trees[0] - this.addObj.laboratory = trees[1] - this.addObj.sampleType = trees[2] - 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.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 = [] - 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.sampleList.push(this.HaveJson(this.sample)) - this.count++ - } - }, - selectSample(val) { - this.sampleIds = [] - val.forEach(a => { - this.sampleIds.push(a.id) - }) - }, - onSample() { - if (this.sample.sample == null || this.sample.sample == '') { - this.$message.error('璇烽�夋嫨鏍峰搧') - return - } - if (this.sample.model == null || this.sample.model == '') { - this.$message.error('璇疯緭鍏ユ牱鍝佸瀷鍙�') - return - } - // this.getProductLoad = true - /* this.$axios.post(this.$api.standardTree.selectStandardProductList, { - factory: this.sample.factory, - laboratory: this.sample.laboratory, - sampleType: this.sample.sampleType, - sample: this.sample.sample, - model: this.sample.model - }, { - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - res.data.forEach(a => { - a.state = 1 - }) - for (var i = 0; i < this.sample.sampleNum; i++) { - this.sample.joinName = null - this.sample.joinModel = null - this.sample.joinNum = 1 - this.sample.insProduct = res.data - this.sample.id = this.count - this.sampleList.push(this.HaveJson(this.sample)) - this.count++ - } - this.$refs.sampleTable.doLayout() - this.getProductLoad = false - this.addSampleDia = false - this.sample = { - sampleCode: null, - laboratory: null, - factory: null, - sampleType: null, - sample: null, - model: null, - sampleNum: 1, - isLeave: 0, - } - }) */ - }, - delSample() { - this.sampleIds.forEach(a => { - for (var i = 0; i < this.sampleList.length; i++) { - if (this.sampleList[i].id == a) { - this.sampleList.splice(i, 1) - i -= 1 - break - } - } - }) - this.$refs.sampleTable.doLayout() - }, - selectProduct(val) { - this.productIds = [] - val.forEach(a => { - this.productIds.push(a.id) - }) - }, - rowClick(row, column, event) { - this.productList = row.insProduct - setTimeout(() => { - this.productList.forEach(a => { - if (a.state == 1) this.toggleSelection(a) - }) - }, 200) - }, - toggleSelection(row) { - this.$refs.productTable.toggleRowSelection(row, true); - }, - upProductSelect(selection, row) { - row.state = row.state == 1 ? 0 : 1 - 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 - }) - }, - tableRowClassName({ - row, - rowIndex - }) { - if (row.state === 0) { - return 'warning-row'; - } - return ''; - }, - selectInsOrderTemplate() { - this.$axios.get(this.$api.insOrder.selectInsOrderTemplate).then(res => { - if (res.code == 201) return - this.templates = res.data - }) - }, - // 鍒犻櫎妯℃澘--璋冪敤鎺ュ彛 - handleDelete(row) { - this.$confirm('鏄惁鍒犻櫎褰撳墠鏁版嵁?', "璀﹀憡", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning" - }).then(() => { - this.$axios.post(this.$api.insOrder.delInsOrderTemplate, { - id: row.id - }).then(res => { - if (res.code === 201) { - return - } - this.$message.success('鍒犻櫎鎴愬姛') - this.selectInsOrderTemplate() - }).catch(e => { - this.$message.error('鍒犻櫎澶辫触') - }) - }).catch(() => {}) - }, - // 淇濆瓨妯℃澘 - addTemplateDia() { - if (this.templateName) { - this.templateLoading = true; - this.$axios.post(this.$api.insOrder.addInsOrderTemplate, { - name: this.templateName, - thing: JSON.stringify({ - addObj: this.addObj, - sampleList: this.sampleList - }) - }, { - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - if (res.code == 201) return - this.templateLoading = false; - this.templateDia = false; - this.$message.success('淇濆瓨鎴愬姛') - this.selectInsOrderTemplate() - this.templateName = '' - }) - } else { - this.$message.error('璇峰~鍐欐ā鏉垮悕绉�') - } - }, - // 鏌ヨ妯℃澘 - selectInsOrderTemplateById(e) { - this.$axios.post(this.$api.insOrder.selectInsOrderTemplateById + '?id=' + e).then(res => { - if (res.code == 201) return - let obj = JSON.parse(res.data) - this.addObj = obj.addObj; - this.sampleList = obj.sampleList; - }) - }, - delSampleAndProduct() { - this.sampleList.splice(scope.$index, 1) - this.productList = [] - }, - selectEnumByCategoryForUnit() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "鍗曚綅" - }).then(res => { - this.units = res.data - }) - }, - methodChange(val, row) { - this.getProductLoad = true - this.$axios.post(this.$api.standardTree.selectStandardProductList, { - model: this.addObj.model, - standardMethodListId: val - }, { - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - res.data.forEach(a => { - a.state = 1 - }) - row.insProduct = this.HaveJson(res.data) - this.getProductLoad = false - this.productList = row.insProduct - this.$refs.sampleTable.setCurrentRow(row) - setTimeout(() => { - this.productList.forEach(a => { - if (a.state == 1) this.toggleSelection(a) - }) - }, 200) - }) - }, - methodFocus() { - this.selectsStandardMethodByFLSSM() - }, - handleChangeModel(e) { - let num = this.selectTree.split('-').length; - if (num == 4) { - 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) { - this.sampleList.map(item => { - if (this.sampleIds.indexOf(item.id) > -1) { - item.insProduct.map(m => { - if (m.id == row.id) { - m.ask = e; - } - return m; - }) - } - return item - }) - }, - selectStandardMethods() { - this.$axios.get(this.$api.standardTree.selectStandardMethodEnum).then(res => { - this.methods = res.data - }) - }, - selectable(){ - if(this.active>1){ + }, + // 涓嬪彂 + submitForm2() { + if (this.distributeData.appointed == null || this.distributeData.appointed == '') { + this.$message.error('绾﹀畾鏃堕棿鏈~鍐�') + return + } + if (this.addObj.type == 2 && (this.distributeData.userId == null || this.distributeData.userId == '')) { + this.$message.error('鎸囨淳浜哄憳鏈~鍐�') + return + } + this.upLoad = true; + this.$axios.post(this.$api.insOrder.upInsOrder, { + orderId: this.distributeData.orderId, + appointed: this.distributeData.appointed, + userId: this.distributeData.userId + }).then(res => { + if (res.code === 201) { + this.upLoad = false + return + } + this.$message.success('鎻愪氦鎴愬姛') + this.upLoad = false + this.issuedDialogVisible = false + this.$parent.playOrder(0) + }).catch(e => { + this.$message.error('鎻愪氦澶辫触') + this.upLoad = 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 + }) + }, + 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) + this.selectTree = this.selectTree.replace(' - ', '') + 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) { + this.selectTree += ' - ' + val.label + this.getNodeParent(val.parent) + } + }, + selectStandardTreeList() { + this.$axios.get(this.$api.standardTree.selectStandardTreeList).then(res => { + this.list = res.data + this.list.forEach(a => { + a.children.forEach(b => { + this.expandedKeys.push(b.label) + }) + }) + }) + }, + filterNode(value, data) { + if (!value) return true; + return data.label.indexOf(value) !== -1; + }, + activeStandardTree() { + let trees = this.selectTree.split(" - ") + if (trees.length < 4) { + this.$message.error('鏈�夋嫨鏍峰搧') + return + } + this.addObj.factory = trees[0] + this.addObj.laboratory = trees[1] + this.addObj.sampleType = trees[2] + 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.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 = [] + 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.sampleList.push(this.HaveJson(this.sample)) + this.count++ + } + }, + selectSample(val) { + this.sampleIds = [] + val.forEach(a => { + this.sampleIds.push(a.id) + }) + }, + onSample() { + if (this.sample.sample == null || this.sample.sample == '') { + this.$message.error('璇烽�夋嫨鏍峰搧') + return + } + if (this.sample.model == null || this.sample.model == '') { + this.$message.error('璇疯緭鍏ユ牱鍝佸瀷鍙�') + return + } + // this.getProductLoad = true + /* this.$axios.post(this.$api.standardTree.selectStandardProductList, { + factory: this.sample.factory, + laboratory: this.sample.laboratory, + sampleType: this.sample.sampleType, + sample: this.sample.sample, + model: this.sample.model + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + res.data.forEach(a => { + a.state = 1 + }) + for (var i = 0; i < this.sample.sampleNum; i++) { + this.sample.joinName = null + this.sample.joinModel = null + this.sample.joinNum = 1 + this.sample.insProduct = res.data + this.sample.id = this.count + this.sampleList.push(this.HaveJson(this.sample)) + this.count++ + } + this.$refs.sampleTable.doLayout() + this.getProductLoad = false + this.addSampleDia = false + this.sample = { + sampleCode: null, + laboratory: null, + factory: null, + sampleType: null, + sample: null, + model: null, + sampleNum: 1, + isLeave: 0, + } + }) */ + }, + delSample() { + this.sampleIds.forEach(a => { + for (var i = 0; i < this.sampleList.length; i++) { + if (this.sampleList[i].id == a) { + this.sampleList.splice(i, 1) + i -= 1 + break + } + } + }) + this.$refs.sampleTable.doLayout() + }, + selectProduct(val) { + this.productIds = [] + val.forEach(a => { + this.productIds.push(a.id) + }) + }, + rowClick(row, column, event) { + this.productList = row.insProduct + setTimeout(() => { + this.productList.forEach(a => { + if (a.state == 1) this.toggleSelection(a) + }) + }, 200) + }, + toggleSelection(row) { + this.$refs.productTable.toggleRowSelection(row, true); + }, + upProductSelect(selection, row) { + row.state = row.state == 1 ? 0 : 1 + 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 + }) + }, + tableRowClassName({ + row, + rowIndex + }) { + if (row.state === 0) { + return 'warning-row'; + } + return ''; + }, + selectInsOrderTemplate() { + this.$axios.get(this.$api.insOrder.selectInsOrderTemplate).then(res => { + if (res.code == 201) return + this.templates = res.data + }) + }, + // 鍒犻櫎妯℃澘--璋冪敤鎺ュ彛 + handleDelete(row) { + this.$confirm('鏄惁鍒犻櫎褰撳墠鏁版嵁?', "璀﹀憡", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + this.$axios.post(this.$api.insOrder.delInsOrderTemplate, { + id: row.id + }).then(res => { + if (res.code === 201) { + return + } + this.$message.success('鍒犻櫎鎴愬姛') + this.selectInsOrderTemplate() + }).catch(e => { + this.$message.error('鍒犻櫎澶辫触') + }) + }).catch(() => {}) + }, + // 淇濆瓨妯℃澘 + addTemplateDia() { + if (this.templateName) { + this.templateLoading = true; + this.$axios.post(this.$api.insOrder.addInsOrderTemplate, { + name: this.templateName, + thing: JSON.stringify({ + addObj: this.addObj, + sampleList: this.sampleList + }) + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) return + this.templateLoading = false; + this.templateDia = false; + this.$message.success('淇濆瓨鎴愬姛') + this.selectInsOrderTemplate() + this.templateName = '' + }) + } else { + this.$message.error('璇峰~鍐欐ā鏉垮悕绉�') + } + }, + // 鏌ヨ妯℃澘 + selectInsOrderTemplateById(e) { + this.$axios.post(this.$api.insOrder.selectInsOrderTemplateById + '?id=' + e).then(res => { + if (res.code == 201) return + let obj = JSON.parse(res.data) + this.addObj = obj.addObj; + this.sampleList = obj.sampleList; + }) + }, + delSampleAndProduct() { + this.sampleList.splice(scope.$index, 1) + this.productList = [] + }, + selectEnumByCategoryForUnit() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "鍗曚綅" + }).then(res => { + this.units = res.data + }) + }, + selectEnumByCategoryForOrderType() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "妫�楠岀被鍒�" + }).then(res => { + this.orderType = res.data + if(res.data.length > 0){ + this.addObj.orderType = res.data[0].value + } + }) + }, + methodChange(val, row) { + this.getProductLoad = true + this.$axios.post(this.$api.standardTree.selectStandardProductList, { + model: this.addObj.model, + standardMethodListId: val + }, { + 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.$refs.sampleTable.setCurrentRow(row) + setTimeout(() => { + this.productList.forEach(a => { + if (a.state == 1) this.toggleSelection(a) + }) + }, 200) + }) + }, + methodFocus() { + this.selectsStandardMethodByFLSSM() + }, + handleChangeModel(e) { + let num = this.selectTree.split('-').length; + if (num == 4) { + 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) { + this.sampleList.map(item => { + if (this.sampleIds.indexOf(item.id) > -1) { + item.insProduct.map(m => { + if (m.id == row.id) { + m.ask = e; + } + return m; + }) + } + return item + }) + }, + selectStandardMethods() { + this.$axios.get(this.$api.standardTree.selectStandardMethodEnum).then(res => { + this.methods = res.data + }) + }, + selectable() { + if (this.active > 1) { return false - }else{ + } else { return true } }, - handleAll(e){ - if(e.length>0){ - this.productList.map(m=>{ + handleAll(e) { + if (e.length > 0) { + this.productList.map(m => { m.state = 1 return m }) - }else{ - this.productList.map(m=>{ + } else { + this.productList.map(m => { m.state = 0 return m }) } - if(e.length>0){ + if (e.length > 0) { this.sampleList.map(item => { if (this.sampleIds.indexOf(item.id) > -1) { item.insProduct.map(m => { @@ -1144,7 +1200,7 @@ } return item }) - }else{ + } else { this.sampleList.map(item => { if (this.sampleIds.indexOf(item.id) > -1) { item.insProduct.map(m => { @@ -1155,33 +1211,50 @@ return item }) } - this.$nextTick(()=>{ + this.$nextTick(() => { this.$refs.productTable.doLayout() }) }, - submitTell(){ + submitTell() { if (!this.tell) { - this.$message.error('璇疯緭鍏ヤ笉閫氳繃鍘熷洜') + this.$message.error('璇疯緭鍏ヤ笉閫氳繃鍘熷洜') return - } + } this.noLoading = true; this.$axios.post(this.$api.insOrder.upInsOrderOfState, { - state:2, - id: this.currentId, - tell:this.tell - }, { - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - this.noLoading = false; - this.tell = ''; - if (res.code == 201) return - this.$message.success('鎻愪氦鎴愬姛') - this.issuedDialogVisible = false; - this.$parent.playOrder(0) + state: 2, + id: this.currentId, + tell: this.tell + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + this.noLoading = false; + this.tell = ''; + if (res.code == 201) return + this.$message.success('鎻愪氦鎴愬姛') + this.issuedDialogVisible = false; + this.$parent.playOrder(0) + }) + }, + selectEnumByCategoryForSonLaboratory() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "瀛愬疄楠屽" + }).then(res => { + this.factory = [] + res.data.forEach(a=>{ + this.filters.push({ + text: a.label, + value: a.value + }) }) + }) + }, + filterHandler(value, row, column) { + const property = column['property']; + return row[property] === value; } - } - } + } + } </script> -- Gitblit v1.9.3