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