From 80678ee8f5e84f943a09a406b65108225861ff94 Mon Sep 17 00:00:00 2001 From: lkk <364857242@qq.com> Date: 星期五, 11 四月 2025 10:45:25 +0800 Subject: [PATCH] 1 --- src/views/doctor/check/index.vue | 1 src/api/picture/picture.js | 42 ++ src/components/public/index.vue | 515 +++++++++++++++-------- src/views/picture/picture/index.vue | 654 ++++++++++++++++++++++++++---- 4 files changed, 936 insertions(+), 276 deletions(-) diff --git a/src/api/picture/picture.js b/src/api/picture/picture.js index 8a37acf..49fce0c 100644 --- a/src/api/picture/picture.js +++ b/src/api/picture/picture.js @@ -53,3 +53,45 @@ method: 'delete' }) } + +// 褰卞儚妫�鏌ュ垪琛�(楠ㄥ瘑搴﹀拰蹇冪數鍥�) +export function getYxJcList(query) { + return request({ + url: '/picture/picture/getYxJcList', + method: 'get', + params: query + }) +} + +// 鎻愪氦褰卞儚妫�鏌ラ瀵嗗害蹇冪數鍥剧粨鏋滄帴鍙� +export function addYxJcXx(query) { + return request({ + url: '/picture/picture/addYxJcXx', + method: 'get', + params: query + }) +} + +// 褰卞儚妫�鏌ラ瀵嗗害蹇冪數鍥鹃〉闈㈢偣鍑讳綋妫�浜哄憳灞曠ず浣撴椤圭洰鎺ュ彛 +export function getYxJcXx(tjNumber) { + return request({ + url: '/picture/picture/getYxJcXx', + method: 'get', + params: { + tjNumber: tjNumber + } + }) +} + +// 鑾峰彇褰卞儚妫�鏌ラ瀵嗗害蹇冪數鍥剧粨鏋滄帴鍙� +export function getYxJcXxJg(tjNumber,proId) { + return request({ + url: '/picture/picture/getYxJcXxJg', + method: 'get', + params: { + tjNumber: tjNumber, + proId:proId + } + }) +} + diff --git a/src/components/public/index.vue b/src/components/public/index.vue index 1bd5508..7eb7eec 100644 --- a/src/components/public/index.vue +++ b/src/components/public/index.vue @@ -1,197 +1,342 @@ <template> <div> - <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> - <h3 v-if="fList.proResult ">妫�娴嬮」鐩� :{{ fList.project.proName }}</h3> - <h3 v-if="fList.proResult ">妫�娴嬬粨鏋� :{{ fList.proResult }}{{fList.project.proMetering}}</h3> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"> - <el-form-item label="鐥呯鍚嶇О" prop="bingzhong"> - <el-input v-model="queryParams.bingzhong" placeholder="璇疯緭鍏ョ畝绉�" clearable - @keyup.enter.native="handleQuery" style="width: 120px;" /> - </el-form-item> - <el-form-item label="鎷奸煶鐮�" prop="bzPinyin"> - <el-input v-model="queryParams.bzPinyin" placeholder="璇疯緭鍏ユ嫾闊崇爜" clearable - @keyup.enter.native="handleQuery" style="width: 130px;" /> - </el-form-item> - <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> - </el-form-item> - </el-form> - <el-table :data="dataList" ref="multipleTable" v-loading="loading" @selection-change="handleSelectionChange" - border height="320px - "> - <el-table-column type="selection" width="40" align="center" /> - <el-table-column label="搴忓彿" type="index" width="80px" /> - <el-table-column label="瑙勫垯" align="center" prop="ruleStr" /> - <el-table-column label="鐥呯鍚嶇О" align="center" prop="bingzhong" /> + <el-dialog + :title="title" + :visible.sync="open" + width="1080px" + append-to-body + > + <h3 v-if="fList.proResult">妫�娴嬮」鐩� :{{ fList.project.proName }}</h3> + <h3 v-if="fList.proResult"> + 妫�娴嬬粨鏋� :{{ fList.proResult }}{{ fList.project.proMetering }} + </h3> + <!-- <el-form + :model="queryParams" + ref="queryForm" + size="small" + :inline="true" + label-width="68px" + > --> + <!-- <el-form-item label="鐥呯鍚嶇О" prop="bingzhong"> + <el-input + v-model="queryParams.bingzhong" + placeholder="璇疯緭鍏ョ畝绉�" + clearable + @keyup.enter.native="handleQuery" + style="width: 120px" + /> + </el-form-item> + <el-form-item label="鎷奸煶鐮�" prop="bzPinyin"> + <el-input + v-model="queryParams.bzPinyin" + placeholder="璇疯緭鍏ユ嫾闊崇爜" + clearable + @keyup.enter.native="handleQuery" + style="width: 130px" + /> + </el-form-item> + <el-form-item> + <el-button + type="primary" + icon="el-icon-search" + size="mini" + @click="handleQuery" + >鎼滅储</el-button + > + </el-form-item> --> + <!-- <el-form-item> + <h3 >{{ queryParams.proName || '鏆傛棤椤圭洰鍚嶇О' }}</h3> + </el-form-item> --> + <!-- <el-form-item> + <h3 style="margin-left: 160px">宸查�夐」鐩�</h3> + </el-form-item> --> + <!-- </el-form> --> + <h2 style="text-align: center;margin-top: -30px;">{{ queryParams.proName || '鏆傛棤椤圭洰鍚嶇О' }}</h2> + <div style="display: flex; width: 100%"> + <div style="width: 50%; margin-right: 40px"> + <el-table + :data="dataList" + ref="multipleTable" + v-loading="loading" + @selection-change="handleSelectionChange" + border + height="420px" + > + <el-table-column type="selection" width="40" align="center" /> + <el-table-column + label="搴忓彿" + type="index" + align="center" + width="50px" + /> + <!-- <el-table-column label="瑙勫垯" align="center" prop="ruleStr" /> --> + <el-table-column label="妫�鏌ユ墍瑙�" align="center" prop="yxbx" /> + <el-table-column label="妫�鏌ョ粨璁�" align="center" prop="ruleStr" /> </el-table> - <h3>宸查�夐」鐩�</h3> - <el-form :model="form" ref="queryForm" size="small" :inline="true" label-width="68px"> - <el-form-item> - <el-input type="textarea" v-model="form.desc" style="width: 560px"></el-input> - </el-form-item> - </el-form> - <span slot="footer" class="dialog-footer"> - <el-button @click="open = false">鍙� 娑�</el-button> - <el-button type="primary" @click="handleOk">纭� 瀹�</el-button> - </span> - </el-dialog> - - </div> -</template> + <div class="pag"> + <div class="pag1" style="margin-left: 630px"> + <pagination + small + v-show="total > 0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + </div> + </div> + </div> -<script> -import { - getlist, getlistByRuleStr -} from "@/api/doctor/check"; -export default { - name: 'Public', - + <div style="width: 100%; height: 600px"> + <!-- <h3 style="margin-top: -30px;">宸查�夐」鐩�</h3> --> + <el-form + :model="form" + ref="queryForm" + size="small" + label-width="68px" + :inline="true" + > + <!-- :inline="true" --> + <!-- <el-form-item> + <el-input + type="textarea" + v-model="form.desc" + style="width: 560px" + ></el-input> + </el-form-item> --> + <el-form-item label="妫�鏌ユ墍瑙�" prop="jcsj"> + <el-input + v-model="form.jcsj" + clearable + type="textarea" + :autosize="{ minRows: 8 }" + style="width: 380px" + /> + </el-form-item> + <el-form-item label="妫�鏌ョ粨璁�" prop="conclusion"> + <el-input + v-model="form.desc" + clearable + type="textarea" + :autosize="{ minRows: 8 }" + style="width: 380px" + /> + </el-form-item> + </el-form> + </div> + </div> + + <span slot="footer" class="dialog-footer" style="margin-top: -120px"> + <el-button @click="open = false">鍙� 娑�</el-button> + <el-button type="primary" @click="handleOk">纭� 瀹�</el-button> + </span> + </el-dialog> + </div> + </template> + + <script> + import { getlist, getlistByRuleStr } from "@/api/doctor/check"; + import { getYxJcXxJg } from "@/api/picture/picture"; + export default { + name: "Public", props: { - row: { - type: Object, - } - + checkStatus: { + type: String, + default: "0", + validator: (value) => ["0", "1"].includes(value), + }, + proResult: { + type: String, + default: "", + }, + conclusion: { + type: String, + default: "", + }, + projectList: { + type: Array, + default: () => [], + }, }, data() { - return { - open: false, - // 寮瑰嚭灞傛爣棰� - title: "", - dataList: [], - // 閬僵灞� - loading: false, - form: { - desc: "" - }, - queryParams: { - bingzhong: "", - bzPinyin: "", - }, - list: [], - fList: {} - }; + return { + open: false, + // 寮瑰嚭灞傛爣棰� + title: "", + yxbx: "", + proName:'', + // lastDesc: "", + total: 0, + dataList: [], + // 閬僵灞� + loading: false, + form: { + desc: "", + jcsj: "", + }, + queryParams: { + bingzhong: "", + bzPinyin: "", + proId:"", + // proName:"", + pageNum: 1, + pageSize: 10, + }, + list: [], + fList: {}, + selectedItems: [], + searchDebounce: null, + }; }, watch: { - 'row'(val, newVla) { - // console.log(val,newVla) - this.fList = val - // if (this.fList) { - // this.getList() - // } + checkStatus(newValue) { + if (newValue === "1") { + this.updateData(this.proResult, this.conclusion); } - }, - mounted() { - - }, - - created() { - - }, - methods: { - getList(row,date) { - if (row.proId) { - let fList = row - // if (this.fList.proResult == "") { - let data = { - proId: fList.proId, - // ruleStr: fList.proResult, - } - getlist(data).then(res => { - this.dataList = res.rows - this.$nextTick(() => { - this.dataList.forEach(item => { - this.fList.rulesList.forEach(item1 => { - if (item.aid == item1.aid) { - this.$refs.multipleTable.toggleRowSelection(item, true); - } - }) - }) - }) - - }) - // }else{ - // let data = { - // proId: this.fList.proId, - // bingzhong: this.queryParams.bingzhong, - // ruleStr: this.fList.proResult, - // } - // getlistByRuleStr(data).then(res => { - // this.dataList = res.rows - // this.$nextTick(() => { - // this.dataList.forEach(item => { - // this.fList.rulesList.forEach(item1 => { - // if (item.aid == item1.aid) { - // this.$refs.multipleTable.toggleRowSelection(item, true); - // } - // }) - // }) - // }) - - // }) - // } - }else{ - let data = { - proId: row, - } - getlist(data).then(res => { - this.dataList = res.rows - // this.$nextTick(() => { - // this.dataList.forEach(item => { - // this.fList.rulesList.forEach(item1 => { - // if (item.aid == item1.aid) { - // this.$refs.multipleTable.toggleRowSelection(item, true); - // } - // }) - // }) - // }) - - }) - } - - + }, + projectList: { + immediate: true, + deep: true, + handler(newVal) { + console.log("鏀跺埌鐨勯」鐩暟鎹�:", newVal); + // 浣犲彲浠ュ湪杩欓噷澶勭悊鏁版嵁锛屾瘮濡備繚瀛樺埌 data 鎴栧仛閫昏緫鍒ゆ柇 + if (newVal && newVal.length > 0) { + const firstProject = newVal[0]; // 浣犱篃鍙互閬嶅巻鎵�鏈夐」鐩紝鐪嬩綘涓氬姟闇�姹� + this.queryParams.proId = firstProject.proId; // 鍋囪椤圭洰涓彨 id + // this.queryParams.proName = firstProject.proName; + this.proName = firstProject.proName + } }, - handleQuery() { - let data = { - proId: this.fList.proId, - bingzhong: this.queryParams.bingzhong, - bzPinyin: this.queryParams.bzPinyin, - } - getlist(data).then(res => { - this.dataList = res.rows - this.$nextTick(() => { - this.dataList.forEach(item => { - this.fList.rulesList.forEach(item1 => { - if (item.aid == item1.aid) { - this.$refs.multipleTable.toggleRowSelection(item, true); - } - }) - }) - }) - - }) - }, - handleSelectionChange(selection) { - this.list = [] - this.list = selection - this.form.desc = "" - this.list.forEach(element => { - if( element.bingzhong){ -this.form.desc += element.bingzhong + "," - }else{ - this.form.desc += element.ruleStr + "," - } - }); - }, - handleOk() { - this.open = false - if (this.form.desc) { - this.$emit('add', this.form.desc, this.list); - } - this.form.desc = "" - } - } -} -</script> + }, + }, + mounted() {}, -<style scoped></style> - \ No newline at end of file + created() {}, + methods: { + async getList() { + try { + this.loading = true; // 娣诲姞鍔犺浇鐘舵�� + + const res = await getlist(this.queryParams); + this.dataList = res.rows; + this.total = res.total; + + // 濡傛灉闇�瑕侀�変腑鎿嶄綔锛屽皢鍏跺皝瑁呬负鐙珛鏂规硶 + await this.handleAutoSelection(); + } catch (error) { + console.error("鑾峰彇鏁版嵁澶辫触:", error); + this.$message.error("鑾峰彇鏁版嵁澶辫触"); + } finally { + this.loading = false; + } + }, + + // 灏佽閫変腑閫昏緫 + async handleAutoSelection() { + if (!this.fList?.rulesList?.length) return; + + await this.$nextTick(); + this.dataList.forEach((item) => { + const shouldSelect = this.fList.rulesList.some( + (rule) => rule.aid === item.aid + ); + if (shouldSelect) { + this.$refs.multipleTable?.toggleRowSelection(item, true); + } + }); + }, + + handleQuery() { + if (this.searchDebounce) clearTimeout(this.searchDebounce); + + this.searchDebounce = setTimeout(() => { + this.queryParams.pageNum = 1; // 閲嶇疆椤电爜 + this.getList(); + }, 300); + }, + + updateData(proResult, conclusion) { + if (this.checkStatus === "1") { + this.form.jcsj = proResult; // 鏇存柊妫�鏌ユ墍瑙� + this.form.desc = conclusion; // 鏇存柊妫�鏌ョ粨璁� + // console.log(proResult, conclusion); + } + }, + + handleSelectionChange(selection) { + this.list = selection; + this.updateFormContent(selection); + }, + + updateFormContent(selection) { + if (!selection.length) return; + + // 濡傛灉澶勪簬妫�鏌ョ姸鎬侊紝浣跨敤浼犲叆鐨勫�� + if (this.checkStatus === "1") { + this.updateData(this.proResult, this.conclusion); + return; + } + + // 閲嶇疆琛ㄥ崟鍐呭 + this.form.desc = ""; + this.form.jcsj = ""; + + // 浣跨敤map鍜宩oin鏇夸唬forEach鍜屽瓧绗︿覆鎷兼帴 + this.form.desc = selection + .map((item) => item.bingzhong || item.ruleStr) + .filter(Boolean) + .join(","); + + this.form.jcsj = selection + .map((item) => item.yxbx) + .filter(Boolean) + .join(","); + }, + + handleOk() { + if (!this.form.desc && !this.form.jcsj) { + this.$message.warning("璇烽�夋嫨鏁版嵁"); + return; + } + + try { + this.$emit("add", this.form.desc, this.form.jcsj); + this.resetForm(); + this.open = false; + } catch (error) { + console.error("澶勭悊鏁版嵁澶辫触:", error); + this.$message.error("鎿嶄綔澶辫触"); + } + }, + + resetForm() { + this.form.desc = ""; + this.form.jcsj = ""; + this.list = []; + if (this.$refs.multipleTable) { + this.$refs.multipleTable.clearSelection(); + } + }, + }, + computed: { + isCheckMode() { + return this.checkStatus === "1"; + }, + + hasSelectedItems() { + return this.list.length > 0; + }, + }, + }; + </script> + + <style scoped> + .el-dialog__body { + padding: 10px 20px; + } + ::v-deep .el-dialog__footer { + padding: 0 !important; + padding-bottom: 40px !important; + } + </style> + \ No newline at end of file diff --git a/src/views/doctor/check/index.vue b/src/views/doctor/check/index.vue index 66b18d9..ce79bbc 100644 --- a/src/views/doctor/check/index.vue +++ b/src/views/doctor/check/index.vue @@ -1839,6 +1839,7 @@ }, determine() { + this.tjOrderDetail = []; let tjNumber = this.tableAll.tjNumber; this.userList.forEach((item) => { if (this.doctorName == item.nickName) this.doctorName = item.userId; diff --git a/src/views/picture/picture/index.vue b/src/views/picture/picture/index.vue index db77ebd..a15ab68 100644 --- a/src/views/picture/picture/index.vue +++ b/src/views/picture/picture/index.vue @@ -8,10 +8,10 @@ v-show="showSearch" label-width="68px" > - <el-form-item label="浣撴鍙�" prop="tjNum"> + <el-form-item label="浣撴鍙�" prop="tjNumber"> <el-input ref="inputName" - v-model="queryParams.tjNum" + v-model="queryParams.tjNumber" placeholder="璇疯緭鍏ヤ綋妫�鍙�" clearable @keyup.enter.native="handleQuery" @@ -28,12 +28,62 @@ style="width: 110px" /> </el-form-item> + <el-form-item + label="鍗曚綅鍚嶇О" + prop="tjCompName" + style="margin-left: 20px" + > + <el-select + :remote-method="getRemoteData" + v-model="queryParams.tjCompName" + value-key="drugManufacturerId" + style="width: 180px" + remote + filterable + placeholder="璇烽�夋嫨鍗曚綅鍚嶇О" + clearable + @change="searchSelect" + > + <el-option + v-for="dict in CompanyList" + :key="dict.drugManufacturerId" + :label="dict.cnName" + :value="dict" + /> + </el-select> + </el-form-item> + <el-form-item label="椤圭洰" prop="tcm"> + <el-input + v-model="queryParams.tcm" + placeholder="璇疯緭鍏ヤ綋妫�鍙�" + clearable + @keyup.enter.native="handleQuery" + style="width: 170px" + /> + </el-form-item> + <el-form-item label="鐧昏鏃堕棿" prop="createTimeList"> + <el-date-picker + v-model="createTimeList" + type="datetimerange" + align="right" + :picker-options="pickerOptions" + style="width: 310px" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + :default-time="['00:00:00', '23:00:00']" + format="yyyy-MM-dd HH:mm" + value-format="yyyy-MM-dd HH:mm" + @change="dateChangebirthday1" + > + </el-date-picker> + </el-form-item> <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" - @click="handleQuery" style="margin-right:15px;" + @click="handleQuery" + style="margin-right: 15px" >鎼滅储</el-button > <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" @@ -42,6 +92,15 @@ </el-form-item> </el-form> + <el-radio-group + v-model="checkStatus" + @input="radioChange" + style="margin: 10px 15px" + > + <el-radio-button label="0">鏈</el-radio-button> + <el-radio-button label="1">宸叉</el-radio-button> + </el-radio-group> + <div style="width: 100%; margin-left: 10px; display: flex"> <div style="width: 36%; margin-right: 30px"> <el-table @@ -49,70 +108,84 @@ v-loading="loading" ref="tb" :data="pictureList" - @selection-change="handleSelectionChange" + highlight-current-row + :row-class-name="tableRowClassName" + @current-change="handleCurrentChange" border - height="630px" + height="520px" > - <el-table-column type="selection" width="40" align="center" /> + <!-- @selection-change="handleSelectionChange" --> <el-table-column label="浣撴鍙�" align="center" - prop="customer.tjNumber" - width="160px" + prop="tjNumber" + min-width="160" /> <el-table-column label="濮撳悕" align="center" - prop="customer.cusName" - width="90px" + prop="cusName" + min-width="80" /> - <!-- <el-table-column label="韬唤璇�" align="center" prop="customer.cusIdcard" width="170px" /> --> <el-table-column label="鎬у埆" align="center" - prop="customer.cusSex" - width="60px" + prop="cusSex" + min-width="50" > - <!-- <template slot-scope="scope"> - {{ scope.row.customer.cusSex === 0 ? "鐢�" : "濂�" }} - </template> --> - <template slot-scope="scope"> + <template slot-scope="scope"> <span v-if="scope.row.cusSex == '0'">鐢�</span> <span v-if="scope.row.cusSex == '1'">濂�</span> <span v-if="scope.row.cusSex == '2'">鏈煡</span> + <span v-if="scope.row.cusSex == '9'">鏈鏄庢�у埆</span> </template> + <!-- <template slot-scope="scope"> --> + <!-- {{scope.row.customer.cusSex}} --> + <!-- {{ scope.row.cusSex === 0 ? "鐢�" : "濂�" }} --> + <!-- <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.cusSex " /> --> + <!-- </template> --> </el-table-column> - <!-- <el-table-column label="鐢熸棩" align="center" prop="customer.cusBrithday" width="110px" /> --> <el-table-column label="鎵嬫満鍙�" align="center" - prop="customer.cusPhone" - width="110px" + prop="cusPhone" + min-width="100" /> <el-table-column - label="濠氬Щ" + label="濂楅鍚�" align="center" - prop="cusMarryStatus" - width="70px" - > - <template slot-scope="scope"> - <dict-tag - :options="dict.type.dict_user_marry" - :value="scope.row.customer.cusMarryStatus" - /> - </template> - </el-table-column> + prop="tcm" + min-width="100" + /> <el-table-column - label="姘戞棌" + label="鐧昏鏃堕棿" align="center" - prop="cusNational" - width="70px" + prop="tjTime" + min-width="120" + /> + <el-table-column + label="瀹℃牳鐘舵��" + align="center" + prop="confirmStatus" + min-width="80" > <template slot-scope="scope"> - <dict-tag - :options="dict.type.dict_user_national" - :value="scope.row.customer.cusNational" - /> + <span + :style="{ + color: + scope.row.confirmStatus == '301' ? '#0CB618' : '#EA1B29', + }" + v-if="scope.row.confirmStatus == '301'" + >宸查�氳繃</span + > + <span + :style="{ + color: + scope.row.confirmStatus == '301' ? '#0CB618' : '#EA1B29', + }" + v-if="scope.row.confirmStatus == '299'" + >宸查┏鍥�</span + > </template> </el-table-column> </el-table> @@ -123,24 +196,57 @@ v-loading="loading" ref="mu" :data="tableList" + :row-class-name="tableRowClassName" + highlight-current-row @selection-change="handleChange" border + style="height: 400px" > - <el-table-column type="selection" width="40" align="center" /> + <el-table-column type="selection" width="50" align="center" /> + <el-table-column + label="绉戝" + align="center" + prop="deptName" + min-width="100" + :show-overflow-tooltip="true" + /> + <el-table-column + label="椤圭洰" + align="center" + prop="proName" + min-width="150" + :show-overflow-tooltip="true" + /> + <el-table-column + label="鐘舵��" + align="center" + prop="type" + :show-overflow-tooltip="true" + min-width="100" + > + <template slot-scope="scope"> + <span + v-if="scope.row.type == '0'" + :style="type == 0 ? { color: 'red' } : { color: '#409EFF' }" + > + {{ type == 0 ? "鏈� 妫�" : "鍦� 妫�" }} + </span> + <span v-if="scope.row.type == '1'">宸插畬鎴�</span> + <span v-if="scope.row.type == '2'">寮冩</span> + <span v-if="scope.row.type == '3'">寤舵湡</span> + </template> + </el-table-column> + <el-table-column + label="妫�鏌ユ椂闂�" + align="center" + prop="bcupdateTime" + min-width="160" + /> + <!-- <el-table-column type="selection" width="40" align="center" /> <el-table-column label="鏀惰垂椤圭洰" align="center" prop="proName" /> <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" /> - <el-table-column label="椤圭洰缁撴灉" align="center" prop="proResult" /> - <!-- <el-table-column label="缁撹" align="center" prop="conclusion" /> --> + <el-table-column label="椤圭洰缁撴灉" align="center" prop="proResult" /> --> </el-table> - <div style="height: 300px; margin-top: 10px"> - <el-image - v-loading="loading" - style="height: 300px; width: 100%" - :src="imgsrc + tjNumber + '.png'" - :preview-src-list="[imgsrc + tjNumber + '.png']" - ></el-image> - </div> - <div style="margin-top: 10px"> <el-form :model="form" @@ -150,7 +256,12 @@ label-width="68px" > <el-form-item label="妫�鏌ユ墍瑙�" prop="proResult"> - <el-input v-model="form.proResult" clearable type="textarea"/> + <el-input + v-model="form.proResult" + clearable + type="textarea" + @focus="submiepilog" + /> </el-form-item> <el-form-item label="妫�鏌ョ粨璁�" prop="conclusion"> <el-input @@ -161,6 +272,13 @@ /> </el-form-item> <el-form-item> + <el-button + type="primary" + icon="el-icon-picture" + size="mini" + @click="tupian" + >鍥剧墖</el-button + > <el-button type="primary" icon="el-icon-search" @@ -183,22 +301,54 @@ </div> </div> - <div style="margin-right: 70%"> + <el-dialog title="鎻愮ず" :visible.sync="dialogVisible" width="60%"> + <!-- :before-close="handleClose" --> + <img src="../../../assets/logo/logo.png" alt="" /> + </el-dialog> + + <div style="margin-right: 58%"> <pagination v-show="total > 0" :total="total" - :page.sync="queryParams.pageNum" + :page.sync="queryParams.page" :limit.sync="queryParams.pageSize" - @pagination="getList" + @pagination="submitForm" /> </div> - <Public ref="aaa" @add="handleChanges" /> + <Public + ref="aaa" + :check-status="checkStatus" + :pro-result="form.proResult" + :conclusion="form.conclusion" + @add="handleChanges" + :project-list="projectList" + /> + <!-- :last-desc="form.conclusion" --> </div> </template> <script> -import { getListPicture, updatePicture } from "@/api/picture/picture"; +import { + getListPicture, + updatePicture, + getYxJcList, + getYxJcXx, + addYxJcXx, + getYxJcXxJg, +} from "@/api/picture/picture"; +import { getCompany, queryCompany } from "@/api/team/tuanti"; +import { + getCsList, + confirmOrder, + cSWebGetPro, + dataSynchronization, + qijian, + yijian, + resultList, + typeOne, + huifu, +} from "@/api/doctor/examination"; import Public from "@/components/public"; export default { @@ -217,18 +367,24 @@ r_img: {}, topShow: false, rShow: false, + type: null, + checkStatus: "0", // 閬僵灞� loading: true, result: true, epilog: false, + selectedRow: null, // 閫変腑鏁扮粍 ids: [], + CheckBox: {}, // 闈炲崟涓鐢� single: true, // 闈炲涓鐢� multiple: true, // 鏄剧ず鎼滅储鏉′欢 showSearch: true, + selectedTjNumber: "", + createTimeList: "", // 鎬绘潯鏁� total: 0, activeName: "first", @@ -239,22 +395,34 @@ // 浣撴蹇冪數鍥剧鐞嗚〃鏍兼暟鎹� pictureList: [], tableList: [], + CompanyList: [], + projectList: [], // 寮瑰嚭灞傛爣棰� title: "", // 鏄惁鏄剧ず寮瑰嚭灞� open: false, + dialogVisible: false, + selectList: [], // 鏌ヨ鍙傛暟 queryParams: { - pageNum: 1, + page: 1, pageSize: 10, - tjNum: null, - cusId: null, + tjNumber: null, + compId: null, name: null, - xdt: null, - proId: null, - proName: null, - proResult: null, - conclusion: null, + beginTime: null, + endTime: null, + tcm: "", + tjCompName: "", + checkStatus: null, + // tjNum: null, + // cusId: null, + // name: null, + // xdt: null, + // proId: null, + // proName: null, + // proResult: null, + // conclusion: null, }, dataobj: {}, // 琛ㄥ崟鍙傛暟 @@ -264,6 +432,37 @@ }, // 琛ㄥ崟鏍¢獙 rules: {}, + pickerOptions: { + shortcuts: [ + { + text: "鏈�杩戜竴鍛�", + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit("pick", [start, end]); + }, + }, + { + text: "鏈�杩戜竴涓湀", + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); + picker.$emit("pick", [start, end]); + }, + }, + { + text: "鏈�杩戜笁涓湀", + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); + picker.$emit("pick", [start, end]); + }, + }, + ], + }, }; }, created() { @@ -273,6 +472,7 @@ this.$nextTick(() => { this.$refs.inputName.focus(); }); + this.radioChange(this.checkStatus); }, methods: { // 榧犳爣杩涘叆鍘熷浘绌洪棿鍑芥暟 @@ -306,27 +506,108 @@ this.topShow = false; this.rShow = false; }, + /** 鏌ヨ浣撴蹇冪數鍥剧鐞嗗垪琛� */ getList() { this.loading = true; - getListPicture(this.queryParams).then((response) => { - if (response.data.list) { - this.pictureList = response.data.list; - } else { - this.$message.warning("鏌ユ棤姝や汉"); - } - - if (this.pictureList.length != 0) { - this.$nextTick(() => { - this.$refs.tb.toggleRowSelection(this.pictureList[0], true); - }); - } else { - this.$refs.tb.clearSelection(); - } - this.total = response.data.total; + this.queryParams.checkStatus = this.checkStatus; + this.queryParams.compId = this.CheckBox.drugManufacturerId; + if (this.createTimeList) { + this.queryParams.beginTime = this.createTimeList[0]; + this.queryParams.endTime = this.createTimeList[1]; + } else if (this.createTimeList == null) { + this.queryParams.beginTime = null; + this.queryParams.endTime = null; + } + + getCompany(this.queryParams).then((response) => { + this.CompanyList = response.data; this.loading = false; }); }, + + // / 澶勭悊榛樿閫変腑褰撳墠鏃ユ湡 + getNowTime() { + var curDate = new Date().getTime(); + var dayNum = 7 * 24 * 3600 * 1000; + var threeDays = curDate - dayNum; + var sDay = this.getLocalTime(threeDays); + var end = this.getLocalTime(curDate); + this.createTimeList = [sDay, end]; + }, + add0(m) { + return m < 10 ? "0" + m : m; + }, + getLocalTime(nS) { + var time = new Date(nS); + var y = time.getFullYear(); + var m = time.getMonth() + 1; + var d = time.getDate(); + var h = time.getHours(); + var mm = time.getMinutes(); + return ( + y + + "-" + + this.add0(m) + + "-" + + this.add0(d) + + " " + + this.add0(h) + + ":" + + this.add0(mm) + ); + }, + + dateChangebirthday1(val) { + this.startTime = val; + }, + + handleRowClick(row, column, event) { + // console.log(row, 2323); + this.name = row.proName; + // console.log(this.name, 99999); + }, + // 浣撴鍏徃鎷奸煶鎼滅储 + getRemoteData(query) { + if (query) { + let compName = query; + queryCompany(compName).then((response) => { + this.CompanyList = response.data; + }); + } + }, + radioChange(value) { + this.loading = true; + this.queryParams.checkStatus = value; + getYxJcList(this.queryParams).then((res) => { + if (res.code == 200) { + this.loading = false; + if (res.data) { + this.pictureList = res.data.customers; + this.total = res.data.total; + if (this.pictureList.length != 0) { + this.$nextTick(() => { + this.$refs.tb.toggleRowSelection(this.pictureList[0], true); + }); + } else { + this.$refs.tb.clearSelection(); + } + this.total = res.data.total; + } else { + this.pictureList = []; + } + } + }); + /* const tjNumber = this.pictureList.tjNumber; + + + getYxJcXx(tjNumber).then((res) => { + console.log(res, 222); + this.tableList = res.data; + this.loading = false; + }); */ + }, + // 鍙栨秷鎸夐挳 cancel() { this.open = false; @@ -340,24 +621,116 @@ }; this.resetForm("form"); }, - hb(){ - console.log(this.queryParams.tjNum); - if (this.queryParams.tjNum != null) { - this.handleQuery(); + hb() { + // console.log(this.queryParams.tjNum); + if (this.queryParams.tjNumber != null) { + // this.handleQuery(); + this.submitForm(); } + }, + submitForm() { + this.loading = true; + this.queryParams.checkStatus = this.checkStatus; + this.queryParams.compId = this.CheckBox.drugManufacturerId; + if (this.createTimeList) { + this.queryParams.beginTime = this.createTimeList[0]; + this.queryParams.endTime = this.createTimeList[1]; + } else if (this.createTimeList == null) { + this.queryParams.beginTime = null; + this.queryParams.endTime = null; + } + + // 椤甸潰鏁版嵁 + getYxJcList(this.queryParams).then((res) => { + if (res.code == 200) { + this.loading = false; + if (res.data) { + this.pictureList = res.data.customers; + this.total = res.data.total; + if (this.pictureList.length != 0) { + this.$nextTick(() => { + this.$refs.tb.toggleRowSelection(this.pictureList[0], true); + }); + } else { + this.$refs.tb.clearSelection(); + } + this.total = res.data.total; + } else { + this.pictureList = []; + } + } + }); + }, + + // 閫夋鏁版嵁 + searchSelect(val) { + this.CheckBox = val; + // console.log(this.CheckBox, 9999); }, /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { this.queryParams.pageNum = 1; - this.getList(); + this.submitForm(); }, /** 閲嶇疆鎸夐挳鎿嶄綔 */ resetQuery() { - this.resetForm("queryForm"); + this.createTimeList = []; + (this.queryParams = { + pageNum: 1, + pageSize: 10, + tjNumber: null, + compId: null, + name: null, + beginTime: null, + checkStatus: null, + endTime: null, + tjCompName: "", + tcm: "", + }), + (this.CheckBox.drugManufacturerId = ""); + this.tableList = []; + // this.resetForm("queryForm"); this.handleQuery(); + this.loading = true; }, + + tableRowClassName({ row, rowIndex }) { + for (let i = 0; i < this.selectList.length; i++) { + if (row === this.selectList[i]) { + return "warning-row"; + } + } + }, + + handleCurrentChange(val) { + this.selectedRow = val; + if (!val || !val.tjNumber) { + console.warn("tjNumber 涓虹┖锛屼笉璋冪敤鎺ュ彛"); + this.tableList = []; + return; + } + + let tjNumber = val.tjNumber; + this.selectedTjNumber = val.tjNumber; + this.loading = true; + + getYxJcXx(tjNumber).then((res) => { + console.log(res, 222); + this.tableList = res.data; + this.loading = false; + this.$nextTick(() => { + if (this.tableList.length > 0) { + const firstRow = this.tableList[0]; + this.$refs.mu.toggleRowSelection(firstRow, true); + this.handleChange([firstRow]); + } + }); + }); + }, + + // 澶氶�夋閫変腑鏁版嵁 - handleSelectionChange(selection) { + /* handleSelectionChange(selection) { this.imgsrc = selection[0].picturePath; this.tjNumber = selection[0].customer.tjNumber; this.ids = selection.map((item) => item.id); @@ -384,26 +757,94 @@ } this.single = selection.length !== 1; this.multiple = !selection.length; - }, + }, */ + handleSelectionChange(selection) { + this.imgsrc = selection[0].picturePath; + this.tjNumber = selection[0].customer.tjNumber; + this.ids = selection.map((item) => item.id); - handleChange(selection) { + if (selection.length > 1) { + let del_row = selection.shift(); + this.$refs.tb.toggleRowSelection(del_row, false); + } + + this.single = selection.length !== 1; + this.multiple = !selection.length; + selection.forEach((element) => { - this.dataobj = element; + this.tableList = element.list; + + if (this.tableList.length !== 0) { + // 鉁� 鎻愬墠璧嬪�� selectedRow锛岄伩鍏� handleChange 鏃舵湭璧嬪�� + this.selectedRow = this.tableList[0]; + this.form.proResult = this.tableList[0].proResult; + this.form.conclusion = this.tableList[0].conclusion; + + this.$nextTick(() => { + this.$refs.mu.toggleRowSelection(this.tableList[0], true); + }); + } else { + this.selectedRow = null; + this.$refs.mu.clearSelection(); + } }); }, + handleChange(selection) { + this.projectList = selection.map((item) => ({ + proId: item.proId, + proName: item.proName, + })); + if (selection && selection.length > 0) { + const proId = selection[0].proId; - handleChanges(value) { + // 鉁� 纭繚 selectedRow 瀛樺湪涓旀湁 tjNumber + if (this.selectedRow && this.selectedRow.tjNumber) { + const tjNumber = this.selectedRow.tjNumber; + getYxJcXxJg(tjNumber, proId).then((res) => { + this.form.proResult = res.data.jcsj; + this.form.conclusion = res.data.jcjl; + this.$refs.aaa.updateData(res.data.jcsj, res.data.jcjl); + }); + } else { + console.warn("selectedRow 鏈噯澶囧ソ锛岃烦杩囨帴鍙h皟鐢�"); + } + + // 鉁� 鍚屾椂鏇存柊 selectedRow + this.selectedRow = selection[0]; + } + }, + + /* handleChange(selection) { + // console.log(selection, 123); + if (selection && selection.length > 0) { + const proId = selection[0].proId; + const tjNumber = this.selectedRow.tjNumber; + this.selectedRow = selection[0]; + getYxJcXxJg(tjNumber, proId).then((res) => { + console.log(res, 333); + this.form.proResult = res.data.jcsj; + this.form.conclusion = res.data.jcjl; + }); + } + }, */ + + handleChanges(value, yxbx) { this.form.conclusion = value; + this.form.proResult = yxbx; }, submiepilog() { this.$refs.aaa.open = true; let proId = "1633660948860522585"; + // let proId = null this.$refs.aaa.getList(proId); + }, + tupian() { + this.dialogVisible = true; }, // 纭畾鎸夐挳 submito() { - if (this.dataobj) { + /* if (this.dataobj) { if (this.form.proResult) { this.dataobj.proResult = this.form.proResult; } @@ -418,7 +859,38 @@ }); } else { this.$modal.msgSuccess("閫夋嫨淇敼椤圭洰"); + } */ + if (!this.selectedRow || !this.selectedRow.proId) { + console.error("鏈�変腑琛屾垨缂哄皯 proId"); + return; } + console.log(this.selectedRow.proId, 96); + const proId = this.selectedRow.proId; + const jcsj = this.form.proResult; // 鑾峰彇妫�鏌ユ墍瑙� + const jcjl = this.form.conclusion; // 鑾峰彇妫�鏌ョ粨璁� + + // 纭繚 jcsj 鍜� jcjl 瀛樺湪 + if (!jcsj || !jcjl) { + console.error("妫�鏌ユ墍瑙佹垨妫�鏌ョ粨璁轰笉鑳戒负绌�"); + return; + } + + addYxJcXx({ + proId: proId, + tjNumber: this.selectedTjNumber, + jcsj: jcsj, // 浼犻�掓鏌ユ墍瑙� + jcjl: jcjl, // 浼犻�掓鏌ョ粨璁� + }) + .then((response) => { + console.log("鎻愪氦鎴愬姛", response); + this.submitForm(); + + this.form.proResult = ""; + this.form.conclusion = ""; + }) + .catch((error) => { + console.error("鎻愪氦澶辫触", error); + }); }, //鍒犻櫎鎸夐挳 -- Gitblit v1.8.0