From 5771eee59795899b8adc1fe5cc51cb47bf8c7f0b Mon Sep 17 00:00:00 2001 From: su1124 <1583764726@qq.com> Date: 星期五, 26 一月 2024 18:00:23 +0800 Subject: [PATCH] su --- src/api/team/reportresults.js | 21 src/views/system/examcharge/index.vue | 1095 ++++++++++++++++++++++++------------------- src/views/team/reportresults/index.vue | 354 +++++++------ 3 files changed, 815 insertions(+), 655 deletions(-) diff --git a/src/api/team/reportresults.js b/src/api/team/reportresults.js index 7b639e5..d2cbe1c 100644 --- a/src/api/team/reportresults.js +++ b/src/api/team/reportresults.js @@ -2,9 +2,18 @@ // 鍥㈡鐥呯椤甸潰鏌ヨ浜哄憳鍒楄〃鎺ュ彛 export function getPeopleList(query) { - return request({ - url: '/group/inspection/getPeopleList', - method: 'get', - params: query - }) - } \ No newline at end of file + return request({ + url: '/group/inspection/getPeopleList', + method: 'get', + params: query + }) +} + +// 鐢熸垚缁撴灉鍒嗘瀽缁熻鍥� +export function getJieGuoFenXi(dto) { + return request({ + url: '/group/inspection/getJieGuoFenXi', + method: 'post', + data: dto + }) +} diff --git a/src/views/system/examcharge/index.vue b/src/views/system/examcharge/index.vue index 69f8d9d..f3fbfbd 100644 --- a/src/views/system/examcharge/index.vue +++ b/src/views/system/examcharge/index.vue @@ -1,5 +1,5 @@ <template> - <!-- <div class="app-container"> + <!-- <div class="app-container"> <div class="grid-content bg-purple"> <el-form :inline="true" ref="form" :model="form" class="demo-form-inline" label-width="80px" :rules="rules"> <el-form-item label="濮撳悕" prop="name"> @@ -79,529 +79,644 @@ </el-table-column> </el-table> </div> --> - <div class="app-container"> - <el-row :gutter="20"> - <!--閮ㄩ棬鏁版嵁--> - <el-col :span="8" :xs="24"> - <el-form :inline="true" ref="form" :model="form" class="demo-form-inline" label-width="86px" :rules="rules"> - <el-form-item label="濮撳悕" prop="name" style="display: flex;"> - <el-input v-model="form.name" placeholder="璇疯緭鍏ュ鍚�" /> - </el-form-item> - <el-form-item label="鑱旂郴鐢佃瘽" prop="phone" style="display: flex;"> - <el-input v-model="form.phone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" /> - </el-form-item> - <!-- @focus="hadeltjpro" --> - <el-form-item label="浣撴椤圭洰" prop="tjProName" style="display: flex;"> - <el-input ref="inputName" v-model="form.tjProName" placeholder="璇疯緭鍏ヤ綋妫�椤圭洰" /> - </el-form-item> - <el-form-item label="鏁伴噺" prop="number" style="display: flex;"> - <el-input ref="inputName" v-model="form.number" placeholder="璇疯緭鍏ユ暟閲�" /> - </el-form-item> - <el-form-item label="搴旀敹閲戦" prop="ys" style="display: flex;"> - <el-input v-model="form.ys" placeholder="閲戦"></el-input> - </el-form-item> - <el-form-item label="浼樻儬" prop="zk" style="display: flex;" label-width="103px - "> - <el-input-number v-model="form.zk" style="width:98%" :precision="2" :step="0.1" :max="10" :min="1" - disabled></el-input-number> - </el-form-item> - <el-form-item label="瀹炴敹閲戦" prop="ss" style="display: flex;"> - <el-input v-model="form.ss" placeholder="瀹炰粯" @input="numberChange"> - </el-input> - </el-form-item> - <el-form-item label="浠樻绫诲瀷" prop="type" style="display: flex;" label-width="102px"> - <el-select v-model="form.type" placeholder="璇烽�夋嫨浠樻绫诲瀷"> - <el-option v-for="dict in dict.type.dict_pay_type" :key="dict.value" :label="dict.label" - :value="dict.value"></el-option> - </el-select> - </el-form-item> - <el-form-item> - <el-button style="margin-left: 15px" type="primary" size="mini" - :disabled="disabled == 1 ? true : false" @click="SubmitEvent">鏀惰垂</el-button> - <el-button style="margin-left: 10px" type="primary" size="mini" @click="resetQuery">閲嶇疆</el-button> - </el-form-item> - </el-form> + <div class="app-container"> + <el-row :gutter="20"> + <!--閮ㄩ棬鏁版嵁--> + <el-col :span="8" :xs="24"> + <el-form + :inline="true" + ref="form" + :model="form" + class="demo-form-inline" + label-width="86px" + :rules="rules" + > + <el-form-item label="濮撳悕" prop="name" style="display: flex"> + <el-input v-model="form.name" placeholder="璇疯緭鍏ュ鍚�" /> + </el-form-item> + <el-form-item label="鑱旂郴鐢佃瘽" prop="phone" style="display: flex"> + <el-input v-model="form.phone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" /> + </el-form-item> + <!-- @focus="hadeltjpro" --> + <el-form-item label="浣撴椤圭洰" prop="tjProName" style="display: flex"> + <el-input + ref="inputName" + v-model="form.tjProName" + placeholder="璇疯緭鍏ヤ綋妫�椤圭洰" + /> + </el-form-item> + <el-form-item label="鏁伴噺" prop="number" style="display: flex"> + <el-input + ref="inputName" + v-model="form.number" + placeholder="璇疯緭鍏ユ暟閲�" + /> + </el-form-item> + <el-form-item label="搴旀敹閲戦" prop="ys" style="display: flex"> + <el-input v-model="form.ys" placeholder="閲戦"></el-input> + </el-form-item> + <el-form-item + label="浼樻儬" + prop="zk" + style="display: flex" + label-width="103px + " + > + <el-input-number + v-model="form.zk" + style="width: 98%" + :precision="2" + :step="0.1" + :max="10" + :min="1" + disabled + ></el-input-number> + </el-form-item> + <el-form-item label="瀹炴敹閲戦" prop="ss" style="display: flex"> + <el-input + v-model="form.ss" + placeholder="瀹炰粯" + @input="numberChange" + > + </el-input> + </el-form-item> + <el-form-item + label="浠樻绫诲瀷" + prop="type" + style="display: flex" + label-width="102px" + > + <el-select v-model="form.type" placeholder="璇烽�夋嫨浠樻绫诲瀷"> + <el-option + v-for="dict in dict.type.dict_pay_type" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-button + style="margin-left: 15px" + type="primary" + size="mini" + :disabled="disabled == 1 ? true : false" + @click="SubmitEvent" + >鏀惰垂</el-button + > + <el-button + style="margin-left: 10px" + type="primary" + size="mini" + @click="resetQuery" + >閲嶇疆</el-button + > + </el-form-item> + </el-form> + </el-col> + + <!--鐢ㄦ埛鏁版嵁--> + <el-col :span="15" :xs="24"> + <el-form + :inline="true" + ref="form" + :model="queryParams" + class="demo-form-inline" + label-width="90px" + > + <el-row> + <el-col :span="7"> + <el-form-item label="濮撳悕" prop="name" style="display: flex"> + <el-input v-model="queryParams.name" placeholder="璇疯緭鍏ュ鍚�" /> + </el-form-item> </el-col> - - <!--鐢ㄦ埛鏁版嵁--> - <el-col :span="15" :xs="24"> - - <el-form :inline="true" ref="form" :model="queryParams" class="demo-form-inline" label-width="90px"> - <el-row> - <el-col :span="7"> - <el-form-item label="濮撳悕" prop="name" style="display: flex;"> - <el-input v-model="queryParams.name" placeholder="璇疯緭鍏ュ鍚�" /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="鑱旂郴鐢佃瘽" prop="phone" style="display: flex;"> - <el-input v-model="queryParams.phone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" /> - </el-form-item> - </el-col> - <el-col :span="3"> - <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" - @click="handleUpdate">鏌ヨ</el-button> - </el-form-item> - </el-col> - </el-row> - - </el-form> - - - - <div style="margin-bottom: 10px;"> - <el-radio-group v-model="queryParams.type" @input="handleUpdate" style="margin-left: 30px"> - <el-radio-button label="1">鏀惰垂璁板綍</el-radio-button> - <!-- <el-radio-button label="2">閫�璐硅褰�</el-radio-button> --> - </el-radio-group> - </div> - - - <el-table v-loading="loading" :data="tableList" @selection-change="handleSelect" border max-height="720px" - :row-style="changRed" style="margin-left: 30px;"> - <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="濮撳悕" align="center" prop="customer.cusName" width="90px" /> - <el-table-column label="鎵嬫満鍙�" align="center" prop="customer.cusPhone" width="110px"></el-table-column> - <el-table-column label="璁㈠崟娴佹按鍙�" align="center" prop="waterId" width="194px" /> - <el-table-column label="浣撴椤圭洰" align="center" prop="tjProName" width="120px" - :show-overflow-tooltip="true" /> - <el-table-column label="搴旀敹閲戦" align="center" prop="copeWith" width="90px" /> - <el-table-column label="瀹炴敹閲戦" align="center" prop="paidIn" width="80px" /> - <el-table-column label="浠樻绫诲瀷" align="center" prop="payType" width="80px"> - <template slot-scope="scope"> - <dict-tag :options="dict.type.dict_pay_type" :value="scope.row.payType" /> - </template> - </el-table-column> - <el-table-column label="鏀惰垂鍛�" align="center" prop="updateBy" width="100px" /> - <el-table-column label="鏀堕��鏃堕棿" align="center" prop="updateTime" width="160px" /> - <el-table-column fixed="right" label="鎿嶄綔" align="center" class-name="small-padding " width="80px" - v-if="queryParams.type == '1'"> - <template slot-scope="scope"> - <!-- <el-button size="mini" type="text" @click="handlerefund(scope.row)" - v-if="scope.row.remarks != '宸查��璐�'">閫�璐�</el-button> --> - <el-button size="mini" type="text" v-if="scope.row.remarks == '宸查��璐�'">{{ scope.row.remarks - }}</el-button> - <el-button size="mini" type="text" v-if="scope.row.remarks != '宸查��璐�'" - @click="receipt(scope.row)">琛ユ墦</el-button> - </template> - </el-table-column> - </el-table> + <el-col :span="12"> + <el-form-item label="鑱旂郴鐢佃瘽" prop="phone" style="display: flex"> + <el-input + v-model="queryParams.phone" + placeholder="璇疯緭鍏ヨ仈绯荤數璇�" + /> + </el-form-item> </el-col> + <el-col :span="3"> + <el-form-item> + <el-button + type="primary" + icon="el-icon-search" + size="mini" + @click="handleUpdate" + >鏌ヨ</el-button + > + </el-form-item> + </el-col> + </el-row> + </el-form> - </el-row> - <!-- 娣诲姞琛ュ綍椤圭洰 --> - <el-dialog :title="title" :visible.sync="Projectopen1" width="980px" style="height: 860px" append-to-body> - <el-row type="flex" class="row-bg" justify="space-around"> - <el-col :span="6"> - <div class="tab3"> - <div class="outside1"> - <el-tree ref="tree" :data="Treedata" show-checkbox node-key="proId" check-strictly - :props="defaultProps" @check-change="handleCurrentChecked"> - </el-tree> - </div> - </div> - </el-col> - </el-row> - </el-dialog> - <div style=" - position: absolute; - bottom: 100px; - width: 360px; - display: none; - "> - <div id="printBill" style="width: 280px;font-size: 1px;" ref="printContent"> - <div style="font-size: 1px;"> - <div style="text-align: center;"> - <h3>{{ hospName }}灏忕エ</h3> - </div> - - <div style="margin-top: 4px;"> - <div> - 濮撳悕:{{ formIn.name }} - </div> - <div> - 鐢佃瘽:{{ formIn.phone }} - </div> - <div> - 浣撴椤圭洰:{{ formIn.tjPro }} - </div> - <div> - 鎶樻墸:{{ formIn.zk + "%" }} - </div> - <div> - 瀹炴敹閲戦:{{ formIn.ss }}鍏� - </div> - <div> - 鏀惰垂鏃堕棿:{{ currentDate + " " + currentTime }} - </div> - </div> - </div> - </div> + <div style="margin-bottom: 10px"> + <el-radio-group + v-model="queryParams.type" + @input="handleUpdate" + style="margin-left: 30px" + > + <el-radio-button label="1">鏀惰垂璁板綍</el-radio-button> + <!-- <el-radio-button label="2">閫�璐硅褰�</el-radio-button> --> + </el-radio-group> </div> + + <el-table + v-loading="loading" + :data="tableList" + @selection-change="handleSelect" + border + max-height="720px" + :row-style="changRed" + style="margin-left: 30px" + > + <el-table-column type="selection" width="55" align="center" /> + <el-table-column + label="濮撳悕" + align="center" + prop="customer.cusName" + width="90px" + /> + <el-table-column + label="鎵嬫満鍙�" + align="center" + prop="customer.cusPhone" + width="110px" + ></el-table-column> + <el-table-column + label="璁㈠崟娴佹按鍙�" + align="center" + prop="waterId" + width="194px" + /> + <el-table-column + label="浣撴椤圭洰" + align="center" + prop="tjProName" + width="120px" + :show-overflow-tooltip="true" + /> + <el-table-column + label="搴旀敹閲戦" + align="center" + prop="copeWith" + width="90px" + /> + <el-table-column + label="瀹炴敹閲戦" + align="center" + prop="paidIn" + width="80px" + /> + <el-table-column + label="浠樻绫诲瀷" + align="center" + prop="payType" + width="80px" + > + <template slot-scope="scope"> + <dict-tag + :options="dict.type.dict_pay_type" + :value="scope.row.payType" + /> + </template> + </el-table-column> + <el-table-column + label="鏀惰垂鍛�" + align="center" + prop="updateBy" + width="100px" + /> + <el-table-column + label="鏀堕��鏃堕棿" + align="center" + prop="updateTime" + width="160px" + /> + <el-table-column + fixed="right" + label="鎿嶄綔" + align="center" + class-name="small-padding " + width="80px" + v-if="queryParams.type == '1'" + > + <template slot-scope="scope"> + <!-- <el-button size="mini" type="text" @click="handlerefund(scope.row)" + v-if="scope.row.remarks != '宸查��璐�'">閫�璐�</el-button> --> + <el-button + size="mini" + type="text" + v-if="scope.row.remarks == '宸查��璐�'" + >{{ scope.row.remarks }}</el-button + > + <el-button + size="mini" + type="text" + v-if="scope.row.remarks != '宸查��璐�'" + @click="receipt(scope.row)" + >琛ユ墦</el-button + > + </template> + </el-table-column> + </el-table> + </el-col> + </el-row> + <!-- 娣诲姞琛ュ綍椤圭洰 --> + <el-dialog + :title="title" + :visible.sync="Projectopen1" + width="980px" + style="height: 860px" + append-to-body + > + <el-row type="flex" class="row-bg" justify="space-around"> + <el-col :span="6"> + <div class="tab3"> + <div class="outside1"> + <el-tree + ref="tree" + :data="Treedata" + show-checkbox + node-key="proId" + check-strictly + :props="defaultProps" + @check-change="handleCurrentChecked" + > + </el-tree> + </div> + </div> + </el-col> + </el-row> + </el-dialog> + <div style="position: absolute; bottom: 100px; width: 360px; display: none"> + <div + id="printBill" + style="width: 280px; font-size: 1px" + ref="printContent" + > + <div style="font-size: 1px"> + <div style="text-align: center"> + <h3>{{ hospName }}灏忕エ</h3> + </div> + + <div style="margin-top: 4px"> + <div>濮撳悕:{{ formIn.name }}</div> + <div>鐢佃瘽:{{ formIn.phone }}</div> + <div>浣撴椤圭洰:{{ formIn.tjPro }}</div> + <div>鎶樻墸:{{ formIn.zk + "%" }}</div> + <div>瀹炴敹閲戦:{{ formIn.ss }}鍏�</div> + <div>鏀惰垂鏃堕棿:{{ currentDate + " " + currentTime }}</div> + </div> + </div> + </div> </div> + </div> </template> <script> -import { getTjPrice, addOrderAndDetail, tjRefund, getFlowingWaterList, getPrintSetUp } from "@/api/system/examcharge"; +import { + getTjPrice, + addOrderAndDetail, + tjRefund, + getFlowingWaterList, + getPrintSetUp, +} from "@/api/system/examcharge"; import { getInfo } from "@/api/login"; import { projectGetList } from "@/api/system/tijian"; import printJS from "print-js"; export default { - dicts: ["dict_pay_type"], - name: "Examcharge", + dicts: ["dict_pay_type"], + name: "Examcharge", - data() { - let checkPhoneNum = (rule, value, callback) => { - console.log( value) + data() { + let checkPhoneNum = (rule, value, callback) => { + console.log(value); let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/); if (value == "" && value == undefined && !value) { - return callback(''); - } else if(value != undefined && value != ""){ + return callback(""); + } else if (value != undefined && value != "") { return callback(); - }else if (!patter.test(value)) { - return callback(''); + } else if (!patter.test(value)) { + return callback(""); } }; - return { - tjNumbers: "", - // 閬僵灞� - loading: false, - Projectopen1: false, - // 寮瑰嚭灞傛爣棰� - title: "", - disabled: "", - iconData: "el-icon-arrow-down", - DataList: [], - tableList: [], - list: [], - Treedata: [], - defaultProps: { - children: "tjProjectList", - label: "proName", - disabled: function (data, node) { - if (data.tjProjectList && data.tjProjectList.length > 0) { + return { + tjNumbers: "", + // 閬僵灞� + loading: false, + Projectopen1: false, + // 寮瑰嚭灞傛爣棰� + title: "", + disabled: "", + iconData: "el-icon-arrow-down", + DataList: [], + tableList: [], + list: [], + Treedata: [], + defaultProps: { + children: "tjProjectList", + label: "proName", + disabled: function (data, node) { + if (data.tjProjectList && data.tjProjectList.length > 0) { + return false; + } else { + return true; + } + }, + }, + // 閫変腑鏁扮粍 + ids: [], + getInfodis: "", + waterId: "", + toggleSearchStatus: "0", + queryParams: { + name: null, + phone: null, + type: "1", + }, + formIn: { + name: null, + tjPro: null, + phone: null, + number: 1, + ys: "0", + ss: "0", + type: "0", + zk: 10, + }, + hospName: "", + currentDate: "", + currentTime: "", + // 琛ㄥ崟鍙傛暟 + form: { + name: null, + tjPro: null, + tjProName: "浣撴璐�", + phone: null, + number: 1, + ys: 0, + ss: 0, + type: "0", + zk: 10, + }, + // 琛ㄥ崟鏍¢獙 + rules: { + name: [{ required: true, validator: checkPhoneNum, trigger: "change" }], + tjPro: [ + { required: true, validator: checkPhoneNum, trigger: "change" }, + ], + type: [{ required: true, validator: checkPhoneNum, trigger: "blur" }], + }, + }; + }, + created() { + this.getList(); + this.handleUpdate(); + this.getCurrentDateTime(); - return false - } - else { - return true - } - } + this.startTimer(); + }, + methods: { + getCurrentDateTime() { + const currentDate = new Date(); - }, - // 閫変腑鏁扮粍 - ids: [], - getInfodis: "", - waterId: "", - toggleSearchStatus: "0", - queryParams: { - name: null, - phone: null, - type: "1" - }, - formIn: { - name: null, - tjPro: null, - phone: null, - number: 1, - ys: "0", - ss: "0", - type: "0", - zk: 10, + // 鏍煎紡鍖栨棩鏈燂細YYYY-MM-DD - }, - hospName: "", - currentDate: "", - currentTime: "", - // 琛ㄥ崟鍙傛暟 - form: { - name: null, - tjPro: null, - tjProName: "浣撴璐�", - phone: null, - number: 1, - ys: 0, - ss: 0, - type: "0", - zk: 10, + const year = currentDate.getFullYear(); - }, - // 琛ㄥ崟鏍¢獙 - rules: { - name: [{ required: true, validator: checkPhoneNum, trigger: "change" }], - tjPro: [ - { required: true, validator: checkPhoneNum, trigger: "change" }, - ], - type: [ - { required: true, validator: checkPhoneNum, trigger: "blur" }, - ], - }, - }; + const month = String(currentDate.getMonth() + 1).padStart(2, "0"); + + const day = String(currentDate.getDate()).padStart(2, "0"); + + this.currentDate = `${year}-${month}-${day}`; + + // 鏍煎紡鍖栨椂闂达細HH:mm:ss + + const hours = String(currentDate.getHours()).padStart(2, "0"); + + const minutes = String(currentDate.getMinutes()).padStart(2, "0"); + + const seconds = String(currentDate.getSeconds()).padStart(2, "0"); + + this.currentTime = `${hours}:${minutes}:${seconds}`; }, - created() { - this.getList(); - this.handleUpdate(); - this.getCurrentDateTime() - this.startTimer() + startTimer() { + this.timer = setInterval(() => { + this.getCurrentDateTime(); + }, 1000); //姣忕閽熸洿鏂颁竴娆� }, - methods: { - getCurrentDateTime() { - const currentDate = new Date() + beforeDestroy() { + clearInterval(this.timer); + }, //娓呴櫎瀹氭椂鍣紝浠ラ伩鍏嶅唴瀛樻硠闇层�� - // 鏍煎紡鍖栨棩鏈燂細YYYY-MM-DD + getList() { + getTjPrice().then((res) => { + if (res.data) { + const r = /^\+?[0-9][0-9]*$/; //姝f暣鏁帮紙鍙互0鎵撳ご锛� + if (r.test(res.data)) { + this.form.ys = res.data + ".00"; + } else { + this.form.ys = res.data; + } - const year = currentDate.getFullYear() - - const month = String(currentDate.getMonth() + 1).padStart(2, '0') - - const day = String(currentDate.getDate()).padStart(2, '0') - - this.currentDate = `${year}-${month}-${day}` - - // 鏍煎紡鍖栨椂闂达細HH:mm:ss - - const hours = String(currentDate.getHours()).padStart(2, '0') - - const minutes = String(currentDate.getMinutes()).padStart(2, '0') - - const seconds = String(currentDate.getSeconds()).padStart(2, '0') - - this.currentTime = `${hours}:${minutes}:${seconds}` - - }, - - startTimer() { - - this.timer = setInterval(() => { - - this.getCurrentDateTime() - - }, 1000) //姣忕閽熸洿鏂颁竴娆� - - }, - - beforeDestroy() { - - clearInterval(this.timer) - - },//娓呴櫎瀹氭椂鍣紝浠ラ伩鍏嶅唴瀛樻硠闇层�� - - getList() { - getTjPrice().then(res => { - if (res.data) { - const r = /^\+?[0-9][0-9]*$/; //姝f暣鏁帮紙鍙互0鎵撳ご锛� - if (r.test(res.data)) { - this.form.ys = res.data + ".00"; - } else { - this.form.ys = res.data - } - - this.form.ss = this.form.ys - } - }) - getInfo(this.queryParams).then((response) => { - this.hospName = response.hospName; - }); - - }, - changRed({ row }) { - if (row.remarks == '宸查��璐�') { // 鍙橀鑹茬殑鏉′欢 - return { - backgroundColor: "#9cdcfe" // 杩欎釜return鐨勫氨鏄牱寮� 鍙互鏄痗olor 涔熷彲浠ユ槸backgroundColor - } - } - }, - handleToggleSearch() { - if (this.toggleSearchStatus == "0") { - this.toggleSearchStatus = "1" - this.iconData = "el-icon-arrow-up" - } else { - this.toggleSearchStatus = "0" - this.iconData = "el-icon-arrow-down" - } - - }, - //閲嶇疆鎸夐挳 - resetQuery() { - this.form = { - name: null, - tjPro: null, - phone: null, - tjProName: "浣撴璐�", - number: 1, - ys: 0.00, - ss: 0.00, - type: "0", - zk: 10, - }; - this.resetForm("form"); - }, - - // 琛ㄦ牸鍗曢�� - handleSelect(selection, val) { - this.DataList = this.$refs.multipleTable.selection; - }, - handleUpdate() { - getFlowingWaterList(this.queryParams).then(res => { - this.tableList = res.data - - }) - }, - hadeltjpro() { - - /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */ - projectGetList().then((response) => { - this.Treedata = response.data.list; - - }); - this.Projectopen1 = true; - this.title = "椤圭洰鍒楄〃"; - }, - // 鐐瑰嚮鑾峰彇姣忎釜鏍戣妭鐐� - handleCurrentChecked(data, checked, checkedNodes) { - console.log(data, checked) - // this.form.tjPro = "", - // this.form.ys = 0 - if (checked) { - // this.menuOptions.id = data.id - this.$refs.tree.setCheckedKeys([data.proId], true) - } else { - // this.menuOptions.id = null - } - if (checked == true) { - this.form.tjPro = data.proId - this.form.tjProName = data.proName - const r = /^\+?[0-9][0-9]*$/; //姝f暣鏁帮紙鍙互0鎵撳ご锛� - if (r.test(data.proPrice)) { - this.form.ys = data.proPrice + ".00"; - } else { - this.form.ys = data.proPrice - } - } - - this.Projectopen1 = false; - }, - - // 鎶樻墸 - numberChange() { - let price = (this.form.ss / this.form.ys) * 10 - this.form.zk = price.toFixed(2) - }, - receipt(row) { - getPrintSetUp().then(res => { - if (res.msg == "0") { - this.formIn = { - name: row.customer.cusName, - tjPro: row.tjProName, - phone: row.customer.cusPhone, - ys: row.copeWith, - ss: row.paidIn, - zk: row.discount, - } - this.$nextTick(() => { - const style = - "@media print { @page{margin:0 10mm,size:4mm 6mm;}};"; //鎵撳嵃鏃跺幓鎺夌湁椤电湁灏� - printJS({ - printable: "printBill", // 鏍囩鍏冪礌id - noPrint: ".noPrint", - type: 'html', - header: "", - targetStyles: ["*"], - maxWidth: "800", - scanStyles: true, //鎵撳嵃蹇呴』鍔犱笂锛屼笉鐒堕〉闈笂鐨刢ss鏍峰紡鏃犳晥 - style, - }); - }); - } else { - const tjnumber = row.tjNumber; - const viewNum = "809623418249637888"; - const params = { viewNum, tjnumber }; - this.$tab.openPage("涓汉鍙戠エ", "/report/charge", params); - } - this.resetQuery() - this.handleUpdate() - this.getList() - }) - - }, - - // 鏀惰垂 - SubmitEvent() { - if (this.form.name) { - this.formIn = this.form - addOrderAndDetail(this.form).then(res => { - if (res.code == 200) { - this.tjNumbers = res.msg - this.$modal.msgSuccess("鏀惰垂鎴愬姛"); - getPrintSetUp().then(res => { - if (res.msg == "0") { - this.$nextTick(() => { - const style = - "@media print { @page{margin:0 10mm,size:4mm 6mm;}};"; //鎵撳嵃鏃跺幓鎺夌湁椤电湁灏� - printJS({ - printable: "printBill", // 鏍囩鍏冪礌id - noPrint: ".noPrint", - type: 'html', - header: "", - targetStyles: ["*"], - maxWidth: "800", - scanStyles: true, //鎵撳嵃蹇呴』鍔犱笂锛屼笉鐒堕〉闈笂鐨刢ss鏍峰紡鏃犳晥 - style, - }); - }); - - } else { - const tjnumber = this.tjNumbers; - const viewNum = "809623418249637888"; - const params = { viewNum, tjnumber }; - this.$tab.openPage("涓汉鍙戠エ", "/report/charge", params); - } - this.resetQuery() - this.handleUpdate() - this.getList() - }) - - } - }) - } else { - this.$modal.msgError("璇峰~鍐欏鍚�"); - } - - }, - handlerefund(row) { - this.$confirm('鎮ㄧ‘瀹氳閫�璐瑰悧?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - let data = { - waterId: row.waterId - } - tjRefund(data).then(res => { - if (res.code == 200) { - this.$modal.msgSuccess("閫�璐规垚鍔�"); - this.handleUpdate() - } - - }) - }).catch(() => { - this.$message({ - type: 'info', - message: '宸插彇娑堥��璐�' - }); - }); - - + this.form.ss = this.form.ys; } + }); + getInfo(this.queryParams).then((response) => { + this.hospName = response.hospName; + }); }, + changRed({ row }) { + if (row.remarks == "宸查��璐�") { + // 鍙橀鑹茬殑鏉′欢 + return { + backgroundColor: "#9cdcfe", // 杩欎釜return鐨勫氨鏄牱寮� 鍙互鏄痗olor 涔熷彲浠ユ槸backgroundColor + }; + } + }, + handleToggleSearch() { + if (this.toggleSearchStatus == "0") { + this.toggleSearchStatus = "1"; + this.iconData = "el-icon-arrow-up"; + } else { + this.toggleSearchStatus = "0"; + this.iconData = "el-icon-arrow-down"; + } + }, + //閲嶇疆鎸夐挳 + resetQuery() { + this.form = { + name: null, + tjPro: null, + phone: null, + tjProName: "浣撴璐�", + number: 1, + ys: 0.0, + ss: 0.0, + type: "0", + zk: 10, + }; + this.resetForm("form"); + }, + + // 琛ㄦ牸鍗曢�� + handleSelect(selection, val) { + this.DataList = this.$refs.multipleTable.selection; + }, + handleUpdate() { + getFlowingWaterList(this.queryParams).then((res) => { + this.tableList = res.data; + }); + }, + hadeltjpro() { + /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */ + projectGetList().then((response) => { + this.Treedata = response.data.list; + }); + this.Projectopen1 = true; + this.title = "椤圭洰鍒楄〃"; + }, + // 鐐瑰嚮鑾峰彇姣忎釜鏍戣妭鐐� + handleCurrentChecked(data, checked, checkedNodes) { + console.log(data, checked); + // this.form.tjPro = "", + // this.form.ys = 0 + if (checked) { + // this.menuOptions.id = data.id + this.$refs.tree.setCheckedKeys([data.proId], true); + } else { + // this.menuOptions.id = null + } + if (checked == true) { + this.form.tjPro = data.proId; + this.form.tjProName = data.proName; + const r = /^\+?[0-9][0-9]*$/; //姝f暣鏁帮紙鍙互0鎵撳ご锛� + if (r.test(data.proPrice)) { + this.form.ys = data.proPrice + ".00"; + } else { + this.form.ys = data.proPrice; + } + } + + this.Projectopen1 = false; + }, + + // 鎶樻墸 + numberChange() { + let price = (this.form.ss / this.form.ys) * 10; + this.form.zk = price.toFixed(2); + }, + receipt(row) { + getPrintSetUp().then((res) => { + if (res.msg == "0") { + this.formIn = { + name: row.customer.cusName, + tjPro: row.tjProName, + phone: row.customer.cusPhone, + ys: row.copeWith, + ss: row.paidIn, + zk: row.discount, + }; + this.$nextTick(() => { + const style = "@media print { @page{margin:0 10mm,size:4mm 6mm;}};"; //鎵撳嵃鏃跺幓鎺夌湁椤电湁灏� + printJS({ + printable: "printBill", // 鏍囩鍏冪礌id + noPrint: ".noPrint", + type: "html", + header: "", + targetStyles: ["*"], + maxWidth: "800", + scanStyles: true, //鎵撳嵃蹇呴』鍔犱笂锛屼笉鐒堕〉闈笂鐨刢ss鏍峰紡鏃犳晥 + style, + }); + }); + } else { + const tjnumber = row.tjNumber; + const viewNum = "809623418249637888"; + const params = { viewNum, tjnumber }; + this.$tab.openPage("涓汉鍙戠エ", "/report/charge", params); + } + this.resetQuery(); + this.handleUpdate(); + this.getList(); + }); + }, + + // 鏀惰垂 + SubmitEvent() { + if (this.form.name) { + this.formIn = this.form; + addOrderAndDetail(this.form).then((res) => { + if (res.code == 200) { + this.tjNumbers = res.msg; + this.$modal.msgSuccess("鏀惰垂鎴愬姛"); + getPrintSetUp().then((res) => { + if (res.msg == "0") { + this.$nextTick(() => { + const style = + "@media print { @page{margin:0 10mm,size:4mm 6mm;}};"; //鎵撳嵃鏃跺幓鎺夌湁椤电湁灏� + printJS({ + printable: "printBill", // 鏍囩鍏冪礌id + noPrint: ".noPrint", + type: "html", + header: "", + targetStyles: ["*"], + maxWidth: "800", + scanStyles: true, //鎵撳嵃蹇呴』鍔犱笂锛屼笉鐒堕〉闈笂鐨刢ss鏍峰紡鏃犳晥 + style, + }); + }); + } else { + const tjnumber = this.tjNumbers; + const viewNum = "809623418249637888"; + const params = { viewNum, tjnumber }; + this.$tab.openPage("涓汉鍙戠エ", "/report/charge", params); + } + this.resetQuery(); + this.handleUpdate(); + this.getList(); + }); + } + }); + } else { + this.$modal.msgError("璇峰~鍐欏鍚�"); + } + }, + handlerefund(row) { + this.$confirm("鎮ㄧ‘瀹氳閫�璐瑰悧?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + let data = { + waterId: row.waterId, + }; + tjRefund(data).then((res) => { + if (res.code == 200) { + this.$modal.msgSuccess("閫�璐规垚鍔�"); + this.handleUpdate(); + } + }); + }) + .catch(() => { + this.$message({ + type: "info", + message: "宸插彇娑堥��璐�", + }); + }); + }, + }, }; </script> <style> #sig .el-table__header-wrapper .el-checkbox { - display: none; + display: none; } </style> \ No newline at end of file diff --git a/src/views/team/reportresults/index.vue b/src/views/team/reportresults/index.vue index 013d714..cb4b7af 100644 --- a/src/views/team/reportresults/index.vue +++ b/src/views/team/reportresults/index.vue @@ -110,11 +110,11 @@ >缁熻缁撴灉</el-button > </el-col> - <el-col :span="1.5"> + <!-- <el-col :span="1.5"> <el-button type="primary" size="mini" @click="clear" >娓呯┖宸查�夎緭鍑哄垪</el-button > - </el-col> + </el-col> --> </el-row> <div style="width: 100%; margin-left: 10px; display: flex"> @@ -163,6 +163,7 @@ prop="company" label="鍗曚綅" align="center" + width="170px" :show-overflow-tooltip="true" > </el-table-column> @@ -175,41 +176,33 @@ </el-table-column> </el-table> </div> - <div style="width: 50%; display: flex"> - <el-tabs - type="border-card" - style="height: 560px; margin: 0 10px; width: 100%" - > - <el-tab-pane label="鍗曢」"> - <div class="tab3"> - <!-- <div class="tab2"> --> - <v-tree-transfer - :treeData="treedataList" - :defaultProps="{ children: 'tjProjectList', label: 'proName' }" - :defaultKeys="defaultKeys" - @changeKeys="changeCategoryKeys" - :key="datekey" - ></v-tree-transfer> - <!-- <el-tree ref="tree" :data="treedataList" show-checkbox node-key="proId" :props="defaultProps" - :default-expanded-keys="treeId" :default-checked-keys="treeList" @check-change="handleCurrentChecked"> - </el-tree> --> - <!-- </div> --> - <!-- <el-button - style=" - width: 20px; - height: 100px; - margin-left: 10px; - margin-top: 20%; - font-size: 10px; - " - type="primary" - size="mini" - @click="submit" - ><i style="font-size: 18px" class="el-icon-d-arrow-right"></i - ></el-button> --> - </div> - </el-tab-pane> - </el-tabs> + + <div style="width: 60%; display: flex"> + <div class="outside1"> + <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText"> + </el-input> + <el-tree + ref="tree" + v-loading="loading" + :data="Treedata" + show-checkbox + node-key="proId" + :props="defaultProps" + @check-change="handleCurrentChecked" + :filter-node-method="filterNode" + > + </el-tree> + </div> + <div> + <el-table + :data="DataList" + style="width: 400px; margin-left: 40px" + border + > + <el-table-column prop="proName" label="宸查�夐」鐩垪琛�" align="center"> + </el-table-column> + </el-table> + </div> </div> </div> <div style="margin-right: 64%"> @@ -240,12 +233,69 @@ <el-dialog :title="title2" :visible.sync="open" - width="1300px" + width="1000px" append-to-body > - <div style="height: 620px; margin-top: 10px"> + <!-- <div style="height: 620px; margin-top: 10px"> <div id="main" style="width: 95%; height: 400px"></div> - </div> + </div> --> + <!-- <el-card + class="box-card" + v-for="(item, index) in rongjiList" + :key="index" + > + <div slot="header" class="clearfix"> + <span>{{ item.project.proName }}</span> + </div> + <div> + <el-table :data="item.zhengchang" style="width: 100%"> + <el-table-column prop="orderDetailId" label="浣撴鍙�" width="180"> + </el-table-column> + <el-table-column prop="createBy" label="濮撳悕" width="180"> + </el-table-column> + </el-table> + <el-table :data="item.yichang" style="width: 100%"> + <el-table-column prop="orderDetailId" label="浣撴鍙�" width="180"> + </el-table-column> + <el-table-column prop="createBy" label="濮撳悕" width="180"> + </el-table-column> + </el-table> + </div> + </el-card> --> + <el-collapse v-model="activeNames"> + <el-collapse-item v-for="(item, index) in rongjiList" :key="index"> + <template slot="title"> + {{ item.project.proName }} + </template> + <div style="display: flex"> + <div style="display: flex;flex-direction: column;width:50%" > + <span>姝e父</span> + <el-table border :data="item.zhengchang" style="width: 100%"> + <el-table-column + prop="tjNumber" + label="浣撴鍙�" + > + </el-table-column> + <el-table-column prop="cusName" label="濮撳悕" > + </el-table-column> + </el-table> + </div> + <div style="display: flex;flex-direction: column;width:50%"> + <span>寮傚父</span> + <el-table border :data="item.yichang" style="width: 100%"> + <el-table-column + prop="tjNumber" + label="浣撴鍙�" + > + </el-table-column> + <el-table-column prop="cusName" label="濮撳悕" > + </el-table-column> + </el-table> + </div><br> + + </div> + </el-collapse-item> + </el-collapse> </el-dialog> </div> </div> @@ -258,20 +308,7 @@ require("echarts/lib/component/legend"); require("echarts/lib/chart/pie"); import VTreeTransfer from "../../system/tijian/TreeTransfer.vue"; -import { - deptTreeSelect, - projectGetList, - getOrder, - getCusIdcard, - getPackageListName, - getaddtTransition, - getTransitionList, - getByTeamNo, - getLoadFile, - getIsRequired, - getconfigKey, - getHistryTjOrderProByCusIdCard, -} from "@/api/system/tijian"; +import { projectGetList } from "@/api/system/tijian"; import { getPeopleList, getDeptAndDwDeptByComp, @@ -280,20 +317,23 @@ getStatist, } from "@/api/team/disease"; import { listComp } from "@/api/system/comp"; +import { getJieGuoFenXi } from "@/api/team/reportresults"; export default { components: { VTreeTransfer, }, data() { return { - datekey: Date.now(), - defaultKeys: [], + activeNames: ["1"], + proIds: [], + filterText: "", + DataList: [], + loading: false, defaultProps: { children: "tjProjectList", label: "proName", }, - tjProjectList: [], - treedataList: [], + Treedata: [], rongjiList: [], aids: [], tjNums: [], @@ -364,31 +404,51 @@ this.getData(); this.datekey = Date.now(); }, + watch: { + filterText(val) { + this.$refs.tree.filter(val); + }, + }, methods: { - changeCategoryKeys(val) { - console.log(val); - this.proIds = []; - this.proIds = val; - // if (this.DataList.length != 0) { - // this.DataList.forEach((item) => { - // this.proIds.push(item.proId); - // }); - // } else { - // this.proIds = []; - // } + filterNode(value, data) { + if (!value) return true; + return data.proName.indexOf(value) !== -1; }, getData() { /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */ this.loading = true; + /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */ projectGetList().then((response) => { - this.treedataList = response.data.list; - console.log(this.treedataList); - this.dXData = response.data.list; + this.Treedata = response.data.list; this.loading = false; - return; }); }, + // 鐐瑰嚮鑾峰彇姣忎釜鏍戣妭鐐� + handleCurrentChecked(data, checked, checkedNodes) { + // if (!data.tjProjectList) { + // return; + // } + if (data.proParentId != "0") { + if (checked === true) { + this.DataList.push(data); + } else { + this.DataList.pop(data); + 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; + // item.tjProjectList.forEach((item1) => { + // this.proIds.push(item1.proId); + // }); + // }); + // } + }, // / 澶勭悊榛樿閫変腑褰撳墠鏃ユ湡 getNowTime() { var curDate = new Date().getTime(); @@ -474,96 +534,66 @@ }, tongji() { this.title2 = "缁熻鍥捐〃"; - - let tjRulesStatisticsDto = { - aids: this.aids, - tjNums: this.tjNums, - }; - console.log(tjRulesStatisticsDto); - if ( - tjRulesStatisticsDto.aids.length === 0 || - tjRulesStatisticsDto.tjNums.length === 0 - ) { + if (this.tjNums.length === 0 || this.DataList === 0) { this.$message.warning("璇烽�夋嫨浜哄憳鍜岀梾绉嶏紒"); } else { + this.DataList.forEach((item) => { + this.proIds.push(item.proId); + }); + let dto = { + proIds: this.proIds, + tjNums: this.tjNums, + }; + this.open = true; - getStatist(tjRulesStatisticsDto).then((res) => { + getJieGuoFenXi(dto).then((res) => { this.rongjiList = res.data; + // this.$nextTick(() => { + // var chartDom = document.getElementById("main"); + // var myChart = echarts.init(chartDom); + // var option; - this.$nextTick(() => { - var chartDom = document.getElementById("main"); - var myChart = echarts.init(chartDom); - var option; - - option = { - title: { - text: "鐥呯缁熻", - left: "center", - }, - tooltip: { - trigger: "item", - formatter: "{a} <br/>{b} : {c} ({d}%)", - }, - legend: { - // type: 'scroll', - orient: "vertical", - right: 10, - top: 80, - bottom: 20, - data: this.rongjiList, - }, - series: [ - { - name: "鐥呯鍚嶇О", - type: "pie", - radius: "55%", - center: ["25%", "60%"], - - data: this.rongjiList, - emphasis: { - itemStyle: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: "rgba(0, 0, 0, 0.5)", - }, - }, - }, - ], - }; - - option && myChart.setOption(option); - let sizeFun = function () { - myChart.resize(); - }; - window.addEventListener("resize", sizeFun); - }); - // let dataValue1 = []; - // this.dateAll = []; - // this.rongjiList.forEach((item) => { - // console.log(item); - // this.dateAll.push(item.bingzhong); - // dataValue1.push(item.num); - // }); - // let myChart = this.$echarts.init(document.getElementById("main")); - // myChart.setOption({ - // legend: {}, - - // tooltip: {}, - // xAxis: { - // type: "category", - // name: "鐥呯鍚嶇О", - // data: this.dateAll, - // }, - // yAxis: { - // type:'value' - // }, - // series: [ - // { - // name: "浜烘暟", - // type: "bar", - // data: dataValue1, + // option = { + // title: { + // text: "鐥呯缁熻", + // left: "center", // }, - // ], + // tooltip: { + // trigger: "item", + // formatter: "{a} <br/>{b} : {c} ({d}%)", + // }, + // legend: { + // // type: 'scroll', + // orient: "vertical", + // right: 10, + // top: 80, + // bottom: 20, + // data: this.rongjiList, + // }, + // series: [ + // { + // name: "鐥呯鍚嶇О", + // type: "pie", + // radius: "55%", + // center: ["25%", "60%"], + + // data: this.rongjiList, + // emphasis: { + // itemStyle: { + // shadowBlur: 10, + // shadowOffsetX: 0, + // shadowColor: "rgba(0, 0, 0, 0.5)", + // }, + // }, + // }, + // ], + // }; + + // option && myChart.setOption(option); + // let sizeFun = function () { + // myChart.resize(); + // }; + // window.addEventListener("resize", sizeFun); // }); }); } @@ -576,8 +606,14 @@ .el-pagination { margin-left: 47%; } -.tab3 { - width: 100%; +// .tab3 { +// width: 100%; +// display: flex; +// } +.outside1 { + width: 500px; display: flex; + margin-top: 8px; + flex-direction: column; } </style> \ No newline at end of file -- Gitblit v1.8.0