From 1397987a02dd4896bb2286f8eb1d787ee5663194 Mon Sep 17 00:00:00 2001
From: qinxianzhangyao <11053546+qinxianzhangyao@user.noreply.gitee.com>
Date: 星期五, 17 十一月 2023 17:10:42 +0800
Subject: [PATCH] qxtj

---
 src/views/doctor/check/index.vue               |  309 +---
 src/views/standard/tijiancom/index.vue         |  150 ++
 vue.config.js                                  |    4 
 src/views/jmreport/tijianrenshu/index.vue      |   43 
 src/assets/styles/element-ui.scss              |    2 
 src/views/jmreport/tuanduitiji/index.vue       |   43 
 src/views/standard/tijianxinxichakan/index.vue |  618 +++++++++
 src/views/paiban/gerenpaiban/index.vue         |  280 ++++
 src/views/jmreport/richengtongji/index.vue     |   43 
 src/views/paiban/pilpaiban/index.vue           |  267 ++++
 src/views/hosp/restore/index.vue               |  601 +++++++++
 src/views/standard/renshunum/index.vue         |  134 ++
 src/views/system/notice/index.vue              |    7 
 src/views/jmreport/yingxingtongji/index.vue    |   43 
 src/views/paiban/beiwanglu/index.vue           |  245 +++
 src/views/doctor/bgsh/index.vue                |  764 +++++++++++
 src/views/standard/tijianxinxi/index.vue       |  388 +++++
 17 files changed, 3,704 insertions(+), 237 deletions(-)

diff --git a/src/assets/styles/element-ui.scss b/src/assets/styles/element-ui.scss
index 172d9c4..75da3e8 100644
--- a/src/assets/styles/element-ui.scss
+++ b/src/assets/styles/element-ui.scss
@@ -136,7 +136,7 @@
   position: absolute;
   top: 0;
   bottom: 0;
-  width: 65px;
+  width: 78px;
   border-right: 1px solid #e4e4e4;
   -webkit-box-sizing: border-box;
   box-sizing: border-box;
diff --git a/src/views/doctor/bgsh/index.vue b/src/views/doctor/bgsh/index.vue
new file mode 100644
index 0000000..9534540
--- /dev/null
+++ b/src/views/doctor/bgsh/index.vue
@@ -0,0 +1,764 @@
+<template>
+  <div>
+    <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px">
+      <el-form-item label="濮撳悕" prop="name">
+        <el-input v-model="queryParams.name" style="width: 120px" placeholder="璇疯緭鍏ュ鍚�" clearable @keyup.enter.native="handleQuery"></el-input>
+      </el-form-item>
+      <el-form-item label="浣撴鍙�" prop="tjNumber">
+        <el-input ref="inputName" v-model="queryParams.tjNumber" style="width: 180px" placeholder="璇疯緭鍏ヤ綋妫�鍙�" clearable @keyup.enter.native="handleQuery"></el-input>
+      </el-form-item>
+      <el-form-item label="浣撴鏃堕棿" prop="tjTime">
+        <el-date-picker v-model="startTime" 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 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>
+        <el-button type="primary" size="mini" @click="submitForm">鎼滅储</el-button>
+        <el-button  size="mini" @click="resetQuery">閲嶇疆</el-button>
+      </el-form-item>
+    </el-form>
+
+
+    <el-row :gutter="10" class="mb8" style="margin-left:14px ;">
+      <el-col :span="1.5">
+        <el-button type="primary"
+          size="mini"
+          @click="radioChange"
+          v-hasPermi="['system:notice:add']"
+        >鏍告敹</el-button>
+      </el-col>
+    </el-row>
+
+    <template>
+      <el-table
+        v-loading="loading"
+        :data="checkList"
+        ref="table"
+        border
+        style="margin: 20px; width: 98%"
+      >
+      <el-table-column type="selection" width="40px" align="center" fixed="left" />
+        <!-- <template slot="empty">鏁版嵁姝e湪鍔犺浇涓�</template> -->
+        <el-table-column
+          label="浣撴鍙�"
+          align="center"
+          prop="tjNumber"
+          :show-overflow-tooltip="true"
+          width="160px"
+          fixed="left"
+        />
+        <el-table-column
+          label="濮撳悕"
+          align="center"
+          prop="cusName"
+          :show-overflow-tooltip="true"
+          width="100px"
+          fixed="left"
+        />
+        
+        <el-table-column
+          label="鎬у埆"
+          align="center"
+          prop="cusSex"
+          :show-overflow-tooltip="true"
+          width="55px"
+        >
+          <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>
+        </el-table-column>
+        <el-table-column
+          label="鍑虹敓鏃ユ湡"
+          align="center"
+          prop="cusBrithday"
+          :show-overflow-tooltip="true"
+          width="110px"
+        />
+        <el-table-column
+          label="鐢佃瘽"
+          align="center"
+          prop="cusPhone"
+          :show-overflow-tooltip="true"
+          width="130px"
+        />
+        
+        <el-table-column
+          label="浣撴鏃堕棿"
+          align="center"
+          prop="tjTime"
+          :show-overflow-tooltip="true"
+          width="110px"
+        />
+        <el-table-column
+          label="瀹屾垚鏃堕棿"
+          align="center"
+          prop="finishTime"
+          :show-overflow-tooltip="true"
+          width="160px"
+        />
+        <el-table-column
+          label="鐘舵��"
+          align="center"
+          prop="tjStatus"
+          :show-overflow-tooltip="true"
+          width="50px"
+        >
+          <template slot-scope="scope">
+            <span>{{ scope.row.tjStatus == "1" ? "宸叉" : "鏈" }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍗曚綅鍚嶇О"
+          align="center"
+          prop="tjCompName"
+          :show-overflow-tooltip="true"
+        />
+        
+  
+      </el-table>
+
+      <div class="pag">
+        <div class="pag1">
+          <pagination
+            v-show="total > 0"
+            :total="total"
+            :page.sync="queryParams.page"
+            :limit.sync="queryParams.pageSize"
+            @pagination="getList"
+          />
+        </div>
+      </div>
+    </template>
+  </div>
+</template>
+  
+
+<script>
+import {
+  getcheckList,
+  getTjdetailList,
+  getupdateCheckType,
+  getModifiedState,
+  getfiedState,
+  getState,
+  getforceIn,
+  gettoPdf,
+  getModified,
+} from "@/api/doctor/checkAll";
+import { getInfo } from "@/api/login";
+import { getCompany, queryCompany } from "@/api/team/tuanti";
+// import { getDeptAdvice } from "@/api/doctor/check";
+import { getPdf, revoke } from "@/api/hosp/order";
+import ViewPdf from "@/components/ViewPdf";
+
+export default {
+  components: {
+    ViewPdf,
+  },
+  name: "checkAll",
+  data() {
+    return {
+      remarks: "",
+      remark: "",
+      proIds: "",
+      xiaojie: "",
+      isdisabled: false,
+      dialogVisible: false,
+      src: "",
+      url: "",
+      userId: "",
+      flag: true,
+      bill: null,
+      numberList: [],
+      dialogVisible: false,
+      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]);
+            },
+          },
+        ],
+      },
+      // 椤甸潰鍏ㄩ儴鏁版嵁
+      checkList: [],
+      // 缁戝畾鍗曢�夋寜閽�
+      tjStatus: "1",
+      total: 0,
+      value2: [],
+      CompanyList: [],
+      CheckBox: {},
+      startTime: [],
+      textarea1: "",
+      loading: true,
+      // 褰撳墠鐢ㄦ埛閫変腑鐨勫��
+      selectLettercurrent: " ",
+      // 鎶藉眽鎵撳紑鏂瑰紡
+      drawer: false,
+      tableAll: {},
+      tjNumber: "",
+      // 鍏ㄩ儴灏忕粨
+      DeptadviceAll: [],
+      MsgId: "",
+      Deptobj: "",
+      // 鐐瑰嚮鍙傛暟
+      changedate: [],
+      status: {},
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        page: 1,
+        pageSize: 10,
+        tjNumber: "",
+        beginTime: null,
+        endTime: null,
+        compId: null,
+        name: null,
+        checkStatus:null,
+      },
+
+      // 鏌ヨ鍙傛暟
+      queryParam: {
+        pageNum: 1,
+        pageSize: 10,
+        company: undefined,
+        companyId: undefined,
+        pacId: undefined,
+        pacName: undefined,
+        jobNo: undefined,
+        name: undefined,
+        sex: undefined,
+        idCard: undefined,
+        age: undefined,
+        birthday: undefined,
+        position: undefined,
+        department: undefined,
+        departmentId: undefined,
+        phoe: undefined,
+        address: undefined,
+        marriage: undefined,
+        nation: undefined,
+        email: undefined,
+        tjCategory: undefined,
+        payType: undefined,
+      },
+    };
+  },
+
+  created() {
+    this.getNowTime();
+    this.getList();
+  },
+
+  mounted() {
+    this.$nextTick(() => {
+      this.$refs.inputName.focus();
+    });
+  },
+  methods: {
+    // / 澶勭悊榛樿閫変腑褰撳墠鏃ユ湡
+    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.startTime = [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)
+      );
+    },
+    getList() {
+      this.loading = true;
+      this.queryParams.compId = this.CheckBox.drugManufacturerId;
+      this.queryParams.checkStatus = this.tjStatus;
+      if (this.startTime) {
+        this.queryParams.beginTime = this.startTime[0];
+        this.queryParams.endTime = this.startTime[1];
+      } else {
+        this.queryParams.beginTime = null;
+        this.queryParams.endTime = null;
+      }
+
+      // 椤甸潰鏁版嵁
+      getcheckList(this.queryParams).then((response) => {
+        if (response.data) {
+          if (response.data.date) {
+            this.checkList = response.data.date;
+          } else {
+            this.checkList = response.data.customers;
+          }
+          this.loading = false;
+          this.total = response.data.total;
+        } else {
+          this.checkList = [];
+        }
+      }),
+        // 鑾峰彇鍗曚綅淇℃伅闆嗗悎
+        getCompany(this.queryParam).then((response) => {
+          this.CompanyList = response.data;
+          this.loading = false;
+        });
+    },
+
+    viewReport(row) {
+      const tjNumber = row.tjNumber;
+      const flag = true;
+      getPdf(tjNumber, flag).then((response) => {
+        if (response.size === 0) {
+          const loading = this.$loading({
+          lock: true,
+          text: 'Loading',
+          spinner: 'el-icon-loading',
+          background: 'rgba(0, 0, 0, 0.7)'
+        });
+        setTimeout(() => {
+          loading.close();
+        }, 3000);
+          this.$message.msgSuccess("鎶ュ憡姝e湪鐢熸垚锛岃涓ゅ垎閽熷悗棰勮锛�");
+          
+        } else {
+          this.dialogVisible = true;
+          
+          this.url = window.webkitURL.createObjectURL(response); //灏嗗悗绔繑鍥炵殑blob鏂囦欢璇诲彇鍑簎rl
+        }
+      });
+    },
+    // viewReport(row) {
+    //   const tjNumber = row.tjNumber;
+    //   const viewNum = "792997692059705344";
+    //   const params = { viewNum, tjNumber };
+    //   hasReportEnd(tjNumber).then((res) => {
+    //     if (res == 1) {
+    //       this.$tab.openPage("浣撴鎶ュ憡", "/report/viewReport", params);
+    //     } else {
+    //       this.$message.error("璇ョ敤鎴蜂綋妫�鏆傛湭瀹屾垚锛屾棤娉曟墦鍗颁綋妫�鎶ュ憡锛�");
+    //     }
+    //   });
+    // },
+    downLoadFileImg(row) {
+      const tjNumber = row.tjNumber;
+      const flag = true;
+      getPdf(tjNumber, flag).then((response) => {
+        this.url = window.webkitURL.createObjectURL(response); //灏嗗悗绔繑鍥炵殑blob鏂囦欢璇诲彇鍑簎rl
+      });
+    },
+
+    // 鍗曢�夋寜閽�
+    radioChange(value) {
+      this.loading = true;
+      this.queryParams.checkStatus = value;
+      getcheckList(this.queryParams).then((response) => {
+        if (response.data) {
+          this.checkList = response.data.customers;
+          this.total = response.data.total;
+        } else {
+          this.checkList = [];
+        }
+        this.loading = false;
+      });
+    },
+
+    // 浣撴鍏徃鎷奸煶鎼滅储
+    getRemoteData(query) {
+      if (query) {
+        let compName = query;
+        queryCompany(compName).then((response) => {
+          this.CompanyList = response.data;
+        });
+      }
+    },
+
+    // 閫夋鏁版嵁
+    searchSelect(val) {
+      this.CheckBox = val;
+    },
+
+    // 鏃堕棿
+    dateChangebirthday1(val) {
+      this.startTime = val;
+    },
+
+    // 鎼滅储
+    submitForm() {
+      this.queryParams.compId = this.CheckBox.drugManufacturerId;
+      this.queryParams.checkStatus = this.tjStatus;
+      if (this.startTime) {
+        this.queryParams.beginTime = this.startTime[0];
+        this.queryParams.endTime = this.startTime[1];
+      } else {
+        this.queryParams.beginTime = null;
+        this.queryParams.endTime = null;
+      }
+
+      // 椤甸潰鏁版嵁
+      getcheckList(this.queryParams).then((response) => {
+        if (response.data.customers != null) {
+          this.checkList = response.data.customers;
+          this.checkList.forEach((item) => {
+            this.tjStatus = item.tjStatus.toString();
+          });
+          this.loading = false;
+          this.total = response.data.total;
+        } else {
+          this.checkList = [];
+        }
+      });
+    },
+    // 閲嶇疆
+    resetQuery() {
+      this.resetForm("tableList");
+      this.submitForm();
+    },
+
+    // 鐐瑰嚮璇︽儏
+    handleClick(row) {
+      this.tableAll = row;
+      if (this.tableAll.cusSex === 0) {
+        this.tableAll.cusSex = "鐢�";
+      }
+      if (this.tableAll.cusSex === 1) {
+        this.tableAll.cusSex = "濂�";
+      }
+      this.tjNumber = this.tableAll.tjNumber;
+      getState(this.tjNumber).then((res) => {
+        this.status = res.data;
+        if (this.status.status === "1") {
+          getInfo().then((response) => {
+            this.userId = response.user.userId;
+            if (this.userId) {
+              let data = {
+                userId: this.userId,
+                tjNumber: this.tjNumber,
+                state: 0,
+              };
+              getModifiedState(data).then((res) => {
+                this.MsgId = res.msg;
+                this.drawer = true;
+                getupdateCheckType(this.tjNumber).then((response) => {
+                  this.changedate = response.data;
+                  this.changedate.forEach((item) => {
+                    this.textarea1 = item.checkAdvice;
+                  });
+                  if (this.changedate) {
+                    for (let i = 0; i < this.changedate.length; i++) {
+                      this.remark = this.changedate[i].remark;
+                    }
+                    this.changedate.forEach((item) => {
+                      // this.remark = item.remark;
+                      item.sons.forEach((item3) => {
+                        if (item3.standard.tjStandardGtValue === null) {
+                          item3.standard.tjStandardGtValue = "";
+                        }
+                        if (item3.standard.tjStandardLtValue === null) {
+                          item3.standard.tjStandardLtValue = "";
+                        }
+                      });
+                      // item.remark = "";
+                    });
+                  } else {
+                    this.$message({
+                      type: "warning ",
+                      message: "璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁",
+                    });
+                  }
+                });
+              });
+            }
+          });
+        } else {
+          this.$confirm(
+            "" + this.status.name + "姝e湪淇敼璇ヤ俊鎭�, 鏄惁寮哄埗杩涘幓?",
+            "鎻愮ず",
+            {
+              confirmButtonText: "鏄�",
+              cancelButtonText: "鍚�",
+              type: "warning",
+            }
+          )
+            .then(() => {
+              getInfo().then((response) => {
+                this.userId = response.user.userId;
+                if (this.userId) {
+                  let data = {
+                    userId: this.userId,
+                    tjNumber: this.tjNumber,
+                    state: 0,
+                  };
+                  getforceIn(data).then((res) => {
+                    this.MsgId = res.msg;
+                    this.drawer = true;
+                    getupdateCheckType(this.tjNumber).then((response) => {
+                      this.changedate = response.data;
+                      if (this.changedate) {
+                        for (let i = 0; i < this.changedate.length; i++) {
+                          this.remark = this.changedate[i].remark;
+                        }
+                        this.changedate.forEach((item) => {
+                          this.textarea1 = item.checkAdvice;
+
+                          // this.remark = item.remark;
+                          item.sons.forEach((item3) => {
+                            if (item3.standard.tjStandardGtValue === null) {
+                              item3.standard.tjStandardGtValue = "";
+                            }
+                            if (item3.standard.tjStandardLtValue === null) {
+                              item3.standard.tjStandardLtValue = "";
+                            }
+                          });
+                          // item.remark = "";
+                        });
+                      } else {
+                        this.$message({
+                          type: "warning ",
+                          message: "璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁",
+                        });
+                      }
+                    });
+                  });
+                }
+              });
+            })
+            .catch(() => {
+              this.$message({
+                type: "info",
+                message: "宸插彇娑堣繘鍏�",
+              });
+            });
+          this.drawer = false;
+        }
+      });
+
+      // 鑾峰彇灏忕粨
+      // getDeptAdvice().then((response) => {
+      //   response.data.forEach((item) => {
+      //     this.DeptadviceAll = item;
+      //   });
+      // });
+    },
+    // 鎾ら攢
+    getRevoke(row) {
+      const tjNumber = row.tjNumber;
+      revoke(tjNumber).then((response) => {
+        this.$modal.msgSuccess("鎾ゅ洖鎴愬姛");
+      });
+    },
+
+    // 鏄惁鍏抽棴寮圭獥
+    handleClose(done) {
+      if (this.loading) {
+        return;
+      }
+      this.$confirm("纭畾瑕佹彁浜ゅ悧锛�")
+        .then((_) => {
+          this.loading = true;
+          this.timer = setTimeout(() => {
+            done();
+            this.determine();
+            // 鍔ㄧ敾鍏抽棴闇�瑕佷竴瀹氱殑鏃堕棿
+            setTimeout(() => {
+              this.loading = false;
+            }, 400);
+          }, 2000);
+        })
+        .catch((_) => {
+          this.drawer = false;
+          let data = {
+            userId: this.userId,
+            tjNumber: this.tjNumber,
+            state: 1,
+            id: this.MsgId,
+          };
+          getfiedState(data).then((res) => {});
+        });
+    },
+
+    // 鐢熸垚鎶ュ憡
+    // generate(row) {
+    //   const tjNumber = row.tjNumber;
+    //   getGenerate(tjNumber).then((response) => {
+    //     this.$modal.msgSuccess("鐢熸垚鎴愬姛");
+    //   });
+    // },
+    // xiAoJieChange(event) {
+    //   if (event) {
+    //     this.changedate.forEach((item) => {
+    //       item.remark = "";
+    //       item.parentAdvice.forEach((item1) => {
+    //         event.forEach((item2) => {
+    //           if (item2 == item1.id) {
+    //             item.remark = item.remark + item1.advice + "銆�";
+    //           }
+    //         });
+    //       });
+    //     });
+    //   }
+    // },
+    change(vale) {
+      // console.log(this.changedate[index].remark);
+    },
+    determine() {
+      let tjNumber = this.tableAll.tjNumber;
+      let advice = this.textarea1;
+      let data = {
+        tjNumber,
+        advice,
+        checkStatus: 1,
+      };
+      getTjdetailList(data).then((response) => {
+        if (response.code === 200) {
+          this.$modal.msgSuccess("鎻愪氦鎴愬姛");
+          let tjNumber = this.tjNumber;
+          let data = {
+            userId: this.userId,
+            tjNumber: tjNumber,
+            state: 1,
+            id: this.MsgId,
+          };
+          gettoPdf(tjNumber).then((res) => {
+            this.$modal.msgSuccess("宸茬敓鎴愭姤鍛婏紒璇峰墠寰�浣撴璁板綍椤甸潰鏌ョ湅锛�");
+          });
+          getfiedState(data).then((res) => {
+            this.drawer = false;
+          });
+        }
+      });
+
+      for (let i = 0; i < this.changedate.length; i++) {
+        this.proIds = this.changedate[i].parentId;
+        let remarks = this.changedate[i].remark;
+        let updateOrderRemarkVos = [
+          {
+            tjNumber,
+            proId: this.proIds.toString(),
+            remarks,
+          },
+        ];
+        getModified(updateOrderRemarkVos).then((response) => {});
+      }
+      this.submitForm()
+      this.$forceUpdate()
+      // this.changedate.forEach((item) => {
+      //   this.proIds = item.parentId;
+      //   // this.remark = item.remark;
+      // });
+    },
+  },
+};
+</script>
+<style scoped>
+.btn {
+  margin: 20px 0px;
+}
+
+.main {
+  height: 700px;
+  overflow: hidden;
+}
+
+#printIframe::-webkit-scrollbar {
+  width: 6px;
+}
+
+/* 淇敼 婊氬姩鏉$殑 涓嬮潰 鐨� 鏍峰紡 */
+#printIframe::-webkit-scrollbar-track {
+  background-color: white;
+  -webkit-border-radius: 2em;
+  -moz-border-radius: 2em;
+  border-radius: 2em;
+}
+
+/* 淇敼 婊戝潡 */
+#printIframe::-webkit-scrollbar-thumb {
+  background-color: #dcdfe6;
+  -webkit-border-radius: 2em;
+  -moz-border-radius: 2em;
+  border-radius: 2em;
+}
+
+/* .el-dialog {
+  width: 1264px;
+  height: 800px;
+}
+
+.el-dialog__header {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.el-dialog__body {
+  padding: 0;
+} */
+
+.pag {
+  width: 100%;
+  display: flex;
+  justify-content: center;
+}
+
+.pag1 {
+  width: 30%;
+}
+
+.dialog-footers {
+  /* margin-top: 5px; */
+  margin-left: calc(100% - 15%);
+}
+
+textarea {
+  background: #ffffff;
+  border: none;
+  outline: none;
+}
+</style>
+
+  
+  
diff --git a/src/views/doctor/check/index.vue b/src/views/doctor/check/index.vue
index 8ee401a..aa8c1d8 100644
--- a/src/views/doctor/check/index.vue
+++ b/src/views/doctor/check/index.vue
@@ -1,68 +1,41 @@
 <template>
   <div>
-    <el-form
-      :model="queryParams"
-      ref="tableList"
-      :inline="true"
-      label-width="76px"
-      style="margin-top: 10px"
-    >
+    <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px">
       <el-form-item label="濮撳悕" prop="name">
-        <el-input
-          v-model="queryParams.name"
-          style="width: 116px"
-          placeholder="璇疯緭鍏ュ鍚�"
-          clearable
-          @keyup.enter.native="handleQuery"
-        ></el-input>
+        <el-input v-model="queryParams.name" style="width: 116px" placeholder="璇疯緭鍏ュ鍚�" clearable
+          @keyup.enter.native="handleQuery"></el-input>
       </el-form-item>
       <el-form-item label="浣撴鍙�" prop="tjNumber">
-        <el-input
-          ref="inputName"
-          v-model="queryParams.tjNumber"
-          style="width: 240px"
-          placeholder="璇疯緭鍏ヤ綋妫�鍙�"
-        ></el-input>
+        <el-input ref="inputName" v-model="queryParams.tjNumber" style="width: 240px" placeholder="璇疯緭鍏ヤ綋妫�鍙�"></el-input>
       </el-form-item>
       <el-form-item>
-        <el-button size="mini" type="primary" @click="submitForm"
-          >鎼滅储</el-button
-        >
+        <el-button size="mini" type="primary" @click="submitForm">鎼滅储</el-button>
         <el-button size="mini" @click="resetQuery">閲嶇疆</el-button>
       </el-form-item>
     </el-form>
+    <div style="display: flex;">
+      <el-radio-group v-model="tjStatus" @input="radioChange" style="margin-left: 30px">
+        <el-radio-button label="0">鏈</el-radio-button>
+        <el-radio-button label="1">宸叉</el-radio-button>
+      </el-radio-group>
+      <el-row :gutter="10" class="mb8" style="margin:8px 10px;">
+      <el-col :span="1.5">
+        <el-button type="primary"
+          size="mini"
+          @click="radioChange"
+          v-hasPermi="['system:notice:add']"
+        >浼氳瘖鐢宠</el-button>
+      </el-col>
+    </el-row>
+    </div>
 
-    <el-radio-group
-      v-model="tjStatus"
-      @input="radioChange"
-      style="margin-left: 30px"
-    >
-      <el-radio-button label="0">鏈</el-radio-button>
-      <el-radio-button label="1">宸叉</el-radio-button>
-    </el-radio-group>
 
     <template>
-      <el-table
-        :data="tableList"
-        v-loading="loading"
-        ref="table"
-        height="536px"
-        style="margin: 20px; width: 98%"
-        border=""
-      >
+      <el-table :data="tableList" v-loading="loading" ref="table" height="536px" style="margin: 20px; width: 98%"
+        border="">
         <!-- <template slot="empty">鏁版嵁姝e湪鍔犺浇涓�</template> -->
-        <el-table-column
-          label="浣撴鍙�"
-          align="center"
-          prop="tjNumber"
-          width="180px"
-        />
-        <el-table-column
-          label="濮撳悕"
-          align="center"
-          prop="cusName"
-          width="100px"
-        />
+        <el-table-column label="浣撴鍙�" align="center" prop="tjNumber" width="180px" />
+        <el-table-column label="濮撳悕" align="center" prop="cusName" width="100px" />
         <el-table-column label="鎬у埆" align="center" prop="cusSex" width="60px">
           <template slot-scope="scope">
             <span v-if="scope.row.cusSex == '0'">鐢�</span>
@@ -71,18 +44,8 @@
             <span v-if="scope.row.cusSex == '9'">鏈鏄庢�у埆</span>
           </template>
         </el-table-column>
-        <el-table-column
-          label="鍑虹敓鏃ユ湡"
-          align="center"
-          prop="cusBrithday"
-          width="120px"
-        />
-        <el-table-column
-          label="鐢佃瘽"
-          align="center"
-          prop="cusPhone"
-          width="120px"
-        />
+        <el-table-column label="鍑虹敓鏃ユ湡" align="center" prop="cusBrithday" width="120px" />
+        <el-table-column label="鐢佃瘽" align="center" prop="cusPhone" width="120px" />
         <!-- <el-table-column
           label="鐘舵��"
           align="center"
@@ -95,63 +58,28 @@
           </template>
         </el-table-column> -->
 
-        <el-table-column
-          label="浣撴绫诲瀷"
-          align="center"
-          prop="tjType"
-          width="80px"
-        />
-        <el-table-column
-          label="鐧昏鏃堕棿"
-          align="center"
-          prop="createTime"
-          width="160px"
-        />
-        <el-table-column
-          label="浣撴鏃堕棿"
-          align="center"
-          prop="tjTime"
-          width="120px"
-        />
-        <el-table-column
-          label="鏈椤�"
-          prop="notCheckeds"
-          :show-overflow-tooltip="true"
-        />
+        <el-table-column label="浣撴绫诲瀷" align="center" prop="tjType" width="80px" />
+        <el-table-column label="鐧昏鏃堕棿" align="center" prop="createTime" width="160px" />
+        <el-table-column label="浣撴鏃堕棿" align="center" prop="tjTime" width="120px" />
+        <el-table-column label="鏈椤�" prop="notCheckeds" :show-overflow-tooltip="true" />
         <el-table-column label="鎿嶄綔" align="center" width="80px">
           <template slot-scope="scope">
-            <el-button
-              type="primary"
-              size="mini"
-              @click="handleClick(scope.row)"
-              >璇︽儏</el-button
-            >
+            <el-button type="primary" size="mini" @click="handleClick(scope.row)">璇︽儏</el-button>
           </template>
         </el-table-column>
       </el-table>
 
       <div class="pag">
         <div class="pag1">
-          <pagination
-            v-show="total > 0"
-            :total="total"
-            :page.sync="queryParams.page"
-            :limit.sync="queryParams.pageSize"
-            @pagination="getList"
-          />
+          <pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.pageSize"
+            @pagination="getList" />
         </div>
       </div>
     </template>
     <!-- 鐐瑰嚮鍙宠竟寮瑰嚭灞� -->
-    <el-drawer
-      :visible.sync="drawer"
-      :with-header="false"
-      size="70%"
-      :before-close="handleClose"
-    >
+    <el-drawer :visible.sync="drawer" :with-header="false" size="70%" :before-close="handleClose">
       <div style="font-size: 14px">
-        <table
-          style="
+        <table style="
             width: 96%;
             height:70px
             margin: 10px 10px;
@@ -159,19 +87,14 @@
             border: 1px solid #dfe6ec;
             border-collapse: collapse;
             font-size:16px
-          "
-          cellspacing="4"
-        >
+          " cellspacing="4">
           <caption style="background-color: #f8f8f9; font-size: 18px">
             濉啓{{
               tableAll.cusName
             }}鐨勪綋妫�璧勬枡
           </caption>
           <tr style="border: 1px solid #dfe6ec; border-collapse: collapse">
-            <td
-              style="border: 1px solid #dfe6ec; border-collapse: collapse"
-              align="right"
-            >
+            <td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right">
               濮撳悕锛�
             </td>
             <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
@@ -183,10 +106,7 @@
                 <span v-if="scope.row.cusSex == '9'">鏈鏄庢�у埆</span>
               </template>
             </td>
-            <td
-              style="border: 1px solid #dfe6ec; border-collapse: collapse"
-              align="right"
-            >
+            <td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right">
               鎬у埆锛�
             </td>
             <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
@@ -194,19 +114,13 @@
             </td>
           </tr>
           <tr style="border: 1px solid #dfe6ec; border-collapse: collapse">
-            <td
-              style="border: 1px solid #dfe6ec; border-collapse: collapse"
-              align="right"
-            >
+            <td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right">
               浣撴鍗曞彿锛�
             </td>
             <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
               {{ tableAll.tjNumber }}
             </td>
-            <td
-              style="border: 1px solid #dfe6ec; border-collapse: collapse"
-              align="right"
-            >
+            <td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right">
               浣撴鏃堕棿锛�
             </td>
             <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
@@ -218,25 +132,16 @@
 
       <template>
         <div style="margin-left: 10px">
-          <el-radio-group
-            v-model="radio"
-            v-for="(item, index) in Parent"
-            :key="index"
-            @input="radioChange1(item.proId, item)"
-          >
+          <el-radio-group v-model="radio" v-for="(item, index) in Parent" :key="index"
+            @input="radioChange1(item.proId, item)">
             <el-radio-button :label="item.proId">{{
               item.proName
             }}</el-radio-button>
           </el-radio-group>
         </div>
       </template>
-      <el-table
-        v-loading="loading"
-        :data="proParentList.sons"
-        border
-        height="460px"
-        style="width: 96%; margin: 10px 10px"
-      >
+      <el-table v-loading="loading" :data="proParentList.sons" border height="460px"
+        style="width: 96%; margin: 10px 10px">
         <el-table-column prop="project.proName" label="妫�娴嬮」鐩�" width="150">
           <!-- <template slot-scope="scope">
             {{ scope.row.project.proName }}
@@ -244,21 +149,13 @@
         </el-table-column>
         <el-table-column prop="proResult" label="妫�娴嬬粨鏋�" width="280">
           <template slot-scope="scope">
-            <el-input
-              size="mini"
-              v-model="scope.row.proResult"
-              autocomplete="off"
-              placeholder="璇疯緭鍏ユ娴嬬粨鏋�"
-              @blur="handleInputConfirm(scope.row)"
-              @input="vale"
-            ></el-input>
+            <el-input size="mini" v-model="scope.row.proResult" autocomplete="off" placeholder="璇疯緭鍏ユ娴嬬粨鏋�"
+              @blur="handleInputConfirm(scope.row)" @input="vale"></el-input>
           </template>
         </el-table-column>
         <el-table-column label="瑙勫垯" width="55">
           <template slot-scope="scope">
-            <el-button class="blue-button" @click="handleguize(scope.row)"
-              >...</el-button
-            >
+            <el-button class="blue-button" @click="handleguize(scope.row)">...</el-button>
           </template>
         </el-table-column>
         <el-table-column prop="project.proMetering" label="鍗曚綅">
@@ -270,75 +167,42 @@
         </el-table-column>
         <el-table-column prop="conclusion" label="缁撴灉缁撹" width="280">
           <template slot-scope="scope">
-            <el-input
-              size="mini"
-              v-model="scope.row.conclusion"
-              autocomplete="off"
-              placeholder="璇疯緭鍏ユ娴嬬粨鏋�"
-              disabled
-            ></el-input>
+            <el-input size="mini" v-model="scope.row.conclusion" autocomplete="off" placeholder="璇疯緭鍏ユ娴嬬粨鏋�"
+              disabled></el-input>
           </template>
         </el-table-column>
-        <el-table-column
-          prop="exceptionDesc"
-          label="鏄惁寮傚父"
-          width="80px"
-          align="center"
-        >
+        <el-table-column prop="exceptionDesc" label="鏄惁寮傚父" width="80px" align="center">
           <template slot-scope="scope">
             <el-checkbox v-model="scope.row.exceptionDesc"></el-checkbox>
           </template>
         </el-table-column>
-        <el-table-column
-          prop="isReturn"
-          label="鏄惁澶嶈瘖"
-          width="80px"
-          align="center"
-        >
+        <el-table-column prop="isReturn" label="鏄惁澶嶈瘖" width="80px" align="center">
           <template slot-scope="scope">
             <el-checkbox v-model="scope.row.isReturn"></el-checkbox>
           </template>
         </el-table-column>
         <el-table-column prop="project.resultType" label="缁撴灉绫诲瀷">
           <template slot-scope="scope">
-            <dict-tag
-              :options="dict.type.tj_result_type"
-              :value="scope.row.project.resultType"
-            />
+            <dict-tag :options="dict.type.tj_result_type" :value="scope.row.project.resultType" />
           </template>
         </el-table-column>
       </el-table>
 
       <div style="font-size: 14px; overflow-y: auto; height: 286px">
-        <table
-          style="
+        <table style="
             width: 96%;
             margin: 4px 10px;
             border: 1px solid #dfe6ec;
             border-collapse: collapse;
-          "
-          cellspacing="4"
-        >
+          " cellspacing="4">
           <tr style="border: 1px solid #dfe6ec; border-collapse: collapse">
             <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
               鐥呯閫夋嫨锛�
             </td>
             <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
-              <el-select
-                v-model="value"
-                multiple
-                placeholder="璇烽�夋嫨"
-                style="width: 100%; height: 45px"
-                v-if="deptAdviceList"
-                @change="sel"
-                filterable
-              >
-                <el-option
-                  v-for="item in deptAdviceList"
-                  :key="item.id"
-                  :label="item.title"
-                  :value="item.id"
-                >
+              <el-select v-model="value" multiple placeholder="璇烽�夋嫨" style="width: 100%; height: 45px"
+                v-if="deptAdviceList" @change="sel" filterable>
+                <el-option v-for="item in deptAdviceList" :key="item.id" :label="item.title" :value="item.id">
                 </el-option>
               </el-select>
             </td>
@@ -346,20 +210,9 @@
               涓绘鍖诲笀锛�
             </td>
             <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
-              <el-select
-                v-model="doctorName"
-                placeholder="璇烽�夋嫨"
-                style="width: 100%"
-                v-if="deptAdviceList"
-                @change="selName"
-                filterable
-              >
-                <el-option
-                  v-for="item in userList"
-                  :key="item.userId"
-                  :label="item.nickName"
-                  :value="item.userId"
-                >
+              <el-select v-model="doctorName" placeholder="璇烽�夋嫨" style="width: 100%" v-if="deptAdviceList"
+                @change="selName" filterable>
+                <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId">
                 </el-option>
               </el-select>
             </td>
@@ -368,25 +221,15 @@
             <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
               寤鸿锛�
             </td>
-            <td
-              style="border: 1px solid #dfe6ec; border-collapse: collapse"
-              colspan="2"
-            >
-              <el-input
-                type="textarea"
-                placeholder="璇疯緭鍏ュ唴瀹�"
-                v-model="proParentList.remark"
-                rows="7"
-              >
+            <td style="border: 1px solid #dfe6ec; border-collapse: collapse" colspan="2">
+              <el-input type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" v-model="proParentList.remark" rows="7">
               </el-input>
             </td>
           </tr>
         </table>
 
         <div slot="footer" class="dialog-footers">
-          <el-button type="primary" @click="determine" v-show="tjStatus == '0'"
-            >鎻� 浜�</el-button
-          >
+          <el-button type="primary" @click="determine" v-show="tjStatus == '0'">鎻� 浜�</el-button>
         </div>
       </div>
       <!-- <div style="background-color: #f3f3f3;font-size:14px;overflow-y:auto;height: calc(100% - 11%);">
@@ -714,15 +557,15 @@
               this.proParentList = response.data;
               this.loading = false;
               this.value = [];
-              if(this.proParentList.xiaoJieIds != null){
+              if (this.proParentList.xiaoJieIds != null) {
                 if (this.proParentList.xiaoJieIds.length != 0) {
-                this.proParentList.xiaoJieIds.forEach((item2) => {
-                  let item = Number(item2)
-                  this.value.push(item);
-                });
+                  this.proParentList.xiaoJieIds.forEach((item2) => {
+                    let item = Number(item2)
+                    this.value.push(item);
+                  });
+                }
               }
-              }
-             
+
               this.proParentList.sons.forEach((item) => {
                 this.doctorName = item.doctorName;
 
@@ -849,14 +692,14 @@
           getParentId(data).then((response) => {
             this.proParentList = response.data;
             this.value = [];
-            if(this.proParentList.xiaoJieIds != null){
-                if (this.proParentList.xiaoJieIds.length != 0) {
+            if (this.proParentList.xiaoJieIds != null) {
+              if (this.proParentList.xiaoJieIds.length != 0) {
                 this.proParentList.xiaoJieIds.forEach((item2) => {
                   let item = Number(item2)
                   this.value.push(item);
                 });
               }
-              }
+            }
             this.proParentList.sons.forEach((item) => {
               this.doctorName = item.doctorName;
               if (item.isReturn == 1) {
@@ -903,14 +746,14 @@
           getParentId(data).then((response) => {
             this.proParentList = response.data;
             this.value = [];
-            if(this.proParentList.xiaoJieIds != null){
-                if (this.proParentList.xiaoJieIds.length != 0) {
+            if (this.proParentList.xiaoJieIds != null) {
+              if (this.proParentList.xiaoJieIds.length != 0) {
                 this.proParentList.xiaoJieIds.forEach((item2) => {
                   let item = Number(item2)
                   this.value.push(item);
                 });
               }
-              }
+            }
             this.proParentList.sons.forEach((item) => {
               this.doctorName = item.doctorName;
               if (item.isReturn == 1) {
diff --git a/src/views/hosp/restore/index.vue b/src/views/hosp/restore/index.vue
new file mode 100644
index 0000000..9a6db01
--- /dev/null
+++ b/src/views/hosp/restore/index.vue
@@ -0,0 +1,601 @@
+<template>
+    <div class="app-container">
+      <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+        <el-form-item label="濮撳悕" prop="cusName">
+          <el-input v-model="queryParams.cusName" placeholder="璇疯緭鍏ュ鍚�" clearable style="width:120px" @keyup.enter.native="handleQuery"/>
+        </el-form-item>
+        <el-form-item label="鑱旂郴鐢佃瘽" prop="cusPhone">
+          <el-input v-model="queryParams.cusPhone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" style="width:140px"  clearable @keyup.enter.native="handleQuery"/>
+        </el-form-item>
+        <el-form-item label="韬唤璇佸彿" prop="cusIdcard">
+          <el-input
+            v-model="queryParams.cusIdcard"
+            placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item>
+          <el-button
+            type="primary"
+            icon="el-icon-search"
+            size="mini"
+            @click="handleQuery"
+            >鎼滅储</el-button
+          >
+          <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+            >閲嶇疆</el-button
+          >
+        </el-form-item>
+      </el-form>
+  
+      <el-row :gutter="10" class="mb8">
+        <el-col :span="1.5">
+          <el-button
+          type="primary"
+            icon="el-icon-plus"
+            size="mini"
+            @click="handleAdd"
+            v-hasPermi="['hosp:customer:add']"
+            >鎵归噺鎭㈠</el-button
+          >
+        </el-col>
+      </el-row>
+  
+      <el-table
+        border
+        v-loading="loading"
+        :data="customerList"
+        @selection-change="handleSelectionChange"
+        
+      >
+        <el-table-column type="selection" width="40px" align="center" fixed="left" />
+        <el-table-column
+          label="搴忓彿"
+          align="center"
+          prop="newID"
+          fixed="left"
+          :show-overflow-tooltip="true"
+          width="50px"
+        />
+        <el-table-column
+          label="濮撳悕"
+          align="center"  
+          prop="cusName"
+          width="90px"
+          fixed="left"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="鎬у埆"
+          align="center"
+          prop="cusSex"
+          :show-overflow-tooltip="true"
+          width="60px"
+        >
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_user_sex"
+              :value="scope.row.cusSex"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍑虹敓鏃ユ湡"
+          align="center"
+          prop="cusBrithday"
+          width="100px"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.cusBrithday, "{y}-{m}-{d}") }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="韬唤璇佸彿"
+          align="center"
+          prop="cusIdcard"
+          width="170px"
+          :show-overflow-tooltip="true"
+        />
+         <el-table-column
+          label="鑱旂郴鐢佃瘽"
+          align="center"
+          prop="cusPhone"
+          width="110px"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="鐜颁綇鍧�"
+          align="center"
+          prop="cusAddr"
+          width="180px"
+          :show-overflow-tooltip="true"
+        />
+       
+        <el-table-column
+          label="閭斂缂栫爜"
+          align="center"
+          prop="cusPostcode"
+          width="80px"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="閭"
+          align="center"
+          prop="cusEmail"
+          width="170px"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="姘戞棌"
+          align="center"
+          prop="cusNational"
+          width="80px"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.dict_user_national"
+              :value="scope.row.cusNational"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="濠氬Щ鐘跺喌"
+          align="center"
+          prop="cusMarryStatus"
+          :show-overflow-tooltip="true"
+          width="80px"
+        >
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.dict_user_marry"
+              :value="scope.row.cusMarryStatus"
+            />
+          </template>
+        </el-table-column>
+        
+        <el-table-column
+          label="浠嬬粛浜�"
+          align="center"
+          prop="cusIntroduce"
+          width="90px"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="娆℃暟"
+          align="center"
+          prop="cusNumber"
+          width="55px"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="VIP"
+          align="center"
+          prop="cusIsvip"
+          width="55px"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_yes_no"
+              :value="scope.row.cusIsvip"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="绱㈠紩鍗″彿"
+          align="center"
+          prop="indexCard"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          fixed="right"
+          label="鎿嶄綔"
+          align="center"
+          width="70px"
+          class-name="small-padding fixed-width"
+        >
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-refresh-left"
+              @click="handleUpdate(scope.row)"
+              v-hasPermi="['hosp:customer:edit']"
+              title="鎭㈠"
+            ></el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+  
+      <div class="pag">
+        <div class="pag1">
+          <pagination
+            v-show="total > 0"
+            :total="total"
+            :page.sync="queryParams.pageNum"
+            :limit.sync="queryParams.pageSize"
+            @pagination="getList"
+          />
+        </div>
+      </div>
+  
+      <!-- 娣诲姞鎴栦慨鏀逛俊鎭璇濇 -->
+      <el-dialog
+        :title="title"
+        :visible.sync="open"
+        width="1000px"
+        append-to-body
+      >
+        <el-form
+          ref="form"
+          :model="form"
+          :rules="rules"
+          label-width="100px"
+          :inline="true"
+        >
+          <el-form-item label="濮撳悕" prop="cusName">
+            <el-input
+              v-model="form.cusName"
+              placeholder="璇疯緭鍏ュ鍚�"
+              style="width: 200px"
+            />
+          </el-form-item>
+          <el-form-item label="鎬у埆" prop="cusSex">
+            <el-select
+              v-model="form.cusSex"
+              placeholder="璇烽�夋嫨鎬у埆"
+              style="width: 200px"
+            >
+              <el-option
+                v-for="dict in dict.type.sys_user_sex"
+                :key="dict.value"
+                :label="dict.label"
+                :value="parseInt(dict.value)"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="韬唤璇佸彿" prop="cusIdcard">
+            <el-input
+              v-model="form.cusIdcard"
+              placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�"
+              style="width: 200px"
+            />
+          </el-form-item>
+          <el-form-item label="鍑虹敓鏃ユ湡" prop="cusBrithday">
+            <el-date-picker
+              clearable
+              v-model="form.cusBrithday"
+              type="date"
+              value-format="yyyy-MM-dd"
+              placeholder="璇烽�夋嫨鍑虹敓鏃ユ湡"
+              style="width: 200px"
+            >
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="鐜颁綇鍧�" prop="cusAddr">
+            <el-input
+              v-model="form.cusAddr"
+              placeholder="璇疯緭鍏ョ幇灞呬綇鍦板潃"
+              style="width: 200px"
+            />
+          </el-form-item>
+          <el-form-item label="鑱旂郴鐢佃瘽" prop="cusPhone">
+            <el-input
+              v-model="form.cusPhone"
+              placeholder="璇疯緭鍏ヨ仈绯荤數璇�"
+              style="width: 200px"
+            />
+          </el-form-item>
+          <!-- <el-form-item label="璐﹀彿瀵嗙爜" prop="cusPassword">
+            <el-input v-model="form.cusPassword" placeholder="璇疯緭鍏ヨ处鍙峰瘑鐮�" style="width: 220px" />
+          </el-form-item> -->
+          <!-- <el-form-item label="閭斂缂栫爜" prop="cusPostcode">
+            <el-input v-model="form.cusPostcode" placeholder="璇疯緭鍏ラ偖鏀跨紪鐮�"  />
+          </el-form-item> -->
+          <el-form-item label="閭" prop="cusEmail">
+            <el-input
+              v-model="form.cusEmail"
+              placeholder="璇疯緭鍏ラ偖绠�"
+              style="width: 200px"
+            />
+          </el-form-item>
+          <!-- <el-form-item label="绱㈠紩鍗″彿" prop="indexCard">
+            <el-input v-model="form.indexCard" placeholder="璇疯緭鍏ョ储寮曞崱鍙�" style="width: 220px" />
+          </el-form-item> -->
+          <el-form-item label="姘戞棌" prop="cusNational">
+            <el-select
+              v-model="form.cusNational"
+              placeholder="璇烽�夋嫨姘戞棌"
+              style="width: 200px"
+              filterable
+            >
+              <el-option
+                v-for="dict in dict.type.dict_user_national"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="濠氬Щ鐘跺喌" prop="cusMarryStatus">
+            <el-select
+              v-model="form.cusMarryStatus"
+              placeholder="璇烽�夋嫨濠氬Щ鐘跺喌"
+              style="width: 200px"
+            >
+              <el-option
+                v-for="dict in dict.type.dict_user_marry"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+  
+          <el-form-item label="浠嬬粛浜�" prop="cusIntroduce">
+            <el-input
+              v-model="form.cusIntroduce"
+              placeholder="璇疯緭鍏ヤ粙缁嶄汉"
+              style="width: 200px"
+            />
+          </el-form-item>
+          <el-form-item label="鏄惁VIP" prop="cusIsvip">
+            <el-select
+              v-model="form.cusIsvip"
+              placeholder="璇烽�夋嫨鏄惁VIP"
+              style="width: 200px"
+            >
+              <el-option
+                v-for="dict in dict.type.sys_yes_no"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+          <el-button @click="cancel">鍙� 娑�</el-button>
+        </div>
+      </el-dialog>
+    </div>
+  </template>
+  
+  <script>
+  import {
+    listCustomer,
+    getCustomer,
+    delCustomer,
+    addCustomer,
+    updateCustomer,
+  } from "@/api/hosp/customer";
+  
+  export default {
+    name: "Customer",
+    dicts: [
+      "dict_user_national",
+      "dict_user_marry",
+      "sys_yes_no",
+      "sys_user_sex",
+    ],
+    data() {
+      return {
+        // 閬僵灞�
+        loading: true,
+        // 閫変腑鏁扮粍
+        ids: [],
+        // 闈炲崟涓鐢�
+        single: true,
+        // 闈炲涓鐢�
+        multiple: true,
+        // 鏄剧ず鎼滅储鏉′欢
+        showSearch: true,
+        // 鎬绘潯鏁�
+        total: 0,
+        // 淇℃伅琛ㄦ牸鏁版嵁
+        customerList: [],
+        // 寮瑰嚭灞傛爣棰�
+        title: "",
+        // 鏄惁鏄剧ず寮瑰嚭灞�
+        open: false,
+        // 鏌ヨ鍙傛暟
+        queryParams: {
+          pageNum: 1,
+          pageSize: 10,
+          cusName: null,
+          cusSex: null,
+          cusBrithday: null,
+          cusAddr: null,
+          cusPhone: null,
+          cusPostcode: null,
+          cusEmail: null,
+          indexCard: null,
+          cusNational: null,
+          cusMarryStatus: null,
+          cusIdcard: null,
+          cusIntroduce: null,
+          cusNumber: null,
+          cusIsvip: null,
+        },
+        // 琛ㄥ崟鍙傛暟
+        form: {},
+        // 琛ㄥ崟鏍¢獙
+        rules: {
+          cusName: [{ required: true, message: "濮撳悕涓嶈兘涓虹┖", trigger: "blur" }],
+          cusSex: [
+            { required: true, message: "鎬у埆涓嶈兘涓虹┖", trigger: "change" },
+          ],
+          cusBrithday: [
+            { required: true, message: "鍑虹敓鏃ユ湡涓嶈兘涓虹┖", trigger: "blur" },
+          ],
+          cusAddr: [
+            { required: true, message: "鐜板眳浣忓湴鍧�涓嶈兘涓虹┖", trigger: "blur" },
+          ],
+          cusPhone: [
+            { required: true, message: "鑱旂郴鐢佃瘽涓嶈兘涓虹┖", trigger: "blur" },
+          ],
+          cusPassword: [
+            { required: true, message: "璐﹀彿瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" },
+          ],
+          // cusNational: [
+          //   { required: true, message: "姘戞棌涓嶈兘涓虹┖", trigger: "change" }
+          // ],
+          cusIdcard: [
+            { required: true, message: "韬唤璇佸彿涓嶈兘涓虹┖", trigger: "blur" },
+          ],
+          deleted: [
+            { required: true, message: "鍒犻櫎鏍囧織涓嶈兘涓虹┖", trigger: "blur" },
+          ],
+        },
+      };
+    },
+    created() {
+      this.getList();
+    },
+    methods: {
+      /** 鏌ヨ淇℃伅鍒楄〃 */
+      getList() {
+        this.loading = true;
+        listCustomer(this.queryParams).then((response) => {
+          this.customerList = response.rows;
+          response.rows.forEach((item, index) => {
+            item.newID =
+              (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
+              index +
+              1;
+          });
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      // 鍙栨秷鎸夐挳
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 琛ㄥ崟閲嶇疆
+      reset() {
+        this.form = {
+          cusId: null,
+          cusName: null,
+          cusSex: null,
+          cusBrithday: null,
+          cusAddr: null,
+          cusPhone: null,
+          cusPassword: null,
+          cusPostcode: null,
+          cusEmail: null,
+          indexCard: null,
+          cusNational: null,
+          cusMarryStatus: null,
+          cusIdcard: null,
+          cusIntroduce: null,
+          cusNumber: null,
+          cusIsvip: null,
+          createBy: null,
+          createTime: null,
+          updateBy: null,
+          updateTime: null,
+          deleted: null,
+        };
+        this.resetForm("form");
+      },
+      /** 鎼滅储鎸夐挳鎿嶄綔 */
+      handleQuery() {
+        this.queryParams.pageNum = 1;
+        this.getList();
+      },
+      /** 閲嶇疆鎸夐挳鎿嶄綔 */
+      resetQuery() {
+        this.resetForm("queryForm");
+        this.handleQuery();
+      },
+      // 澶氶�夋閫変腑鏁版嵁
+      handleSelectionChange(selection) {
+        this.ids = selection.map((item) => item.cusId);
+        this.single = selection.length !== 1;
+        this.multiple = !selection.length;
+      },
+      /** 鏂板鎸夐挳鎿嶄綔 */
+      handleAdd() {
+        this.reset();
+        this.open = true;
+        this.title = "瀹㈡埛淇℃伅缁存姢";
+      },
+      /** 淇敼鎸夐挳鎿嶄綔 */
+      handleUpdate(row) {
+        this.reset();
+        const cusId = row.cusId || this.ids;
+        getCustomer(cusId).then((response) => {
+          this.form = response.data;
+          this.open = true;
+          this.title = "瀹㈡埛淇℃伅缁存姢";
+        });
+      },
+      /** 鎻愪氦鎸夐挳 */
+      submitForm() {
+        this.$refs["form"].validate((valid) => {
+          if (valid) {
+            if (this.form.cusId != null) {
+              updateCustomer(this.form).then((response) => {
+                this.$modal.msgSuccess("淇敼鎴愬姛");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              addCustomer(this.form).then((response) => {
+                this.$modal.msgSuccess("鏂板鎴愬姛");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      },
+      /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+      handleDelete(row) {
+        const cusIds = row.cusId || this.ids;
+        this.$modal
+          .confirm('鏄惁纭鍒犻櫎淇℃伅缂栧彿涓�"' + cusIds + '"鐨勬暟鎹」锛�')
+          .then(function () {
+            return delCustomer(cusIds);
+          })
+          .then(() => {
+            this.getList();
+            this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+          })
+          .catch(() => {});
+      },
+      /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+      handleExport() {
+        this.download(
+          "hosp/order/export",
+          {
+            ...this.queryParams,
+          },
+          `customer_${new Date().getTime()}.xlsx`
+        );
+      },
+    },
+  };
+  </script>
+  <style scoped>
+  .pag {
+    width: 100%;
+    display: flex;
+    justify-content: center;
+  }
+  .pag1 {
+    width: 30%;
+  }
+  
+  .dialog-footer {
+    display: flex;
+    justify-content: center;
+  }
+  </style>
+  
\ No newline at end of file
diff --git a/src/views/jmreport/richengtongji/index.vue b/src/views/jmreport/richengtongji/index.vue
new file mode 100644
index 0000000..a0e0d57
--- /dev/null
+++ b/src/views/jmreport/richengtongji/index.vue
@@ -0,0 +1,43 @@
+<template>
+    <div v-loading="loading" :style="'height:' + height">
+      <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" />
+    </div>
+  </template>
+  <script>
+  import {
+    getToken
+  } from '@/utils/auth'
+  import { view } from "@/api/jmreport/jimu";
+  export default {
+    name: "Ureport",
+    data() {
+      return {
+        src: "",
+        height: document.documentElement.clientHeight - 94.5 + "px;",
+        loading: true,
+        viewNum:"884667016862707712",
+      };
+    },
+    created() {
+      view().then((res) => {
+        this.src =
+          res +
+          "/" +
+          this.viewNum +
+          "?token=Bearer" +
+          getToken();
+      });
+      // this.src = "http://192.168.0.99:8080/ltkj-admin/jmreport/view/815468234724306944?token=Bearer " + getToken();
+    },
+  
+    mounted: function () {
+      setTimeout(() => {
+        this.loading = false;
+      }, 230);
+      const that = this;
+      window.onresize = function temp() {
+        that.height = document.documentElement.clientHeight - 94.5 + "px;";
+      };
+    }
+  };
+  </script>
\ No newline at end of file
diff --git a/src/views/jmreport/tijianrenshu/index.vue b/src/views/jmreport/tijianrenshu/index.vue
new file mode 100644
index 0000000..41f57a3
--- /dev/null
+++ b/src/views/jmreport/tijianrenshu/index.vue
@@ -0,0 +1,43 @@
+<template>
+    <div v-loading="loading" :style="'height:' + height">
+      <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" />
+    </div>
+  </template>
+  <script>
+  import {
+    getToken
+  } from '@/utils/auth'
+  import { view } from "@/api/jmreport/jimu";
+  export default {
+    name: "Ureport",
+    data() {
+      return {
+        src: "",
+        height: document.documentElement.clientHeight - 94.5 + "px;",
+        loading: true,
+        viewNum:"884675348172320768",
+      };
+    },
+    created() {
+      view().then((res) => {
+        this.src =
+          res +
+          "/" +
+          this.viewNum +
+          "?token=Bearer" +
+          getToken();
+      });
+      // this.src = "http://192.168.0.99:8080/ltkj-admin/jmreport/view/815468234724306944?token=Bearer " + getToken();
+    },
+  
+    mounted: function () {
+      setTimeout(() => {
+        this.loading = false;
+      }, 230);
+      const that = this;
+      window.onresize = function temp() {
+        that.height = document.documentElement.clientHeight - 94.5 + "px;";
+      };
+    }
+  };
+  </script>
\ No newline at end of file
diff --git a/src/views/jmreport/tuanduitiji/index.vue b/src/views/jmreport/tuanduitiji/index.vue
new file mode 100644
index 0000000..591670b
--- /dev/null
+++ b/src/views/jmreport/tuanduitiji/index.vue
@@ -0,0 +1,43 @@
+<template>
+    <div v-loading="loading" :style="'height:' + height">
+      <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" />
+    </div>
+  </template>
+  <script>
+  import {
+    getToken
+  } from '@/utils/auth'
+  import { view } from "@/api/jmreport/jimu";
+  export default {
+    name: "Ureport",
+    data() {
+      return {
+        src: "",
+        height: document.documentElement.clientHeight - 94.5 + "px;",
+        loading: true,
+        viewNum:"858579252534800384",
+      };
+    },
+    created() {
+      view().then((res) => {
+        this.src =
+          res +
+          "/" +
+          this.viewNum +
+          "?token=Bearer" +
+          getToken();
+      });
+      // this.src = "http://192.168.0.99:8080/ltkj-admin/jmreport/view/815468234724306944?token=Bearer " + getToken();
+    },
+  
+    mounted: function () {
+      setTimeout(() => {
+        this.loading = false;
+      }, 230);
+      const that = this;
+      window.onresize = function temp() {
+        that.height = document.documentElement.clientHeight - 94.5 + "px;";
+      };
+    }
+  };
+  </script>
\ No newline at end of file
diff --git a/src/views/jmreport/yingxingtongji/index.vue b/src/views/jmreport/yingxingtongji/index.vue
new file mode 100644
index 0000000..7ada1b4
--- /dev/null
+++ b/src/views/jmreport/yingxingtongji/index.vue
@@ -0,0 +1,43 @@
+<template>
+    <div v-loading="loading" :style="'height:' + height">
+      <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" />
+    </div>
+  </template>
+  <script>
+  import {
+    getToken
+  } from '@/utils/auth'
+  import { view } from "@/api/jmreport/jimu";
+  export default {
+    name: "Ureport",
+    data() {
+      return {
+        src: "",
+        height: document.documentElement.clientHeight - 94.5 + "px;",
+        loading: true,
+        viewNum:"884679290784526336",
+      };
+    },
+    created() {
+      view().then((res) => {
+        this.src =
+          res +
+          "/" +
+          this.viewNum +
+          "?token=Bearer" +
+          getToken();
+      });
+      // this.src = "http://192.168.0.99:8080/ltkj-admin/jmreport/view/815468234724306944?token=Bearer " + getToken();
+    },
+  
+    mounted: function () {
+      setTimeout(() => {
+        this.loading = false;
+      }, 230);
+      const that = this;
+      window.onresize = function temp() {
+        that.height = document.documentElement.clientHeight - 94.5 + "px;";
+      };
+    }
+  };
+  </script>
\ No newline at end of file
diff --git a/src/views/paiban/beiwanglu/index.vue b/src/views/paiban/beiwanglu/index.vue
new file mode 100644
index 0000000..7d8e908
--- /dev/null
+++ b/src/views/paiban/beiwanglu/index.vue
@@ -0,0 +1,245 @@
+<template>
+    <div>
+        <div style="margin-top: 10px;">
+            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
+                label-width="68px">
+                <el-form-item label="鏈堜唤" prop="deptName">
+                    <el-date-picker v-model="value1" type="date" placeholder="閫夋嫨鏃ユ湡">
+                    </el-date-picker>
+                </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>
+        </div>
+
+        <div>
+            <el-calendar v-model="value">
+                <template slot="dateCell" slot-scope="{date, data}">
+                    <div class="main-cd" @click="addPlan(date)">
+                        <div class="calendar-day">
+                            {{ data.day.split("-").slice(2).join("-") }} {{ data.isSelected ? '鉁旓笍' : '' }}
+                        </div>
+                        <div v-for="(item, index) in calendarData" :key="index" class="is-selected"
+                            @click.stop="addPlan(item)">
+                            <span v-if="item.day == data.day && item.timeDetailsList">
+                                <el-tooltip placement="top">
+                                    <div slot="content">
+                                        <div v-for="items in item.timeDetailsList" :key="items.day">
+                                            {{ items.channelName }} :
+                                            {{ items.wechatNumber }}涓井淇″彿锛�
+                                            璁″垝鎶曟斁{{ items.planNumber }}锛�
+                                            瀹為檯鍔犱汉
+                                            {{ items.realityNumber }}
+                                        </div>
+                                    </div>
+                                    // 杩欓噷鍐欎袱閬嶆槸鍥犱负涓�涓槸妗嗛噷灞曠ず锛屼竴涓槸鎮诞缁勪欢鍐呭睍绀虹殑鍐呭
+                                    <div v-for="items in item.timeDetailsList" :key="items.day">
+                                        {{ items.channelName }} :
+                                        {{ items.wechatNumber }}涓井淇″彿锛�
+                                        璁″垝鎶曟斁{{ items.planNumber }}锛�
+                                        瀹為檯鍔犱汉
+                                        {{ items.realityNumber }}
+                                    </div>
+                                </el-tooltip>
+                            </span>
+                        </div>
+                    </div>
+                </template>
+            </el-calendar>
+        </div>
+
+        <!-- 娣诲姞鎴栦慨鏀硅鍒�+鐥呯瀵硅瘽妗� -->
+        <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
+            <div style="margin-bottom: 10px;">鏃堕棿锛歿{ time }}</div>
+            <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true">
+                <el-form-item label="鏍囬" prop="title">
+                    <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" style="width:200px" />
+                </el-form-item>
+                <el-form-item label="浜嬩欢" prop="event">
+                    <el-input v-model="form.event" placeholder="璇疯緭鍏ヤ簨浠�" style="width:200px" />
+                </el-form-item>
+                <el-form-item label="鏃ユ湡绫诲瀷" prop="dateType">
+                    <el-select v-model="form.dateType" style="width: 94%">
+                        <el-option v-for="dict in dict.type.memo_date_type" :key="dict.value" :label="dict.label"
+                            :value="dict.value"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="鏃堕棿鐐�" prop="mTime" v-if="form.dateType == 1">
+                    <el-time-picker v-model="form.mTime" :picker-options="{
+                        selectableRange: '18:30:00 - 20:30:00'
+                    }" placeholder="浠绘剰鏃堕棿鐐�">
+                    </el-time-picker>
+                </el-form-item>
+                <el-form-item label="閲嶅鎻愰啋" prop="isRepeat">
+                    <el-select v-model="form.isRepeat" style="width: 94%">
+                        <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
+                            :value="dict.value"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="鎻愰啋闂撮殧" prop="repeatTime" v-if="form.isRepeat == 'Y'">
+                    <el-input type="number" v-model="form.repeatTime" placeholder="璇疯緭鍏ユ彁閱掗棿闅�" style="width:200px"
+                    oninput="value=value.replace(/[^0-9.]/g,'')" />
+                </el-form-item>
+                <el-form-item label="澶囧繕鐘舵��" prop="mFlag">
+                    <el-select v-model="form.mFlag" style="width: 94%">
+                        <el-option v-for="dict in dict.type.memo_status" :key="dict.value" :label="dict.label"
+                            :value="dict.value"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="绱ф�ョ姸鎬�" prop="stateLevel">
+                    <el-select v-model="form.stateLevel" style="width: 94%">
+                        <el-option v-for="dict in dict.type.memo_state_level" :key="dict.value" :label="dict.label"
+                            :value="dict.value"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="澶囨敞" prop="remark">
+                    <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" style="width:200px" />
+                </el-form-item>
+            </el-form>
+            <el-button style="margin: 10px 10px" type="primary" plain size="mini" icon="el-icon-plus"
+                @click="hableadd">娣诲姞</el-button>
+            <el-table :data="cateringList" border>
+                <el-table-column type="selection" width="55" align="center" />
+                <el-table-column label="搴忓彿" align="center" prop="newID" width="55px" />
+                <el-table-column label="鏍囬" align="center" prop="title" />
+                <el-table-column label="浜嬩欢" align="center" prop="event" />
+                <el-table-column label="鏃ユ湡绫诲瀷" align="center" prop="dateType" />
+                <el-table-column label="鏃堕棿鐐�" align="center" prop="mTime" />
+                <el-table-column label="閲嶅鎻愰啋" align="center" prop="isRepeat" width="150px" />
+                <el-table-column label="鎻愰啋闂撮殧" align="center" prop="repeatTime" width="150px" />
+                <el-table-column label="澶囧繕鐘舵��" align="center" prop="mFlag" width="150px" />
+                <el-table-column label="绱ф�ョ姸鎬�" align="center" prop="stateLevel" width="150px" />
+                <el-table-column label="澶囨敞" align="center" prop="remark" width="150px" />
+                <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width" fixed="right"
+                    width="80px">
+                    <template slot-scope="scope">
+                        <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
+                            v-hasPermi="['catering:catering:edit']" title="淇敼">
+                        </el-button>
+                        <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete1(scope.row)"
+                            v-hasPermi="['catering:catering:remove']" title="鍒犻櫎">
+                        </el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+                <el-button @click="cancel">鍙� 娑�</el-button>
+            </div>
+        </el-dialog>
+
+    </div>
+</template>
+<script>
+export default {
+    dicts: [
+        "memo_state_level",
+        "memo_status",
+        "memo_date_type",
+        "sys_yes_no",
+        "reservation_pay_type",
+        "sys_normal_disable"
+    ],
+    data() {
+        return {
+            // 鏄剧ず鎼滅储鏉′欢
+            showSearch: true,
+            queryParams: {
+
+            },
+            title: "",
+            value1: '',
+            time: '',
+            open: false,
+            value: new Date(),
+            calendarData: [],
+            form: {
+                mTime: new Date(2016, 9, 10, 18, 40),
+            },
+            cateringList: [],
+            // 琛ㄥ崟鏍¢獙
+            rules: {
+                title: [
+                    { required: true, message: "鏍囬涓嶈兘涓虹┖", trigger: "change" },
+                ],
+            },
+        }
+    },
+    monthChange(val) {
+        // 杩欓噷鏄洃鍚椂闂村彉鍖� => @change="monthChange"锛岀劧鍚庝紶鍏ユ棩鍘嗙粍浠�
+        this.value = val;
+        // 鏃堕棿鍒囨崲鐨勬椂鍊欙紝椤轰究璋冧釜鎺ュ彛鏌ヨ褰撴湀鏁版嵁
+        this.editDetail();
+    },
+    methods: {
+        editDetail() {
+
+        },
+        handleQuery() {
+
+        },
+        addPlan(val) {
+            this.open = true
+            this.title = "鏂板鏃ヨ鍒�"
+            this.timestampToTime(val)
+        },
+        timestampToTime(timestamp) {
+            var date = new Date(timestamp);
+            var y = date.getFullYear();
+            var m = date.getMonth() + 1;
+            m = m < 10 ? ('0' + m) : m;
+            var d = date.getDate();
+            d = d < 10 ? ('0' + d) : d;
+            var h = date.getHours();
+            var minute = date.getMinutes();
+            minute = minute < 10 ? ('0' + minute) : minute;
+            var second = date.getSeconds();
+            second = second < 10 ? ('0' + second) : second;
+            this.time = y + '-' + m + '-' + d;
+        },
+        hableadd() {
+            this.cateringList.push(this.form)
+            this.form = {}
+        },
+        cancel() {
+            this.open = false
+        },
+        submitForm() {
+
+        },
+        handleDelete1(row) {
+            this.cateringList.splice(row, 1)
+        },
+      
+
+    }
+}
+</script>
+<style>
+::v-deep .el-calendar-table:not(.is-range) td.next {
+    display: none;
+}
+
+::v-deep .el-calendar-table:not(.is-range) td.prev {
+    visibility: hidden;
+}
+
+::v-deep .el-calendar__button-group {
+    display: none;
+}
+
+
+/* 鍙栨秷[type='number']鐨刬nput鐨勪笂涓嬬澶� */
+input::-webkit-inner-spin-button {
+    -webkit-appearance: none !important;
+}
+
+input::-webkit-outer-spin-button {
+    -webkit-appearance: none !important;
+}
+
+input[type='number'] {
+    -moz-appearance: textfield;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/paiban/gerenpaiban/index.vue b/src/views/paiban/gerenpaiban/index.vue
new file mode 100644
index 0000000..de62a93
--- /dev/null
+++ b/src/views/paiban/gerenpaiban/index.vue
@@ -0,0 +1,280 @@
+<template>
+    <div class="app-container">
+          <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+          
+            <el-form-item label="鍖荤敓濮撳悕" prop="proName">
+              <el-input v-model="queryParams.proName" placeholder="璇疯緭鍏ュ尰鐢熷鍚�" clearable @keyup.enter.native="handleQuery" />
+            </el-form-item>
+            <el-form-item label="鐧昏鏃堕棿">
+                <el-date-picker clearable v-model="createTimeList" style="width: 240px" value-format="yyyy-MM-dd"
+                    type="daterange" range-separator="-" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"
+                    :picker-options="pickerOptions"></el-date-picker>
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+              <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+            </el-form-item>
+          </el-form>
+  
+          <el-row :gutter="10" class="mb8">
+            <el-col :span="1.5">
+              <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd"
+                v-hasPermi="['hosp:rules:add']">鏂板
+              </el-button>
+            </el-col>
+            <el-col :span="1.5">
+              <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
+                v-hasPermi="['hosp:rules:edit']">淇敼
+              </el-button>
+            </el-col>
+            <el-col :span="1.5">
+              <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
+                v-hasPermi="['hosp:rules:remove']">鍒犻櫎
+              </el-button>
+            </el-col>
+            <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+          </el-row>
+  
+          <el-table border v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
+            <el-table-column type="selection" width="55" align="center" />
+            <el-table-column label="搴忓彿" align="center" prop="newID" width="55" />
+            <el-table-column label="鍖荤敓濮撳悕" align="center" prop="name"  />
+            <el-table-column label="鎬у埆" align="center" prop="sex" :show-overflow-tooltip="true">
+              <template slot-scope="scope">
+                <dict-tag :options="dict.type.tj_rule_sex" :value="scope.row.sex" />
+              </template>
+            </el-table-column>
+            <el-table-column label="鎺掔彮鏃ユ湡" align="center" prop="time"  />
+            <el-table-column label="鏄熸湡" align="center" prop="week"  />
+            <el-table-column label="涓婂崍/涓嬪崍" align="center" prop="daty"  />
+            <el-table-column label="鍑鸿瘖绉戝" align="center" prop="dept"  />
+            <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+              <template slot-scope="scope">
+                <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
+                  v-hasPermi="['hosp:rules:edit']" title="淇敼">
+                </el-button>
+                <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+                  v-hasPermi="['hosp:rules:remove']" title="鍒犻櫎">
+                </el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+  
+          <div class="pag">
+            <div class="pag1">
+              <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
+                :limit.sync="queryParams.pageSize" @pagination="getList" />
+            </div>
+          </div>
+  
+      <!-- 娣诲姞鎴栦慨鏀硅鍒�+鐥呯瀵硅瘽妗� -->
+      <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
+        <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true">
+            <el-form-item label="鍖荤敓濮撳悕" prop="name">
+            <el-input v-model="form.name" placeholder="璇疯緭鍏ュ勾榫�-" style="width:200px" />
+          </el-form-item>
+          <el-form-item label="鎬у埆" prop="sex">
+            <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆" style="width:200px">
+              <el-option v-for="dict in dict.type.tj_rule_sex" :key="dict.value" :label="dict.label"
+                :value="dict.value"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="鎺掔彮鏃ユ湡" prop="time">
+            <el-input v-model="form.time" placeholder="璇疯緭鍏ユ帓鐝棩鏈�" style="width:200px" />
+          </el-form-item>
+          <el-form-item label="鏄熸湡" prop="week">
+            <el-input v-model="form.week" placeholder="璇疯緭鍏ユ槦鏈�" style="width:200px" />
+          </el-form-item>
+          <el-form-item label="涓婂崍/涓嬪崍" prop="daty">
+            <el-input v-model="form.daty" placeholder="璇疯緭鍏ヤ笂鍗�/涓嬪崍" style="width:200px" />
+          </el-form-item>
+          <el-form-item label="鍑鸿瘖绉戝" prop="dept">
+            <el-input v-model="form.dept" placeholder="璇疯緭鍏ュ嚭璇婄瀹�" style="width:200px" />
+          </el-form-item>
+        
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+          <el-button @click="cancel">鍙� 娑�</el-button>
+        </div>
+      </el-dialog>
+    </div>
+  </template>
+  
+  <script>
+  import {
+    
+  } from "@/api/hosp/rules";
+  
+  export default {
+    name: "Rules",
+    dicts: ["tj_rule_sex"],
+    data() {
+      return {
+        dataList:[{
+            newID:1,
+            name:"灏忓紶",
+            sex:"1",
+            dept:"澶栫",
+            time:"2023-11-15",
+            daty:"鍏ㄥぉ",
+            week:"鏄熸湡浜�"
+        }],
+        // 閬僵灞�
+        loading: true,
+        // 閫変腑鏁扮粍
+        ids: [],
+        // 闈炲崟涓鐢�
+        single: true,
+        // 闈炲涓鐢�
+        multiple: true,
+        // 鏄剧ず鎼滅储鏉′欢
+        showSearch: true,
+        // 鎬绘潯鏁�
+        total: 0,
+        createTimeList: null,
+        // 寮瑰嚭灞傛爣棰�
+        title: "",
+        // 鏄惁鏄剧ず寮瑰嚭灞�
+        open: false,
+        // 鏌ヨ鍙傛暟
+        queryParams: {
+          pageNum: 1,
+          pageSize: 10,
+        },
+        // 琛ㄥ崟鍙傛暟
+        form: {},
+        // 琛ㄥ崟鏍¢獙
+        rules: {
+          ageGt: [
+            { required: true, message: "椤圭洰鍚嶄笉鑳戒负绌�", trigger: "change" },
+          ],
+        },
+        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]);
+                        },
+                    },
+                ],
+            },
+      };
+    },
+    watch: {
+     
+  
+    },
+    created() {
+        this.getNowTime();
+      this.getList();
+    },
+    methods: {
+          //澶勭悊榛樿閫変腑褰撳墠鏃ユ湡
+          getNowTime() {
+            var curDate = new Date().getTime();
+            var dayNum = 3 * 24 * 3600 * 1000;
+            var threeDays = curDate - dayNum;
+            var sDay = this.getLocalTime(threeDays);
+            var end = this.getLocalTime(curDate);
+            this.finishTimeList = [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();
+            return y + "-" + this.add0(m) + "-" + this.add0(d);
+        },
+
+      getList() {
+      this.loading = false
+      },
+   
+     
+      // 鍙栨秷鎸夐挳
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 琛ㄥ崟閲嶇疆
+      reset() {
+        this.form = {
+         
+        };
+        this.resetForm("form");
+      },
+      /** 鎼滅储鎸夐挳鎿嶄綔 */
+      handleQuery() {
+        this.queryParams.pageNum = 1;
+        this.getList();
+      },
+      /** 閲嶇疆鎸夐挳鎿嶄綔 */
+      resetQuery() {
+        this.resetForm("queryForm");
+        this.handleQuery();
+      },
+      // 澶氶�夋閫変腑鏁版嵁
+      handleSelectionChange(selection) {
+        this.ids = selection.map((item) => item.aid);
+        this.single = selection.length !== 1;
+        this.multiple = !selection.length;
+      },
+      /** 鏂板鎸夐挳鎿嶄綔 */
+      handleAdd() {
+       this.open = true
+      },
+    
+      /** 淇敼鎸夐挳鎿嶄綔 */
+      handleUpdate(row) {
+        this.open = true
+        this.form = row
+      },
+      /** 鎻愪氦鎸夐挳 */
+      submitForm() {
+        
+      },
+      /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+      handleDelete(row) {
+        
+      },
+    },
+  };
+  </script>
+  <style scoped>
+  .pag {
+    width: 100%;
+    display: flex;
+    justify-content: center;
+  }
+  
+  .pag1 {
+    width: 30%;
+  }
+  </style>
+  
\ No newline at end of file
diff --git a/src/views/paiban/pilpaiban/index.vue b/src/views/paiban/pilpaiban/index.vue
new file mode 100644
index 0000000..a807a8e
--- /dev/null
+++ b/src/views/paiban/pilpaiban/index.vue
@@ -0,0 +1,267 @@
+<template>
+    <div class="app-container">
+          <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+            <el-form-item label="绉戝" prop="deptName">
+              <el-input v-model="queryParams.proName" placeholder="璇疯緭鍏ュ尰鐢熷鍚�" clearable @keyup.enter.native="handleQuery" />
+            </el-form-item>
+            <el-form-item label="鍖荤敓濮撳悕" prop="proName">
+              <el-input v-model="queryParams.proName" placeholder="璇疯緭鍏ュ尰鐢熷鍚�" clearable @keyup.enter.native="handleQuery" />
+            </el-form-item>
+            <el-form-item label="鐧昏鏃堕棿">
+                <el-date-picker clearable v-model="createTimeList" style="width: 240px" value-format="yyyy-MM-dd"
+                    type="daterange" range-separator="-" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"
+                    :picker-options="pickerOptions"></el-date-picker>
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+              <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+            </el-form-item>
+          </el-form>
+  
+          <el-row :gutter="10" class="mb8">
+            <el-col :span="1.5">
+              <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd"
+                v-hasPermi="['hosp:rules:add']">鏂板
+              </el-button>
+            </el-col>
+            <el-col :span="1.5">
+              <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
+                v-hasPermi="['hosp:rules:edit']">淇敼
+              </el-button>
+            </el-col>
+            <el-col :span="1.5">
+              <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
+                v-hasPermi="['hosp:rules:remove']">鍒犻櫎
+              </el-button>
+            </el-col>
+            <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+          </el-row>
+  
+          <el-table border v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
+            <el-table-column type="selection" width="55" align="center" />
+            <el-table-column label="搴忓彿" align="center" prop="newID" width="55" />
+            <el-table-column label="鍑鸿瘖绉戝" align="center" prop="dept"  />
+            <el-table-column label="鍖荤敓濮撳悕" align="center" prop="name"  />
+            <el-table-column label="鎺掔彮鏃ユ湡" align="center" prop="time"  />
+            <el-table-column label="鏄熸湡" align="center" prop="week"  />
+            <el-table-column label="涓婂崍/涓嬪崍" align="center" prop="daty"  />
+            <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+              <template slot-scope="scope">
+                <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
+                  v-hasPermi="['hosp:rules:edit']" title="淇敼">
+                </el-button>
+                <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+                  v-hasPermi="['hosp:rules:remove']" title="鍒犻櫎">
+                </el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+  
+          <div class="pag">
+            <div class="pag1">
+              <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
+                :limit.sync="queryParams.pageSize" @pagination="getList" />
+            </div>
+          </div>
+  
+      <!-- 娣诲姞鎴栦慨鏀硅鍒�+鐥呯瀵硅瘽妗� -->
+      <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
+        <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true">
+          <el-form-item label="鍑鸿瘖绉戝" prop="dept">
+            <el-input v-model="form.dept" placeholder="璇疯緭鍏ュ嚭璇婄瀹�" style="width:200px" />
+          </el-form-item>
+          <el-form-item label="鎺掔彮鏃ユ湡" prop="time">
+            <el-input v-model="form.time" placeholder="璇疯緭鍏ユ帓鐝棩鏈�" style="width:200px" />
+          </el-form-item>
+          <el-form-item label="鏄熸湡" prop="week">
+            <el-input v-model="form.week" placeholder="璇疯緭鍏ユ槦鏈�" style="width:200px" />
+          </el-form-item>
+          <el-form-item label="涓婂崍/涓嬪崍" prop="daty">
+            <el-input v-model="form.daty" placeholder="璇疯緭鍏ヤ笂鍗�/涓嬪崍" style="width:200px" />
+          </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+          <el-button @click="cancel">鍙� 娑�</el-button>
+        </div>
+      </el-dialog>
+    </div>
+  </template>
+  
+  <script>
+  import {
+    
+  } from "@/api/hosp/rules";
+  
+  export default {
+    name: "Rules",
+    dicts: ["tj_rule_sex"],
+    data() {
+      return {
+        dataList:[{
+            newID:1,
+            name:"灏忓紶",
+            sex:"1",
+            dept:"澶栫",
+            time:"2023-11-15",
+            daty:"鍏ㄥぉ",
+            week:"鏄熸湡浜�"
+        }],
+        // 閬僵灞�
+        loading: true,
+        // 閫変腑鏁扮粍
+        ids: [],
+        // 闈炲崟涓鐢�
+        single: true,
+        // 闈炲涓鐢�
+        multiple: true,
+        // 鏄剧ず鎼滅储鏉′欢
+        showSearch: true,
+        // 鎬绘潯鏁�
+        total: 0,
+        createTimeList: null,
+        // 寮瑰嚭灞傛爣棰�
+        title: "",
+        // 鏄惁鏄剧ず寮瑰嚭灞�
+        open: false,
+        // 鏌ヨ鍙傛暟
+        queryParams: {
+          pageNum: 1,
+          pageSize: 10,
+        },
+        // 琛ㄥ崟鍙傛暟
+        form: {},
+        // 琛ㄥ崟鏍¢獙
+        rules: {
+          ageGt: [
+            { required: true, message: "椤圭洰鍚嶄笉鑳戒负绌�", trigger: "change" },
+          ],
+        },
+        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]);
+                        },
+                    },
+                ],
+            },
+      };
+    },
+    watch: {
+     
+  
+    },
+    created() {
+        this.getNowTime();
+      this.getList();
+    },
+    methods: {
+          //澶勭悊榛樿閫変腑褰撳墠鏃ユ湡
+          getNowTime() {
+            var curDate = new Date().getTime();
+            var dayNum = 3 * 24 * 3600 * 1000;
+            var threeDays = curDate - dayNum;
+            var sDay = this.getLocalTime(threeDays);
+            var end = this.getLocalTime(curDate);
+            this.finishTimeList = [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();
+            return y + "-" + this.add0(m) + "-" + this.add0(d);
+        },
+
+      getList() {
+      this.loading = false
+      },
+   
+     
+      // 鍙栨秷鎸夐挳
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 琛ㄥ崟閲嶇疆
+      reset() {
+        this.form = {
+         
+        };
+        this.resetForm("form");
+      },
+      /** 鎼滅储鎸夐挳鎿嶄綔 */
+      handleQuery() {
+        this.queryParams.pageNum = 1;
+        this.getList();
+      },
+      /** 閲嶇疆鎸夐挳鎿嶄綔 */
+      resetQuery() {
+        this.resetForm("queryForm");
+        this.handleQuery();
+      },
+      // 澶氶�夋閫変腑鏁版嵁
+      handleSelectionChange(selection) {
+        this.ids = selection.map((item) => item.aid);
+        this.single = selection.length !== 1;
+        this.multiple = !selection.length;
+      },
+      /** 鏂板鎸夐挳鎿嶄綔 */
+      handleAdd() {
+       this.open = true
+      },
+    
+      /** 淇敼鎸夐挳鎿嶄綔 */
+      handleUpdate(row) {
+        this.open = true
+        this.form = row
+      },
+      /** 鎻愪氦鎸夐挳 */
+      submitForm() {
+        
+      },
+      /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+      handleDelete(row) {
+        
+      },
+    },
+  };
+  </script>
+  <style scoped>
+  .pag {
+    width: 100%;
+    display: flex;
+    justify-content: center;
+  }
+  
+  .pag1 {
+    width: 30%;
+  }
+  </style>
+  
\ No newline at end of file
diff --git a/src/views/standard/renshunum/index.vue b/src/views/standard/renshunum/index.vue
new file mode 100644
index 0000000..524fc9f
--- /dev/null
+++ b/src/views/standard/renshunum/index.vue
@@ -0,0 +1,134 @@
+<template>
+    <div>
+        <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin: 10px 10px">
+            <el-form-item label="浣撴鏃堕棿" prop="date">
+                <el-date-picker v-model="value1" type="date" placeholder="閫夋嫨鏃ユ湡">
+                </el-date-picker>
+            </el-form-item>
+            <el-form-item>
+                <el-button type="primary" @click="submitForm">鎼滅储</el-button>
+            </el-form-item>
+        </el-form>
+
+        <div class="data-view">
+            <div id="main"></div>
+        </div>
+    </div>
+</template>
+    
+        
+<script>
+import { GetChartByDate } from "@/api/count/chart";
+const echarts = require("echarts/lib/echarts");
+require("echarts/lib/component/title");
+require("echarts/lib/component/tooltip");
+require("echarts/lib/component/legend");
+require("echarts/lib/chart/pie");
+
+export default {
+    name: "chart",
+    data() {
+        return {
+            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]);
+                    }
+                }]
+            },
+            value1: "",
+            DateList: [],
+            startTime: "",
+            dateAll: [],
+            queryParams: {
+                date: null,
+                startDate: null,
+                endDate: null,
+            },
+        };
+    },
+
+
+    methods: {
+        getList() {
+            this.queryParams.startDate = this.startTime[0];
+            this.queryParams.endDate = this.startTime[1];
+            let myChart = this.$echarts.init(document.getElementById("main"));
+            //浣犺繘鍏ラ〉闈㈠厛鎶婂浘琛ㄦ覆鏌撲簡  鐒跺悗鎵嶈幏鍙栫殑鏁版嵁鎶�
+            myChart.setOption({
+                color: ['#5470c6'],
+                legend: {},
+                tooltip: {},
+                xAxis: {
+                    type: 'category',
+                    data: ['浣撴浜烘暟', '鐢风敓鏁伴噺', '濂崇敓鏁伴噺', '鏀跺叆', '涓浜烘暟', '鍗曚綅浣撴浜烘暟']
+                },
+                yAxis: {
+                    type: 'value'
+                },
+                series: [
+                    {
+                        data: [120, 80, 40, {
+                            value: 380,
+                            itemStyle: {
+                                color: '#a90000'
+                            }
+                        }, 100, 200],
+                        type: 'bar'
+                    }
+                ]
+            });
+
+        },
+        // 鏃堕棿
+        dateChangebirthday1(val) {
+            this.startTime = val;
+        },
+
+        // 鎼滅储
+        submitForm() {
+            this.queryParams.pageNum = 1;
+            this.getList();
+        },
+    },
+
+    mounted() {
+        this.getList();
+    },
+};
+</script>
+<style>
+.data-view {
+    margin: 5px 15px;
+    height: 580px;
+}
+
+#main {
+    padding: 10px;
+    height: 580px;
+    background-color: #fff;
+}
+</style>
+    
+    
+        
\ No newline at end of file
diff --git a/src/views/standard/tijiancom/index.vue b/src/views/standard/tijiancom/index.vue
new file mode 100644
index 0000000..8a3eac3
--- /dev/null
+++ b/src/views/standard/tijiancom/index.vue
@@ -0,0 +1,150 @@
+<template>
+    <div>
+        <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin: 10px 10px">
+            <el-form-item label="缁熻鍖洪棿" prop="date">
+                <el-date-picker v-model="value1" type="datetimerange" align="right" start-placeholder="寮�濮嬫棩鏈�"
+                    :picker-options="pickerOptions" 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" @click="submitForm">鎼滅储</el-button>
+            </el-form-item>
+        </el-form>
+
+        <div class="data-view">
+            <div id="main"></div>
+        </div>
+    </div>
+</template>
+    
+        
+<script>
+import { GetChartByDate } from "@/api/count/chart";
+const echarts = require("echarts/lib/echarts");
+require("echarts/lib/component/title");
+require("echarts/lib/component/tooltip");
+require("echarts/lib/component/legend");
+require("echarts/lib/chart/pie");
+
+export default {
+    name: "chart",
+    data() {
+        return {
+            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]);
+                    }
+                }]
+            },
+            value1: "",
+            DateList: [],
+            startTime: "",
+            dateAll: [],
+            queryParams: {
+                date: null,
+                startDate: null,
+                endDate: null,
+            },
+        };
+    },
+
+
+    methods: {
+        getList() {
+            this.queryParams.startDate = this.startTime[0];
+            this.queryParams.endDate = this.startTime[1];
+            let myChart = this.$echarts.init(document.getElementById("main"));
+            //浣犺繘鍏ラ〉闈㈠厛鎶婂浘琛ㄦ覆鏌撲簡  鐒跺悗鎵嶈幏鍙栫殑鏁版嵁鎶�
+            myChart.setOption({
+               
+                tooltip: {},
+                xAxis: {
+                    type: 'category',
+                    data: ['涓�鑸鏌�','澶栫','鍐呯', '鍖栭獙绉�', '妫�楠岀', '蹇冪數鍥惧','濡囩','B瓒呭','鏂扮敓鍎跨', '鍎跨绉�']
+                },
+                yAxis: {
+                    type: 'value'
+                },
+                legend: {
+                    data: ['鍓╀綑浣撴浜烘暟', '宸插畬鎴愪綋妫�浜烘暟']
+                },
+
+                series: [{
+                    name: '鍓╀綑浣撴浜烘暟',
+                    color: ['#2f4554'],
+                    data: [100, 150, 120, 90, 50, 130, 110,80,90,100],
+                    type: 'bar',
+                    label: {
+                        // show: true,
+                        position: 'right'
+                    }
+                },
+                {
+                    name: '宸插畬鎴愪綋妫�浜烘暟',
+                    color: ['#c23531'],
+                    data: [120, 130, 110, 70, 60, 110, 140,80,90,80],
+                    type: 'bar',
+                    label: {
+                        // show: true,
+                        position: 'right'
+                    }
+                }]
+
+
+            });
+
+        },
+        // 鏃堕棿
+        dateChangebirthday1(val) {
+            this.startTime = val;
+        },
+
+        // 鎼滅储
+        submitForm() {
+            this.queryParams.pageNum = 1;
+            this.getList();
+        },
+    },
+
+    mounted() {
+        this.getList();
+    },
+};
+</script>
+<style>
+.data-view {
+    margin: 5px 15px;
+    height: 580px;
+}
+
+#main {
+    padding: 10px;
+    height: 580px;
+    background-color: #fff;
+}
+</style>
+    
+    
+        
\ No newline at end of file
diff --git a/src/views/standard/tijianxinxi/index.vue b/src/views/standard/tijianxinxi/index.vue
new file mode 100644
index 0000000..3606ea8
--- /dev/null
+++ b/src/views/standard/tijianxinxi/index.vue
@@ -0,0 +1,388 @@
+<template>
+    <div class="app-container">
+      <el-row :gutter="18">
+        <el-col :span="6" :xs="18">
+          <div class="head-container">
+            <el-input v-model="deptName" placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" clearable size="small" prefix-icon="el-icon-search"
+              style="margin-bottom: 15px" />
+          </div>
+          <div class="head-container">
+            <el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false"
+              :filter-node-method="filterNode" ref="tree" node-key="id" :default-expanded-keys="treeId" highlight-current
+              @node-click="handleNodeClick" />
+          </div>
+        </el-col>
+        <el-col :span="18" :xs="18">
+          <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+            <!-- <el-form-item label="椤圭洰鍚嶇О" prop="proName">
+              <el-input v-model="queryParams.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable @keyup.enter.native="handleQuery" />
+            </el-form-item>
+            <el-form-item label="妫�鏌ョ被鍒�" prop="checkType">
+              <el-input v-model="queryParams.checkType" placeholder="璇疯緭鍏ユ鏌ョ被鍒�" clearable @keyup.enter.native="handleQuery" />
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+              <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+            </el-form-item> -->
+          </el-form>
+  
+          <el-table v-if="refreshTable" v-loading="loading" :data="projectList" ref="tableRef" border row-key="proId"
+            :expand-row-keys="ListId" :row-class-name="selectSingleRow"
+            :tree-props="{ children: 'tjProjectList', hasChildren: 'tjProjectList.length>0', }">
+            <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName"  />
+            <el-table-column label="宸叉浜烘暟" align="center" prop="a"  />
+            <el-table-column label="鏈浜烘暟" align="center" prop="b"  />
+            <el-table-column label="寤舵湡浜烘暟" align="center" prop="c"  />
+            <el-table-column label="寮冩浜烘暟" align="center" prop="d" />
+          </el-table>
+        </el-col>
+      </el-row>
+    </div>
+  </template>
+  
+  <script>
+  import {
+    getProject,
+    delProject,
+    addProject,
+    updateProject,
+    ProjectTree,
+    deptTree,
+  } from "@/api/hosp/project";
+  import { listDept } from "@/api/system/dept";
+  import Treeselect from "@riophae/vue-treeselect";
+  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+  import IconSelect from "@/components/IconSelect";
+  import { listConsumables } from "@/api/hosp/consumables";
+  import { Message } from "element-ui";
+  import {
+    listSfxm,
+    getSfxm,
+    delSfxm,
+    addSfxm,
+    updateSfxm,
+    gettreeList,
+    getListByXmId
+  } from "@/api/system/sfxm";
+  
+  export default {
+    name: "Project",
+    dicts: ["sys_normal_disable", "dict_personnel_type", "sys_user_sex", "tj_result_type", "dis_sampling_tab", "sys_dict_specimen", "sys_dict_position", "tj_result_type","sys_yes_no"],
+    components: { Treeselect, IconSelect },
+    data() {
+      return {
+        // 閮ㄩ棬鏍戦�夐」
+        deptOptions: undefined,
+        dialogTableVisible: false,
+        sfxmList: [],
+        deptOptionstree: [],
+        defaultPropstree: {
+          children: "dictSfxms",
+          label: "xmmc",
+        },
+        xmmc: "",
+        chargeId: [],
+        List: false,
+        // 閮ㄩ棬鍚嶇О
+        deptName: "",
+        deptOption: [],
+        ChangeList: [],
+        // 閬僵灞�
+        loading: true,
+        key: "",
+        // 閫変腑鏁扮粍
+        ids: [],
+        // 闈炲崟涓鐢�
+        single: true,
+        // 闈炲涓鐢�
+        multiple: true,
+        // 鏄剧ず鎼滅储鏉′欢
+        showSearch: true,
+        // 鎬绘潯鏁�
+        total: 0,
+        treeId: [],
+        ListId: [],
+        // 浣撴鑰楁潗琛ㄦ牸鏁版嵁
+        consumableList: [],
+        tjStandardList: [],
+        // 琛ㄦ牸鏍戞暟鎹�
+        deptList: [],
+        parentNameList: [],
+        sfxmId:null,
+        // 浣撴椤圭洰琛ㄦ牸鏁版嵁
+        projectList: [],
+        // 鑿滃崟鏍戦�夐」
+        projectOptions: [],
+        // 寮瑰嚭灞傛爣棰�
+        title: "",
+        // 鏄惁鏄剧ず寮瑰嚭灞�
+        open: false,
+        // 鏄惁灞曞紑锛岄粯璁ゅ叏閮ㄦ姌鍙�
+        isExpandAll: false,
+        showPrise: false,
+        showRentPrise: false,
+        defaultProps: {
+          children: "children",
+          label: "label",
+        },
+        id:"",
+        // 閲嶆柊娓叉煋琛ㄦ牸鐘舵��
+        refreshTable: true,
+        // 鏌ヨ鍙傛暟
+        queryParams: {
+          // pageNum: 1,
+          // pageSize: 10,
+          proName: null,
+          proEngName: null,
+          checkType: null,
+          deptId: undefined,
+        },
+        querycharge: {
+          pageNum: 1,
+          pageSize: 50,
+          xmmc: null,
+          pym: null,
+        },
+        queryParam: {
+          page: 1,
+          pageSize: 10,
+          id: null,
+        },
+        // 琛ㄥ崟鍙傛暟
+        form: {},
+        // 琛ㄥ崟鏍¢獙
+        rules: {
+          createTime: [
+            { required: true, message: "鍒涘缓鏃堕棿涓嶈兘涓虹┖", trigger: "blur" },
+          ],
+          updateTime: [
+            { required: true, message: "淇敼鏃堕棿涓嶈兘涓虹┖", trigger: "blur" },
+          ],
+          deleted: [
+            { required: true, message: "鍒犻櫎鏍囪涓嶈兘涓虹┖", trigger: "blur" },
+          ],
+          proName: [
+            { required: true, message: "椤圭洰鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
+          ],
+          proPrice: [
+            { required: true, message: "椤圭洰浠锋牸涓嶈兘涓虹┖", trigger: "blur" },
+          ],
+          deptName: [
+            { required: true, message: "绉戝鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
+          ],
+          // proStandard: [
+          //   { required: true, message: "椤圭洰鏍囧噯鍊间笉鑳戒负绌�", trigger: "blur" },
+          // ],
+        },
+      };
+    },
+    watch: {
+      // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲
+      deptName(val) {
+        this.$refs.tree.filter(val);
+      },
+      treeId(newVal, oldVal) {
+        if (newVal) {
+          this.$nextTick(() => {
+            document
+              .querySelector('.el-tree-node__children .el-tree-node__content')
+              .click();
+          });
+        }
+      },
+      // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲
+      xmmc(val) {
+        this.$refs.tree.filter(val);
+      },
+      chargeId(newVal, oldVal) {
+        if (newVal) {
+          this.$nextTick(() => {
+            // document.getElementById("changtree").click();;
+            document
+              .querySelector('#changtree .el-tree-node__children .el-tree-node.is-focusable .el-tree-node__content')
+              .click();
+          });
+        }
+      }
+    },
+  
+    created() {
+      this.getDeptList();
+      this.getDeptTree();
+    },
+    methods: {
+   
+      //鏄惁鏄剧ず閫変腑鐨勫��
+      display(value) { },
+      /** 鏌ヨ浣撴椤圭洰鍒楄〃 */
+      getList() {  
+        this.loading = true;
+        let data = {
+          proName: this.queryParams.proName,
+          checkType: this.queryParams.checkType,
+          deptId: this.queryParams.deptId,
+        };
+        ProjectTree(data).then((response) => {
+          this.projectList = this.handleTree(response.data.list, "proId");
+          this.projectList.forEach(element => {
+            element.a="0"
+            element.b=0
+            element.c="0"
+            element.d="0"
+            element.tjProjectList.forEach(item => {
+                item.a="0"
+                item.b=0
+                item.c="0"
+                item.d="0"
+            })
+          });
+          this.loading = false;
+        });
+      },  
+   
+   
+      // // 鏌ヨ浣撴椤圭洰鍒楄〃(鏍戝舰缁撴瀯)
+      getData() {
+        /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
+        ProjectTree().then((response) => {
+          this.projectOptions = [];
+          const project = { proId: 0, proName: "涓荤被鐩�", children: [] };
+          project.children = this.handleTree(response.data.list, "proId");
+          this.key = response.data.key
+          // if (this.key == "Y") {
+          //   this.key = response.data.key
+          // } else if (response.data.key == "N") {
+          //   this.key = response.data.key
+          // }
+          this.projectOptions.push(project);      
+        });
+      },
+      /** 鏌ヨ閮ㄩ棬鍒楄〃 */
+      getDeptList() {
+        listDept(this.queryParams).then((response) => {
+          console.log(response)
+          this.parentNameList = response.data;
+          this.deptList = this.handleTree(response.data, "proId");
+        });
+      },
+      /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
+      getDeptTree() {
+        deptTree().then((response) => {
+          this.deptOptions = response.data;
+          this.treeId.push(this.deptOptions[0].id)
+        });
+      },
+  
+      // 绛涢�夎妭鐐�
+      filterNode2(value, data) {
+        if (!value) return true;
+        return data.xmmc.indexOf(value) !== -1;
+      },
+      // 绛涢�夎妭鐐�
+      filterNode(value, data) {
+        if (!value) return true;
+        return data.label.indexOf(value) !== -1;
+      },
+      // 鑺傜偣鍗曞嚮浜嬩欢
+      handleNodeClick(date) {
+        this.id = date.id;
+        this.queryParams.deptId = date.id;
+        let data = {
+          deptId: this.queryParams.deptId,
+        };
+        ProjectTree(data).then((response) => {
+          this.projectList = this.handleTree(response.data.list, "proId");
+          this.projectList.forEach(element => {
+            element.a="0"
+            element.b=0
+            element.c="0"
+            element.d="0"
+            element.tjProjectList.forEach(item => {
+                item.a="0"
+                item.b=0
+                item.c="0"
+                item.d="0"
+            })
+          });
+         
+          this.ListId.push(this.projectList[0].proId)
+          this.key = response.data.key
+          // if (this.key == "Y") {
+          //   this.key = response.data.key
+          // } else if (response.data.key == "N") {
+          //   this.key = response.data.key
+          // }
+          this.loading = false;
+        });
+      },
+      selectSingleRow({ row, rowIndex }) {
+        if (rowIndex === 1) {
+          return 'warning-row';
+        }
+        return '';
+      },
+
+
+      // 琛ㄥ崟閲嶇疆
+      reset() {
+        this.form = {
+          proParentId: null,
+          proName: null,
+          proEngName: null,
+          proPrice: "0.00",
+          proRemark: null,
+          createBy: null,
+          createTime: null,
+          updateBy: null,
+          updateTime: null,
+          deleted: null,
+          proCheckType: null,
+          proMeaning: null,
+          proCheckMethod: null,
+          proStandard: null,
+          proScope: null,
+          proType: null,
+          deptId: null,
+          deptName: null,
+          consumablesList: [],
+          tjStandardList: [],
+          proStatus: "鍚敤",
+        };
+        this.resetForm("form");
+      },
+     
+
+    },
+  }
+  
+  </script>
+  <style scoped>
+  .el-table__header-wrapper .el-checkbox {
+    display: none;
+  }
+  
+  .pag {
+    display: flex;
+    justify-content: center;
+  }
+  
+  .pag1 {
+    width: 40%;
+  }
+  
+  .dialog-footer {
+    position: absolute;
+    left: 40%;
+    bottom: 3%;
+  }
+  
+  .el-table .warning-row {
+    background: #e5f3ff;
+  }
+  
+  .el-tree-node.is-current>.el-tree-node__content {
+    background-color: #e5f3ff !important;
+    color: #333 !important
+  }
+  </style>
+  
\ No newline at end of file
diff --git a/src/views/standard/tijianxinxichakan/index.vue b/src/views/standard/tijianxinxichakan/index.vue
new file mode 100644
index 0000000..13aff26
--- /dev/null
+++ b/src/views/standard/tijianxinxichakan/index.vue
@@ -0,0 +1,618 @@
+<template>
+    <div class="app-container">
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+            <el-form-item label="浣撴鍙�" prop="tjNum">
+                <el-input ref="inputName" v-model="queryParams.tjNum" placeholder="璇疯緭鍏ヤ綋妫�鍙�" style="width: 170px" clearable
+                    @keyup.enter.native="handleQuery" />
+            </el-form-item>
+            <el-form-item>
+                <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+                <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+            </el-form-item>
+        </el-form>
+
+        <template>
+            <h4 v-if="tjCustomerName">濮撳悕锛歿{tjCustomerName }}</h4>
+            <el-table border v-loading="loading" :data="orderList" >
+                <el-table-column label="搴忓彿" align="center" prop="newID"  />
+               
+
+                <el-table-column label="浣撴鍙�" align="center" prop="tjNumber" />
+                <el-table-column label="宸插畬鎴愰」鐩�" align="center" prop="tjNumber" /> <el-table-column label="鏈畬鎴愰」鐩�"
+                    align="center" prop="tjNumber" /> 
+                    <el-table-column label="寮冩椤圭洰" align="center" prop="tjNumber" />
+                <el-table-column label="寤舵湡椤圭洰" align="center" prop="tjNumber" />
+
+            </el-table>
+        </template>
+
+        <div class="pag">
+            <div class="pag1">
+                <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                    :current-page="queryParams.pageNum" :page-sizes="[10, 20, 30, 40]" :page-size="queryParams.pageSize"
+                    layout="total, sizes, prev, pager, next, jumper" :total="total">
+                </el-pagination>
+                <!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+            @pagination="getList" /> -->
+            </div>
+        </div>
+    </div>
+</template>
+  
+<script>
+import {
+    listOrder,
+    getNumber,
+    hasReportEnd,
+    hasReport,
+    gettoPdf,
+    getPdf,
+    getOrderList,
+} from "@/api/hosp/order";
+import { getwater } from "@/api/hosp/customer";
+import ViewPdf from "@/components/ViewPdf";
+import { projectGetList, getaddtTransition } from "@/api/system/tijian";
+export default {
+    components: {
+        ViewPdf,
+    },
+    dicts: ["dict_pay_type"],
+    name: "Order",
+    data() {
+        return {
+            tjCustomerName: "",
+            orderIds: "",
+            tjnumbers: "",
+            cusIds: "",
+            userIds: "",
+            cusIdcard: "",
+            cusName: "",
+            cusPhone: "",
+            cusSex: "",
+            reportTimeList: "",
+            createTimeList: "",
+            cusId: "",
+            payType: "0",
+            dialogVisible: false,
+            daoZhenDan: false,
+            Projectopen: false,
+            Projectopen1: false,
+            src: "",
+            url: "",
+            flag: true,
+            bill: null,
+            Treedata: [],
+            defaultProps: {
+                children: "tjProjectList",
+                label: "proName",
+            },
+            discount: 10,
+            DataList: [],
+            // 濂楅鎻愪氦鎸夐挳
+            confirm: false,
+            list1: true,
+            activeName: "1",
+            proIds: [],
+            TotalPrice1: 0,
+            numberList: [],
+            dialogVisible: false,
+            // 閬僵灞�
+            loading: false,
+            // 閫変腑鏁扮粍
+            ids: [],
+            // 闈炲崟涓鐢�
+            single: true,
+            // 闈炲涓鐢�
+            multiple: true,
+            // 鏄剧ず鎼滅储鏉′欢
+            showSearch: true,
+            userId: "",
+            // 鎬绘潯鏁�
+            total: 0,
+            // 浣撴璁板綍琛ㄦ牸鏁版嵁
+            orderList: [],
+            // 寮瑰嚭灞傛爣棰�
+            title: "",
+            orderId: "",
+            // 鏄惁鏄剧ず寮瑰嚭灞�
+            open: false,
+            // 鏃ユ湡鑼冨洿
+            datetimerange: [],
+            // 鏌ヨ鍙傛暟
+            queryParams: {
+                pageNum: 1,
+                pageSize: 10,
+                djbeginTime: null,
+                djendTime: null,
+                tjNum: null,
+                bgbeginTime: null,
+                bgendTime: null,
+            },
+            startTime: "",
+            startTime1: "",
+            // 琛ㄥ崟鍙傛暟
+            form: {
+                tjType: 2,
+            },
+            // 琛ㄥ崟鏍¢獙
+            rules: {},
+            pickerOptions: {
+                shortcuts: [
+                    {
+                        text: "鏈�杩戜竴鍛�",
+                        onClick(picker) {
+                            const end = new Date();
+                            const start = new Date(new Date().setHours(0, 0, 0, 0));
+                            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+                            picker.$emit("pick", [start, end]);
+                        },
+                    },
+                    {
+                        text: "鏈�杩戜竴涓湀",
+                        onClick(picker) {
+                            const end = new Date();
+                            const start = new Date(new Date().setHours(0, 0, 0, 0));
+                            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+                            picker.$emit("pick", [start, end]);
+                        },
+                    },
+                    {
+                        text: "鏈�杩戜笁涓湀",
+                        onClick(picker) {
+                            const end = new Date();
+                            const start = new Date(new Date().setHours(0, 0, 0, 0));
+                            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+                            picker.$emit("pick", [start, end]);
+                        },
+                    },
+                ],
+            },
+        };
+    },
+    created() {
+    //    this.getList()
+    },
+    mounted() {
+        this.$nextTick(() => {
+            this.$refs.inputName.focus();
+        });
+    },
+    methods: {
+        // / 澶勭悊榛樿閫変腑褰撳墠鏃ユ湡
+        getNowTime() {
+            var curDate = new Date(new Date().setHours(0, 0, 0, 0)).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;
+        },
+        dateChangebirthday2(val) {
+            this.startTime1 = val;
+        },
+        /** 鏌ヨ浣撴璁板綍鍒楄〃 */
+        getList() {
+            this.queryParams.djbeginTime = this.startTime[0];
+            this.queryParams.djendTime = this.startTime[1];
+            this.loading = true;
+            getOrderList(this.queryParams).then((response) => {
+                this.orderList = response.data.list;
+                if (this.orderList) {
+                    this.orderList.forEach((item, index) => {
+                        if(this.queryParams.tjNum){
+                            this.tjCustomerName = item.tjCustomerName
+                        }else{
+                            this.tjCustomerName = ""
+                        }
+                        
+                        item.newID =
+                            (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
+                            index +
+                            1;
+                    });
+                }
+                this.total = response.data.total;
+                this.loading = false;
+            });
+        },
+        /** 鐐瑰嚮鏄剧ず瀵兼鍗曟姤琛�*/ //lige    寮�濮�
+        handleReport(row) {
+            const tjNumber = row.tjNumber;
+            const viewNum = "792931586196398080";
+            const params = { viewNum, tjNumber };
+            hasReport(tjNumber).then((res) => {
+                if (res == 1) {
+                    this.$tab.openPage("瀵艰瘖鍗�", "/report/breDailyReport", params);
+                } else {
+                    this.$message.error("璇ョ敤鎴锋殏鏃犻」鐩紒");
+                }
+            });
+        },
+        /** 鐐瑰嚮鏄剧ず瀵兼鍗曟姤琛�*/ //lige    寮�濮�
+        handleReport1(row) {
+            const tjNumber = this.tjnumbers;
+            const viewNum = "792931586196398080";
+            const params = { viewNum, tjNumber };
+            hasReport(tjNumber).then((res) => {
+                if (res == 1) {
+                    this.$tab.openPage("瀵艰瘖鍗�", "/report/breDailyReport", params);
+                } else {
+                    this.$message.error("璇ョ敤鎴锋殏鏃犻」鐩紒");
+                }
+            });
+        },
+  
+        //lige   缁撴潫
+        viewReport(row) {
+            const tjNumber = row.tjNumber;
+            const flag = true;
+            getPdf(tjNumber, flag).then((response) => {
+                if (response.size === 0) {
+                    this.$message.error("璇ョ敤鎴蜂綋妫�鎶ュ憡鏆傛湭瀹屾垚锛�");
+                    this.dialogVisible = false;
+                } else {
+                    this.dialogVisible = true;
+                    this.url = window.webkitURL.createObjectURL(response); //灏嗗悗绔繑鍥炵殑blob鏂囦欢璇诲彇鍑簎rl
+                }
+            });
+        },
+
+ 
+
+        handleSizeChange(val) {
+            this.queryParams.pageNum = 1;
+            this.queryParams.pageSize = val;
+            this.getList();
+        },
+        handleCurrentChange(val) {
+            this.queryParams.pageNum = val;
+            this.getList();
+        },
+
+        // 鍙栨秷鎸夐挳
+        cancel() {
+            this.open = false;
+            this.reset();
+        },
+        // 琛ㄥ崟閲嶇疆
+        reset() {
+            this.form = {
+                orderId: null,
+                userId: null,
+                tjType: null,
+                tjNumber: null,
+                tjSerialNumber: null,
+                pacId: null,
+                createTime: null,
+                finishTime: null,
+                updateTime: null,
+                reportTime: null,
+                createBy: null,
+                updateBy: null,
+                deleted: null,
+                firmId: null,
+                firmDeptName: null,
+                firmWorkId: null,
+                photo: null,
+                djbeginTime: null,
+                djendTime: null,
+                bgbeginTime: null,
+                bgendTime: null,
+            };
+            this.resetForm("form");
+        },
+        /** 鎼滅储鎸夐挳鎿嶄綔 */
+        handleQuery() {
+            this.queryParams.pageNum = 1;
+            this.getList();
+        },
+        /** 閲嶇疆鎸夐挳鎿嶄綔 */
+        resetQuery() {
+            this.resetForm("queryForm");
+            this.orderList =[];
+            this.tjCustomerName= ""
+        },
+        // 澶氶�夋閫変腑鏁版嵁
+        handleSelectionChange(selection) {
+            selection.forEach((item) => {
+                this.orderIds = item.orderId;
+                this.tjnumbers = item.tjNumber;
+                this.cusIds = item.tjCusIdCard;
+                this.userIds = item.userId;
+                this.cusIdcard = item.tjCusIdCard;
+                this.cusName = item.tjCustomerName;
+                this.cusPhone = item.tjCustomerPhone;
+                this.cusSex = item.tjCustomerSex;
+            });
+            this.ids = selection.map((item) => item.orderId);
+            // this.tjNumbers = selection.map((item) => item.tjNumber);
+            this.single = selection.length !== 1;
+            this.multiple = !selection.length;
+        },
+        /** 鏂板鎸夐挳鎿嶄綔 */
+        // handleAdd() {
+        //   this.reset();
+        //   this.open = true;
+        //   this.title = "娣诲姞浣撴璁板綍";
+        // },
+
+        /** 璁㈠崟娴佹按鎸夐挳 */
+        handleUpdate(row) {
+            const tjNumber = row.tjNumber;
+            this.open = true;
+            getNumber(tjNumber).then((response) => {
+                // this.form = response.data;
+                this.numberList = response.data.charging;
+                this.bill = response.data.water;
+                this.title = "璁㈠崟娴佹按";
+            });
+        },
+        /** 璁㈠崟鏄庣粏鎸夐挳 */
+        handleUpdate1(row) {
+            const tjNumber = this.tjnumbers;
+            this.open = true;
+            getNumber(tjNumber).then((response) => {
+                // this.form = response.data;
+                this.numberList = response.data.charging;
+                this.bill = response.data.water;
+                this.title = "璁㈠崟娴佹按";
+            });
+        },
+
+        // 琛ュ綍椤圭洰
+        handleProject(row) {
+            this.orderId = row.orderId;
+            this.cusId = row.tjCusIdCard;
+            this.userId = row.userId;
+            this.customer = {
+                cusIdcard: row.tjCusIdCard,
+                cusName: row.tjCustomerName,
+                cusPhone: row.tjCustomerPhone,
+                cusSex: row.tjCustomerSex,
+            };
+            if (row.tjType) {
+                this.form.tjType = parseInt(row.tjType);
+            } else {
+                this.form.tjType = 0;
+            }
+            /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
+            projectGetList().then((response) => {
+                this.Treedata = response.data.list;
+            });
+            this.Projectopen = true;
+            this.title = "琛ュ綍椤圭洰";
+        },
+        // 琛ュ綍椤圭洰
+        handleProject1(row) {
+            this.orderId = this.ids;
+            this.cusId = this.cusIds;
+            this.userId = this.userIds;
+            this.customer = {
+                cusIdcard: this.cusIdcard,
+                cusName: this.cusName,
+                cusPhone: this.cusPhone,
+                cusSex: this.cusSex,
+            };
+            if (row.tjType) {
+                this.form.tjType = parseInt(row.tjType);
+            } else {
+                this.form.tjType = 0;
+            }
+            /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
+            projectGetList().then((response) => {
+                this.Treedata = response.data.list;
+            });
+            this.Projectopen1 = true;
+            this.title = "琛ュ綍椤圭洰";
+        },
+        // 鐐瑰嚮鑾峰彇姣忎釜鏍戣妭鐐�
+        handleCurrentChecked(data, checked, checkedNodes) {
+            if (!data.tjProjectList) {
+                return;
+            }
+            if (checked === true) {
+                this.DataList.push(data);
+            } else {
+                this.DataList.pop(data);
+                this.list1 = true;
+            }
+            // let DataList = selectedobj.checkedNodes
+            // if (DataList.length>0) {
+            //   DataList.forEach(item => {
+            //     if (nodeobj.proId === item.proId) {
+            //       this.DataList = []
+            //       this.DataList.push(item)
+
+            //       this.list1 = false;
+            //     }
+            //   })
+            // }else{
+            //   this.DataList = []
+            //   this.list1 = true;
+            // }
+            this.TotalPrice1 = 0;
+            this.proIds = [];
+            if (this.DataList.length != 0) {
+                this.list1 = false;
+                this.DataList.forEach((item) => {
+                    this.TotalPrice1 = item.proPrice + this.TotalPrice1;
+                    this.proIds.push(item.proId);
+                });
+            }
+        },
+
+        // 鏀惰垂鎸夐挳
+        submitPrice() {
+            let data = {
+                cusId: this.cusId,
+                proIds: this.proIds,
+            };
+            getaddtTransition(data).then((response) => {
+                if (response.code === 200) {
+                    let tjType = this.form.tjType;
+                    let copeWith = this.TotalPrice1;
+                    let paidIn = copeWith * (this.discount / 10);
+                    let discount = this.discount;
+                    let data = {
+                        customer: this.customer,
+                        paidIn,
+                        discount,
+                        copeWith,
+                        tjType,
+                        orderId: this.orderId,
+                        tjProIds: this.proIds,
+                        payType: this.payType,
+                    };
+                    getwater(data).then((res) => {
+                        this.$modal.msgSuccess("鎻愪氦鎴愬姛");
+                        this.mobanId = res.data.mobanId;
+                        this.waterId = res.data.waterId;
+                        const tjnumber = this.waterId;
+                        const viewNum = this.mobanId;
+                        const params = { viewNum, tjnumber };
+                        this.$tab.openPage("鏀舵灏忕エ", "/report/charge", params);
+                        this.Projectopen = false;
+                    });
+                }
+            });
+        },
+        // 鏀惰垂鎸夐挳
+        submitPrice1() {
+            let data = {
+                cusId: this.cusIds,
+                proIds: this.proIds,
+            };
+            getaddtTransition(data).then((response) => {
+                if (response.code === 200) {
+                    let tjType = this.form.tjType;
+                    let copeWith = this.TotalPrice1;
+                    let paidIn = copeWith * (this.discount / 10);
+                    let discount = this.discount;
+                    let data = {
+                        customer: this.customer,
+                        paidIn,
+                        discount,
+                        copeWith,
+                        tjType,
+                        orderId: this.orderIds,
+                        tjProIds: this.proIds,
+                        payType: this.payType,
+                    };
+                    getwater(data).then((res) => {
+                        this.$modal.msgSuccess("鎻愪氦鎴愬姛");
+                        this.mobanId = res.data.mobanId;
+                        this.waterId = res.data.waterId;
+                        const tjnumber = this.waterId;
+                        const viewNum = this.mobanId;
+                        const params = { viewNum, tjnumber };
+                        this.$tab.openPage("鏀舵灏忕エ", "/report/charge", params);
+                        this.Projectopen1 = false;
+                    });
+                }
+            });
+        },
+
+
+        /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+        handleExport() {
+            this.download(
+                "hosp/order/export",
+                {
+                    ...this.queryParams,
+                },
+                `order_${new Date().getTime()}.xlsx`
+            );
+        },
+    },
+};
+</script>
+<style lang="scss">
+.pag {
+    width: 100%;
+    display: flex;
+    justify-content: center;
+    margin-top: 15px;
+}
+
+.pag1 {
+    width: 30%;
+}
+
+.main {
+    height: 700px;
+    overflow: hidden;
+}
+
+#printIframe::-webkit-scrollbar {
+    width: 6px;
+}
+
+/* 淇敼 婊氬姩鏉$殑 涓嬮潰 鐨� 鏍峰紡 */
+#printIframe::-webkit-scrollbar-track {
+    background-color: white;
+    -webkit-border-radius: 2em;
+    -moz-border-radius: 2em;
+    border-radius: 2em;
+}
+
+/* 淇敼 婊戝潡 */
+#printIframe::-webkit-scrollbar-thumb {
+    background-color: #dcdfe6;
+    -webkit-border-radius: 2em;
+    -moz-border-radius: 2em;
+    border-radius: 2em;
+}
+
+// .el-dialog {
+//   width: 1264px;
+//   min-height: 800px;
+// }
+
+// .el-dialog__header {
+//   display: flex;
+//   justify-content: space-between;
+//   align-items: center;
+// }
+
+// .el-dialog__body {
+//   padding: 20px;
+// }
+
+.outside {
+    width: 700px;
+    display: flex;
+    margin-top: 8px;
+}
+
+.outside1 {
+    width: 700px;
+    display: flex;
+    margin-top: 8px;
+}
+</style>
+  
\ No newline at end of file
diff --git a/src/views/system/notice/index.vue b/src/views/system/notice/index.vue
index 419aec2..b911338 100644
--- a/src/views/system/notice/index.vue
+++ b/src/views/system/notice/index.vue
@@ -136,7 +136,12 @@
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="24">
+          <el-col :span="12" v-if="form.noticeType == 1">
+            <el-form-item label="閫氱煡浜哄憳" prop="noticeType">
+              <el-input v-model="form.noticeTitle" placeholder="璇疯緭鍏ラ�氱煡浜哄憳" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
             <el-form-item label="鐘舵��">
               <el-radio-group v-model="form.status">
                 <el-radio
diff --git a/vue.config.js b/vue.config.js
index 65ccafb..7282017 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -36,9 +36,9 @@
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
         //target: `https://ltpeis.xaltjdkj.cn:5501/prod-api/getInfo`,
-        target: `http://192.168.0.101:5011`,
+        // target: `http://192.168.0.100:5011`,
         // // target: `http://192.168.0.99:8080/ltkj-admin`,
-        // target: `https://ltpeis.xaltjdkj.cn:5011/ltkj-admin`,
+        target: `https://ltpeis.xaltjdkj.cn:5011/ltkj-admin`,
         changeOrigin: true,
         pathRewrite: {
           ['^' + process.env.VUE_APP_BASE_API]: ''

--
Gitblit v1.8.0