From 2281a3da368d9366e7d97e85719fe0f4a0492f9b Mon Sep 17 00:00:00 2001 From: 李林 <z1292839451@163.com> Date: 星期一, 18 三月 2024 01:05:37 +0800 Subject: [PATCH] 功能调整 --- src/components/view/b1-inspect-order-plan.vue | 653 ++++++++++++++++++++++++++++++---------------------------- 1 files changed, 340 insertions(+), 313 deletions(-) diff --git a/src/components/view/b1-inspect-order-plan.vue b/src/components/view/b1-inspect-order-plan.vue index d7e56f9..2c3f8b1 100644 --- a/src/components/view/b1-inspect-order-plan.vue +++ b/src/components/view/b1-inspect-order-plan.vue @@ -1,158 +1,174 @@ <style scoped> -ins-order-plan-main .title{ - font-size:20px; - color:#3A7BFA -} -.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; -} + .ins-order-plan-main .search { + width: 100%; + margin-bottom: 10px; + height: 80px; + background-color: #fff; + border-radius: 3px; + } -.tab li:nth-child(3) { - border-radius: 0 8px 8px 0; -} + .search .form-inline { + height: 50px; + padding-top: 20px; + padding-left: 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: left; -} -.center .center-options .center-title span:last-child{ - color: #3A7BFA; - font-size: 23px; - font-weight: 400; -} -.view-self-checkbox{ -margin-left: 20px; -} + .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-child(3) { + border-radius: 0 8px 8px 0; + } + + .tab li.active { + border-color: #3A7BFA; + color: #3A7BFA; + } + + .center .center-options .center-title { + width: 100%; + text-align: right; + display: flex; + align-items: center; + } + + .center .center-options .center-title span:last-child { + color: #3A7BFA; + font-size: 23px; + font-weight: 400; + } + + .view-self-checkbox { + margin-left: 50px; + } +</style> +<style> + .ins-order-plan-main .el-form-item__label{ + color: #000; + } </style> <template> - <div class="ins-order-plan-main"> - <p style="font-size: 16px;padding:19.5px 0px">妫�楠屼换鍔�</p> - <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> - </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="21"> - <div style="display: flex;align-items: center;"> - <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-checkbox @change="changeCheckBox" class="view-self-checkbox" v-model="viewSelf"/><span> 鎴戠殑浠诲姟</span> - </div> - </el-col> - <el-col :span="3"> - <div class="center-title"> - <span>鎬昏浠诲姟鏁伴噺:</span> - <span v-if="$refs.insOrderPlan != undefined">{{$refs.insOrderPlan.total}}</span> - </div> - </el-col> - </el-row> - </div> - <ValueTable :tableRowClassName="changeRowClass" class="value-table" ref="insOrderPlan" :url="$api.insOrderPlan.selectInsOrderPlanList" :upUrl="$api.user.updateUser" :componentData="componentData" :key="upIndex" @upUser="upUser"/> - </div> - <el-dialog - title="鎻愮ず" - :visible.sync="claimVisible" - width="40%"> - 鏄惁璁ら濮旀墭缂栧彿<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">纭� 瀹�</el-button> - </span> - </el-dialog> - </div> + <div class="ins-order-plan-main"> + <p style="font-size: 16px;padding:19.5px 0px">妫�楠屼换鍔�</p> + <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> + </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="21"> + <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}} + </li> + </ul> + <div> + <el-checkbox @change="changeCheckBox" class="view-self-checkbox" + v-model="viewSelf"><span>鎴戠殑浠诲姟</span></el-checkbox> + </div> + </div> + </el-col> + <el-col :span="3"> + <div class="center-title"> + <span>鎬昏浠诲姟鏁伴噺:</span> + <span v-if="$refs.insOrderPlan != undefined">{{$refs.insOrderPlan.total}}</span> + </div> + </el-col> + </el-row> + </div> + <ValueTable :tableRowClassName="changeRowClass" class="value-table" ref="insOrderPlan" + :url="$api.insOrderPlan.selectInsOrderPlanList" :upUrl="$api.user.updateUser" :componentData="componentData" + :key="upIndex" @upUser="upUser" /> + </div> + <el-dialog title="鎻愮ず" :visible.sync="claimVisible" width="40%"> + 鏄惁璁ら濮旀墭缂栧彿<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">纭� 瀹�</el-button> + </span> + </el-dialog> + </div> </template> <script> -import ValueTable from '../tool/value-table.vue' -import { getYearAndMonthAndDays } from '../../util/date' -export default { - components:{ - ValueTable - }, - data(){ - return { - viewSelf: false, - sampleUserForm:{ - entrustCode: null, - insSampleId: null, - userId: null - }, - claimVisible: false, - searchForm:{ - sampleName: null, - state: null - }, - tabList: [], - active: 1, - tabIndex: 0, - componentData: { + import ValueTable from '../tool/value-table.vue' + import { + getYearAndMonthAndDays + } from '../../util/date' + export default { + components: { + ValueTable + }, + data() { + return { + viewSelf: false, + sampleUserForm: { + entrustCode: null, + insSampleId: null, + userId: null + }, + claimVisible: false, + searchForm: { + sampleName: null, + state: null + }, + tabList: [], + active: 1, + tabIndex: 0, + componentData: { entity: { - viewSelf: false, - state: 1, - childrenLaboratory: null, - insState: null, - sampleName: null, + viewSelf: false, + state: 1, + childrenLaboratory: null, + insState: null, + sampleName: null, orderBy: { field: 'type', order: 'desc' @@ -162,179 +178,190 @@ showSelect: false, select: false, do: [{ - id: '', - font: '妫�楠�', - type: 'text', - method: '', - field:[] - },{ - id: '', - font: '浜ゆ帴', - type: 'text', - method: '' - }, - { - id: '', - font: '澶嶆牳', - type: 'text', - method: '' - },{ - id: '', - font: '璁ら', - type: 'text', - method: 'claimFun', - disabFun: (row,index)=>{return row.sampleUserId!=null} - }], + id: '', + font: '妫�楠�', + type: 'text', + method: '', + field: [] + }, { + id: '', + font: '浜ゆ帴', + type: 'text', + method: '' + }, + { + id: '', + font: '澶嶆牳', + type: 'text', + method: '' + }, { + id: '', + font: '璁ら', + type: 'text', + method: 'claimFun', + disabFun: (row, index) => { + return row.sampleUserId != null + } + } + ], tagField: { - type:{ - select:[] - }, - insState:{ - select:[] - } - }, + type: { + select: [] + }, + insState: { + select: [] + } + }, selectField: {}, - requiredAdd:[], - requiredUp:[] + requiredAdd: [], + requiredUp: [] }, - upIndex: 0, - planTotal: 0, - insStateList: [] - } - }, - created(){ - this.getTypeDicts() - this.getInsStateDicts() - this.getLaboratoryDicts() - this.$nextTick(()=>{ - this.refreshTable() - }) - }, - watch:{ - tabList(newVal){ - if(newVal && newVal.length>0){ - this.componentData.entity.childrenLaboratory = newVal[0].value - this.$nextTick(()=>{ - this.refreshTable() - }) - } - } - }, - methods:{ - upUser(){ + upIndex: 0, + planTotal: 0, + insStateList: [] + } + }, + created() { + this.getTypeDicts() + this.getInsStateDicts() + this.getLaboratoryDicts() + this.$nextTick(() => { + this.refreshTable() + }) + }, + watch: { + tabList(newVal) { + if (newVal && newVal.length > 0) { + this.componentData.entity.childrenLaboratory = newVal[0].value + this.$nextTick(() => { + this.refreshTable() + }) + } + } + }, + methods: { + upUser() { - }, - changeCheckBox(val){ - this.componentData.entity.viewSelf = val - this.$nextTick(()=>{ - this.refreshTable() - }) - }, - claimFun(row){ - console.log(row) - if(row){ - this.sampleUserForm = { - entrustCode : row.entrustCode, - insSampleId: row.id - } - this.claimVisible = true - } + }, + changeCheckBox(val) { + this.componentData.entity.viewSelf = val + this.$nextTick(() => { + this.refreshTable() + }) + }, + claimFun(row) { + console.log(row) + if (row) { + this.sampleUserForm = { + entrustCode: row.entrustCode, + insSampleId: row.id + } + this.claimVisible = true + } - }, - confirmClaim(){ - this.$axios.post(this.$api.insOrderPlan.claimInsOrderPlan, this.sampleUserForm,{ + }, + confirmClaim() { + this.$axios.post(this.$api.insOrderPlan.claimInsOrderPlan, this.sampleUserForm, { headers: { 'Content-Type': 'application/json' } - }).then(res=>{ - if(res.code===200 && res.data){ - this.$message.success("璁ら鎴愬姛") - this.claimVisible = false - this.refreshTable() - } - }).catch(error=>{ - console.error(error) - }) - }, - refreshTable() { - this.$refs.insOrderPlan.selectList() - }, - changeRowClass({row,rowIndex}){ - let currentTime = getYearAndMonthAndDays() - if(row.sendTime && currentTime===row.sendTime){ - return 'highlight-warning-row-border' - }else if(row.sendTime && currentTime>row.sendTime){ - 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.childrenLaboratory = 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' - } - }) - 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}}) - this.$nextTick(()=>{ - this.componentData.entity.childrenLaboratory = this.tabList[0].value - }) - }) - } - } -} -</script> + }).then(res => { + if (res.code === 200 && res.data) { + this.$message.success("璁ら鎴愬姛") + this.claimVisible = false + this.refreshTable() + } + }).catch(error => { + console.error(error) + }) + }, + refreshTable() { + this.$refs.insOrderPlan.selectList() + }, + changeRowClass({ + row, + rowIndex + }) { + let currentTime = getYearAndMonthAndDays() + if (row.sendTime && currentTime === row.sendTime) { + return 'highlight-warning-row-border' + } else if (row.sendTime && currentTime > row.sendTime) { + 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.childrenLaboratory = 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' + } + }) + 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 + } + }) + this.$nextTick(() => { + this.componentData.entity.childrenLaboratory = this.tabList[0].value + }) + }) + } + } + } +</script> \ No newline at end of file -- Gitblit v1.9.3