From e2035d4c9ef8d6f701860957318dd7ba7b27c5dc Mon Sep 17 00:00:00 2001 From: wwl <xchao828@163.com> Date: 星期二, 07 一月 2025 15:23:23 +0800 Subject: [PATCH] 1 --- src/views/system/comp/12.vue | 1585 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/system/comp/index.vue | 173 +++-- 2 files changed, 1,680 insertions(+), 78 deletions(-) diff --git a/src/views/system/comp/12.vue b/src/views/system/comp/12.vue new file mode 100644 index 0000000..6d3c5dc --- /dev/null +++ b/src/views/system/comp/12.vue @@ -0,0 +1,1585 @@ +<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="cnName"> + <el-input ref="inputName" v-model="queryParams.cnName" placeholder="璇疯緭鍏ュ崟浣嶅悕绉�" clearable + @keyup.enter.native="handleQuery" /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" + style="margin: 0 15px">鎼滅储</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="['system:comp: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="['system:comp: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="['system:comp:remove']">鍒犻櫎</el-button> + </el-col> + <el-col :span="1.5"> + <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport" + v-hasPermi="['system:comp:export']">瀵煎嚭</el-button> + </el-col> + <el-col :span="1.5"> + <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" @click="mainDepartment" + v-hasPermi="['system:comp:edit']">缁存姢濂楅</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table border v-loading="loading" :data="compList" @selection-change="handleSelectionChange"> + <el-table-column fixed="left" type="selection" width="40px" align="center" /> + <el-table-column label="搴忓彿" align="center" prop="newID" :show-overflow-tooltip="true" width="50px" fixed="left" /> + <el-table-column label="鍗曚綅鍚嶇О" align="center" prop="cnName" width="240px" /> + <el-table-column label="缁熶竴淇$敤浠g爜" align="center" prop="taxNumber" width="180px" /> + <el-table-column label="鑱旂郴浜�" align="center" prop="contactPerson" :show-overflow-tooltip="true" width="90px" /> + <el-table-column label="鑱旂郴鐢佃瘽" align="center" prop="contactPhone" :show-overflow-tooltip="true" /> + <el-table-column label="娉ㄥ唽鍦板潃" align="center" prop="registerAddress" :show-overflow-tooltip="true" /> + <!-- <el-table-column label="浼佷笟绫诲瀷" align="center" prop="typeOfEnterprise" :show-overflow-tooltip="true"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.dict_comp_type" :value="scope.row.typeOfEnterprise"/> + </template> +</el-table-column> --> + <el-table-column label="琛屾斂鍖哄垝" align="center" prop="areaName" :show-overflow-tooltip="true" /> + <el-table-column label="閫氳鍦板潃" align="center" prop="mailingAddress" :show-overflow-tooltip="true" /> + <el-table-column label="閭" align="center" prop="email" :show-overflow-tooltip="true" /> + <el-table-column label="寮�鎴烽摱琛�" align="center" prop="bankAccount" :show-overflow-tooltip="true" /> + <el-table-column label="閾惰璐﹀彿" align="center" prop="countNum" :show-overflow-tooltip="true" /> + <!-- <el-table-column label="GMP鍙戣瘉鏃ユ湡" align="center" prop="gmpissueDate" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.gmpissueDate, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> --> + <!-- <el-table-column label="缁忚惀璁稿彲璇佸彿" align="center" prop="businessLicenseNumber" /> --> + <!-- <el-table-column label="GMP鏈夋晥鎴鏃ユ湡" align="center" prop="gmpDeadlineDate" width="110px" :show-overflow-tooltip="true"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.gmpDeadlineDate, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> --> + <!-- <el-table-column label="GMP寤剁画鏃ユ湡" align="center" prop="gmpDelayDate" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.gmpDelayDate, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> --> + <!-- <el-table-column label="GMP璇佷功鍥剧墖(base64缂栫爜)" align="center" prop="gmpPhoto" width="100"> + <template slot-scope="scope"> + <image-preview :src="scope.row.gmpPhoto" :width="50" :height="50"/> + </template> + </el-table-column> --> + <el-table-column label="澶囨敞" align="center" prop="remark" :show-overflow-tooltip="true" /> + <!-- <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> --> + <el-table-column label="淇敼浜�" align="center" prop="updateBy" :show-overflow-tooltip="true" width="100px" /> + <el-table-column label="淇敼鏃堕棿" align="center" prop="updateTime" width="100px" :show-overflow-tooltip="true"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.updateTime, "{y}-{m}-{d}") }}</span> + </template> + </el-table-column> + <el-table-column label="鎺掑簭" align="center" prop="orderNum" :show-overflow-tooltip="true" width="55px" /> + <!-- <el-table-column label="鏁版嵁鐘舵��(PT10.00.004)" align="center" prop="effective"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.dict_data_status" :value="scope.row.effective"/> + </template> + </el-table-column> --> + <!-- <el-table-column label="鏈夋晥鏃堕棿" align="center" prop="validTime" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.validTime, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> --> + <el-table-column fixed="right" label="鎿嶄綔" align="center" class-name="small-padding fixed-width" width="70px"> + <template slot-scope="scope"> + <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" + v-hasPermi="['system:comp:edit']" title="淇敼"></el-button> + <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" + v-hasPermi="['system:comp: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> + + <div> + <el-dialog :title="title" :visible.sync="opens" width="1350px" append-to-body :close-on-click-modal="false"> + <el-row :gutter="20"> + <el-col :span="7" :xs="24"> + <div style="padding: 0 20px"> + <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true"> + <el-form-item label="濂楅鍚嶇О" prop="dwDeptName"> + <el-input v-model="form.dwDeptName" placeholder="璇疯緭鍏ュ椁愬悕绉�" /> + </el-form-item> + <el-form-item label="绛剧害閲戦" prop="signingPrice"> + <el-input v-model="form.signingPrice" placeholder="璇疯緭鍏ョ绾﹂噾棰�" /> + </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="handleAddDept" + v-hasPermi="['system:comp:add']">淇濆瓨濂楅</el-button> + </el-col> + <el-col :span="1.5"> + <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="singleg" @click="handledeleDept" + v-hasPermi="['system:comp:edit']">鍒犻櫎</el-button> + </el-col> + </el-row> + <el-table ref="tb" v-loading="loading" :data="deptList" @selection-change="handleSelection" border + style="width: 320px" height="350"> + <el-table-column type="selection" width="40px" align="center" /> + <el-table-column label="濂楅鍚嶇О" align="center" prop="dwDeptName" /> + </el-table> + </div> + </el-col> + <el-col :span="17" :xs="24"> + <el-form ref="form" :model="forms" :rules="rules" label-width="78px" :inline="true"> + <el-form-item label="鍒嗙粍鍚嶇О" prop="groupingName"> + <el-input v-model="forms.groupingName" placeholder="璇疯緭鍏ュ垎缁勫悕绉�" style="width: 130px" + @focus="changegroupingName" /> + </el-form-item> + <el-form-item label="鎬у埆" prop="sex"> + <el-select v-model="forms.sex" placeholder="璇烽�夋嫨鎬у埆" style="width: 120px" clearable + :disabled="isSexDisabled"> + <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label" + :value="dict.value" /> + </el-select> + </el-form-item> + <!-- <el-form-item label="濂楅鍚嶇О" prop="pacName"> + <el-input + v-model="forms.pacName" + placeholder="璇疯緭鍏ュ椁愬悕绉�" + @focus="changeName" + style="width: 130px" + /> + </el-form-item> --> + <el-form-item label="鍘熶环" prop="price"> + <el-input v-model="forms.price" placeholder="璇疯緭鍏ュ師浠�" style="width: 130px" /> + </el-form-item> + <!-- <el-form-item label="鎶樻墸" prop="limits"> + <el-input v-model="forms.limits" placeholder="璇疯緭鍏ユ姌鎵�" style="width: 130px" @change="numberChange" /> + </el-form-item> --> + + <el-form-item label="浼樻儬浠�" prop="ysPrice"> + <el-input v-model="forms.ysPrice" placeholder="璇疯緭鍏ュ簲鏀�" style="width: 120px" /> + </el-form-item> + <el-form-item label="缁撶畻鏂瑰紡" prop="payType"> + <el-select v-model="forms.payType" placeholder="璇烽�夋嫨缁撶畻鏂瑰紡" style="width: 130px" clearable> + <el-option v-for="dict in dict.type.reservation_pay_type" :key="dict.value" :label="dict.label" + :value="dict.value" /> + </el-select> + </el-form-item> + <el-form-item label="骞撮緞娈�"> + <el-col :span="7"> + <el-input v-model="forms.ltAge" style="width: 53px" /> + </el-col> + <el-col class="line" :span="1">-</el-col> + <el-col :span="9"> + <el-input v-model="forms.gtAge" style="width: 54px" /> + </el-col> + </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="handleGroup">淇濆瓨</el-button> + </el-col> + <el-col :span="1.5"> + <el-button type="primary" icon="el-icon-edit" size="mini" @click="xiangmuWh">椤圭洰缁存姢</el-button> + </el-col> + <el-col :span="1.5"> + <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="singlegg" + @click="GroupUpdate">閲嶇疆</el-button> + <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="singlegg" + @click="deleteGroup">鍒犻櫎</el-button> + </el-col> + </el-row> + <el-table border ref="tbs" v-loading="loading" :data="groupingList" @selection-change="handleChange" + height="350"> + <el-table-column type="selection" width="40px" align="center" /> + <el-table-column label="搴忓彿" align="center" prop="newID" width="50px" /> + <el-table-column label="鍒嗙粍鍚嶇О" align="center" prop="groupingName" /> + <el-table-column label="鎬у埆" align="center" prop="sex"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" /> + </template> + </el-table-column> + <el-table-column label="濂楅鍚嶇О" align="center" prop="pacName" /> + <el-table-column label="缁撶畻鏂瑰紡" align="center" prop="payType"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.reservation_pay_type" :value="scope.row.payType" /> + </template> + </el-table-column> + <el-table-column label="鎶樻墸" align="center" prop="limits" /> + <el-table-column label="鍘熶环" align="center" prop="price" /> + <el-table-column label="搴旀敹" align="center" prop="ysPrice" /> + </el-table> + </el-col> + </el-row> + </el-dialog> + </div> + + <!-- 濂楅 --> + <div> + <el-dialog :title="title" :visible.sync="openss" width="1400px" append-to-body :close-on-click-modal="false"> + <el-row :gutter="24"> + <el-col :span="8" :xs="24"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"> + <el-form-item label="濂楅鍚嶇О" prop="pacName"> + <el-input ref="inputName" v-model="queryParams.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" clearable + @keyup.enter.native="handleSearch" style="width: 140px" /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearch">鎼滅储</el-button> + <!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> --> + </el-form-item> + </el-form> + <el-table ref="tbone" border v-loading="loading" :data="newpacName" @selection-change="handleChangeOne" + height="478"> + <el-table-column type="selection" width="40px" align="center" /> + <el-table-column label="搴忓彿" align="center" prop="newID" width="50px" /> + <el-table-column label="濂楅鍚嶇О/浠锋牸/鍏�" align="center" prop="pacName"> + <template slot-scope="scope"> + {{ scope.row.pacName + "/" + scope.row.price }} + </template> + </el-table-column> + </el-table> + </el-col> + <el-col :span="6" :xs="24"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px" + style="height: 35px"> + <el-form-item label="鍚堣" prop="price"> + <el-input ref="inputName" v-model="queryParams.price" placeholder="鍚堣" clearable style="width: 140px" /> + </el-form-item> + <el-form-item> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuerys">閲嶇疆</el-button> + </el-form-item> + </el-form> + <!-- <div style="color: red; font-size: 8px"> + 娉ㄩ噴锛氶紶鏍囧乏閿弻鍑婚�変腑琛屽彲鍒犻櫎 + </div> --> + <!-- @row-dblclick="dbclick" --> + <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478"> + <el-table-column label="椤圭洰鍚嶇О/浠锋牸/鍏�" align="center" prop="proName"> + <template slot-scope="scope"> + {{ scope.row.proName + "/" + scope.row.proPrice }} + </template> + </el-table-column> + + <el-table-column label="鎿嶄綔" align="center" width="68"> + <template slot-scope="scope"> + <el-button size="mini" type="text" icon="el-icon-delete" + @click="handledbelete(scope.row)">鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + </el-col> + <el-col :span="2" :xs="24"> + <div style="margin: 240% 16%"> + <el-button type="primary" size="medium " icon="el-icon-back" @click="resetright">纭� 璁�</el-button> + </div> + </el-col> + <el-col :span="8" :xs="24"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" + label-width="68px"> + <el-form-item label="椤圭洰鍚嶇О" prop="proName"> + <el-input ref="inputName" v-model="queryParams.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable + @keyup.enter.native="handleSearchFor" style="width: 140px" /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearchFor">鎼滅储</el-button> + </el-form-item> + </el-form> + <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle" + height="478"> + <el-table-column type="selection" width="40px" align="center" /> + <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" /> + <el-table-column label="椤圭洰浠锋牸/鍏�" align="center" prop="proPrice" /> + </el-table> + </el-col> + </el-row> + <div slot="footer" class="dialog-footer1"> + <el-button type="primary" @click="submitrighr">纭� 瀹�</el-button> + <el-button @click="cancell">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> + + <div> + <el-dialog :title="title" :visible.sync="openOne" width="1400px" append-to-body :close-on-click-modal="false"> + <el-row :gutter="24" v-if="!isTableVisible"> + + <el-col :span="11" :xs="24"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px" + style="height: 35px"> + <el-form-item label="鍘熶环"> + <el-input ref="inputName" v-model="queryParams.price" placeholder="鍚堣" clearable style="width: 140px" /> + </el-form-item> + <el-form-item label="浼樻儬"> + <el-input-number ref="inputNumber" style="width: 150px" v-model="youhui" :precision="2" :step="0.1" + @change="numberChange"></el-input-number> + </el-form-item> + <el-form-item label="鐜颁环"> + <el-input ref="inputName" v-model="queryParams.xianprice" placeholder="鍚堣" clearable + style="width: 140px" @input="changeXianjia" @blur="numberChange(youhui, youhui)" /> + </el-form-item> + <el-form-item> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuerys">閲嶇疆</el-button> + </el-form-item> + </el-form> + <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478"> + <el-table-column label="椤圭洰鍚嶇О/浠锋牸/鍏�" align="center" prop="proName"> + + <template slot-scope="scope"> + {{ scope.row.proName + "/" + scope.row.proPrice }} + </template> + </el-table-column> + <el-table-column label="鍘熶环" align="center" prop="proPrice"></el-table-column> + <el-table-column label="鎶樻墸"> + <template slot-scope="scope"> + <!-- 鍙緭鍏ョ函鏁板瓧鎶樻墸 --> + <el-input v-model.number="scope.row.limits" @input="validateDiscount(scope.row)" placeholder="杈撳叆鎶樻墸" + size="small" type="number" min="0" step="1" max="10"> + </el-input> + </template> + </el-table-column> + <el-table-column label="鐜颁环" align="center" prop="ysPrice"></el-table-column> + <el-table-column label="鎿嶄綔" align="center" width="68"> + <template slot-scope="scope"> + <el-button size="mini" type="text" icon="el-icon-delete" + @click="handledbelete(scope.row)">鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + </el-col> + <el-col :span="2" :xs="24"> + <div style="margin: 240% 16%"> + <el-button type="primary" size="medium " icon="el-icon-back" + style="writing-mode: vertical-rl; text-align: center;letter-spacing: 10px;" @click="resetright">纭� + 璁�</el-button> + </div> + </el-col> + <el-col :span="11" :xs="24"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" + label-width="68px"> + <el-form-item label="椤圭洰鍚嶇О" prop="proName"> + <el-input ref="inputName" v-model="queryParams.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable + @keyup.enter.native="handleSearchFor" style="width: 140px" /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearchFor">鎼滅储</el-button> + </el-form-item> + </el-form> + <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle" + height="478" style="width: 70%"> + <el-table-column type="selection" width="40px" align="center" /> + <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" /> + <el-table-column label="椤圭洰浠锋牸/鍏�" align="center" prop="proPrice" /> + </el-table> + </el-col> + </el-row> + <!-- -=----------------------------------------------------- --> + <el-row :gutter="24" v-else> + <el-col :span="8" :xs="24"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"> + <el-form-item label="濂楅鍚嶇О" prop="pacName"> + <el-input ref="inputName" v-model="queryParams.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" clearable + @keyup.enter.native="handleSearch" style="width: 140px" /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearch">鎼滅储</el-button> + <!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> --> + </el-form-item> + </el-form> + <el-table ref="tbone" border v-loading="loading" :data="newpacName" @selection-change="handleChangeOne" + height="478"> + <el-table-column type="selection" width="40px" align="center" /> + <el-table-column label="搴忓彿" align="center" prop="newID" width="50px" /> + <el-table-column label="濂楅鍚嶇О/浠锋牸/鍏�" align="center" prop="pacName"> + <template slot-scope="scope"> + {{ scope.row.pacName + "/" + scope.row.price }} + </template> + </el-table-column> + </el-table> + </el-col> + <el-col :span="6" :xs="24"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px" + style="height: 35px"> + <el-form-item label="鍚堣" prop="price"> + <el-input ref="inputName" v-model="queryParams.price" placeholder="鍚堣" clearable style="width: 140px" /> + </el-form-item> + <el-form-item> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuerys">閲嶇疆</el-button> + </el-form-item> + </el-form> + <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478"> + <el-table-column label="椤圭洰鍚嶇О/浠锋牸/鍏�" align="center" prop="proName"> + + <template slot-scope="scope"> + {{ scope.row.proName + "/" + scope.row.proPrice }} + </template> + </el-table-column> + <el-table-column label="鍘熶环" align="center" prop="proPrice"></el-table-column> + <el-table-column label="鎿嶄綔" align="center" width="68"> + <template slot-scope="scope"> + <el-button size="mini" type="text" icon="el-icon-delete" + @click="handledbelete(scope.row)">鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + </el-col> + <el-col :span="2" :xs="24"> + <div style="margin: 240% 16%"> + <el-button type="primary" size="medium " icon="el-icon-back" + style="writing-mode: vertical-rl; text-align: center;letter-spacing: 10px;" + @click="resetright">纭</el-button> + </div> + </el-col> + <el-col :span="8" :xs="24"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" + label-width="68px"> + <el-form-item label="椤圭洰鍚嶇О" prop="proName"> + <el-input ref="inputName" v-model="queryParams.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable + @keyup.enter.native="handleSearchFor" style="width: 140px" /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearchFor">鎼滅储</el-button> + </el-form-item> + </el-form> + <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle" + height="478" style="width: 70%"> + <el-table-column type="selection" width="40px" align="center" /> + <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="130" /> + <el-table-column label="椤圭洰浠锋牸/鍏�" align="center" prop="proPrice" width="100" /> + </el-table> + </el-col> + </el-row> + <div slot="footer" class="dialog-footer1"> + <el-button type="primary" @click="submitrighr">纭骞朵繚瀛�</el-button> + <el-button @click="cancell">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> + + <!-- 娣诲姞鎴栦慨鏀逛綋妫�鍗曚綅淇℃伅缁存姢瀵硅瘽妗� --> + <div class="dia"> + <el-dialog :title="title" :visible.sync="open" width="1340px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="106px" :inline="true"> + <el-form-item label="鍗曚綅鍚嶇О" prop="cnName"> + <el-input v-model="form.cnName" placeholder="璇疯緭鍏ヤ腑鏂囧悕绉�" style="width: 520px" /> + </el-form-item> + <el-form-item label="缁熶竴淇$敤浠g爜" prop="taxNumber"> + <el-input v-model="form.taxNumber" placeholder="璇疯緭鍏ョ粺涓�淇$敤浠g爜" style="width: 520px" /> + </el-form-item> + <el-form-item label="娉曚汉浠h〃" prop="legalPerson"> + <el-input v-model="form.legalPerson" placeholder="璇疯緭鍏ユ硶浜�" /> + </el-form-item> + <el-form-item label="鑱旂郴浜�" prop="contactPerson"> + <el-input v-model="form.contactPerson" placeholder="璇疯緭鍏ヨ仈绯讳汉" /> + </el-form-item> + <el-form-item label="鑱旂郴鐢佃瘽" prop="contactPhone"> + <el-input v-model="form.contactPhone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" /> + </el-form-item> + <el-form-item label="浼犵湡" prop="faxNumber"> + <el-input v-model="form.faxNumber" placeholder="璇疯緭鍏ヤ紶鐪�" /> + </el-form-item> + + <!-- <el-form-item label="缂栫爜" prop="code"> + <el-input v-model="form.code" placeholder="璇疯緭鍏ョ紪鐮�" /> + </el-form-item> --> + + <el-form-item label="娉ㄥ唽鍦板潃" prop="registerAddress"> + <el-input v-model="form.registerAddress" placeholder="璇疯緭鍏ユ敞鍐屽湴鍧�" style="width: 1157px" /> + </el-form-item> + <el-form-item label="閫氳鍦板潃" prop="mailingAddress"> + <el-input v-model="form.mailingAddress" placeholder="璇疯緭鍏ラ�氳鍦板潃" style="width: 1157px" /> + </el-form-item> + <el-form-item label="寮�鎴烽摱琛�" prop="bankAccount"> + <el-input v-model="form.bankAccount" placeholder="璇疯緭鍏ュ紑鎴烽摱琛�" style="width: 520px" /> + </el-form-item> + <el-form-item label="閾惰璐︽埛" prop="countNum"> + <el-input v-model="form.countNum" placeholder="璇疯緭鍏ラ摱琛岃处鎴�" style="width: 520px" /> + </el-form-item> + <el-form-item label="鑱旂郴閭" prop="email"> + <el-input v-model="form.email" placeholder="璇疯緭鍏ラ偖绠�" /> + </el-form-item> + <el-form-item label="璐熻矗浜�" prop="principal"> + <el-input v-model="form.principal" placeholder="璇疯緭鍏ヨ礋璐d汉" /> + </el-form-item> + <el-form-item label="缃戝潃" prop="url"> + <el-input v-model="form.url" placeholder="璇疯緭鍏ョ綉鍧�" /> + </el-form-item> + + <el-form-item label="琛屾斂鍖哄垝鍚嶇О" prop="areaName"> + <el-input v-model="form.areaName" placeholder="璇疯緭鍏ヨ鏀垮尯鍒掑悕绉�" /> + </el-form-item> + <!-- <el-form-item label="浼佷笟绫诲瀷" prop="typeOfEnterprise"> + <el-select v-model="form.typeOfEnterprise" placeholder="璇烽�夋嫨浼佷笟绫诲瀷"> + <el-option + v-for="dict in dict.type.dict_comp_type" + :key="dict.value" + :label="dict.label" +:value="dict.value" + ></el-option> + </el-select> + </el-form-item> --> + <!-- <el-form-item label="琛屾斂鍖哄垝id" prop="areaid"> + <el-input v-model="form.areaid" placeholder="璇疯緭鍏ヨ鏀垮尯鍒抜d" /> + </el-form-item> --> + <!-- <el-form-item label="GMP璇佷功缂栧彿" prop="gmpNo"> + <el-input v-model="form.gmpNo" placeholder="璇疯緭鍏MP璇佷功缂栧彿" /> + </el-form-item> --> + <!-- <el-form-item label="GMP鍙戣瘉鏃ユ湡" prop="gmpissueDate"> + <el-date-picker clearable + v-model="form.gmpissueDate" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨GMP鍙戣瘉鏃ユ湡"> + </el-date-picker> + </el-form-item> --> + <!-- <el-form-item label="缁忚惀璁稿彲璇佸彿" prop="businessLicenseNumber"> + <el-input v-model="form.businessLicenseNumber" placeholder="璇疯緭鍏ョ粡钀ヨ鍙瘉鍙�" /> + </el-form-item> --> + <!-- <el-form-item label="GMP鏈夋晥鎴鏃ユ湡" prop="gmpDeadlineDate"> + <el-date-picker clearable + v-model="form.gmpDeadlineDate" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨GMP鏈夋晥鎴鏃ユ湡"> + </el-date-picker> + </el-form-item> --> + <!-- <el-form-item label="GMP璁よ瘉鑼冨洿" prop="gmpRange"> + <el-input v-model="form.gmpRange" placeholder="璇疯緭鍏MP璁よ瘉鑼冨洿" /> + </el-form-item> --> + <!-- <el-form-item label="GMP寤剁画鑼冨洿" prop="gmpDelayRange"> + <el-input v-model="form.gmpDelayRange" placeholder="璇疯緭鍏MP寤剁画鑼冨洿" /> + </el-form-item> --> + <!-- <el-form-item label="GMP寤剁画鏃ユ湡" prop="gmpDelayDate"> + <el-date-picker clearable + v-model="form.gmpDelayDate" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨GMP寤剁画鏃ユ湡"> + </el-date-picker> + </el-form-item> --> + <!-- <el-form-item label="GMP璇佷功鍥剧墖(base64缂栫爜)"> + <image-upload v-model="form.gmpPhoto"/> + </el-form-item> --> + <!-- <el-form-item label="鎺掑簭" prop="orderNum"> + <el-input v-model="form.orderNum" placeholder="璇疯緭鍏ユ帓搴�" /> + </el-form-item> --> + <!-- <el-form-item label="鏁版嵁鐘舵��(PT10.00.004)" prop="effective"> + <el-select v-model="form.effective" placeholder="璇烽�夋嫨鏁版嵁鐘舵��(PT10.00.004)"> + <el-option + v-for="dict in dict.type.dict_data_status" + :key="dict.value" + :label="dict.label" +:value="dict.value" + ></el-option> + </el-select> + </el-form-item> --> + <!-- <el-form-item label="鎷奸煶" prop="spell"> + <el-input v-model="form.spell" placeholder="璇疯緭鍏ユ嫾闊�" /> + </el-form-item> --> + <!-- <el-form-item label="鏈夋晥鏃堕棿" prop="validTime"> + <el-date-picker clearable v-model="form.validTime" type="date" value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨鏈夋晥鏃堕棿"> + </el-date-picker> + </el-form-item><br> --> + <el-form-item label="澶囨敞" prop="remark"> + <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" :rows="2" label-width="400px" + style="width: 830px" resize="none"></el-input> + </el-form-item> + <!-- <el-form-item label="浜旂瑪绠�鐮�" prop="wbm"> + <el-input v-model="form.wbm" placeholder="璇疯緭鍏ヤ簲绗旂畝鐮�" /> + </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> + </div> +</template> + +<script> +import Big from 'big.js'; +import { + listComp, + getComp, + delComp, + addComp, + updateComp, + addDept, + Deptlist, + deldwdept, + getDwAndDwDept, + dwgrouping, + getProjectList, + getPackageList, + delegrouping, + getDetails, +} from "@/api/system/comp"; +import { deptTreeSelect, projectGetList, getconfigKey } from "@/api/system/tijian"; +import { getInfo } from "@/api/login"; +export default { + name: "Comp", + dicts: [ + "dict_comp_type", + "dict_data_status", + "sys_user_sex", + "reservation_pay_type", + ], + data() { + let checkPhoneNum = (rule, value, callback) => { + 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 (!patter.test(value)) { + return callback(""); + } + }; + return { + // 閬僵灞� + loading: true, + Treedata: [], + getInfodis: 0, + id: "", + // 閫変腑鏁扮粍 + ids: [], + // 鎺у埗鎬у埆閫夋嫨妗嗘槸鍚︾鐢� + isSexDisabled: false, + dwIds: [], + groupIds: [], + deptList: [], + selectionList: [], + newpacName: [], + OnenewpacName: [], + pacList: [], + dataList: [], + groupList: [], + dataLists: [], + // 闈炲崟涓鐢� + single: true, + singleg: true, + singlegg: true, + isfalse: false, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 浣撴鍗曚綅淇℃伅缁存姢琛ㄦ牸鏁版嵁 + compList: [], + groupingList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + opens: false, + openss: false, + openOne: false, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + cnName: null, + enName: null, + code: null, + price: null, + xianprice: null, + limits: null + }, + id: "", + // 琛ㄥ崟鍙傛暟 + form: {}, + forms: { + limits: 10, + ltAge: 0, + gtAge: 100, + groupingName: "", + pacName: "", + payType: "1", + sex: "2", + }, + sfzs: '', + youhui: '', + a: '', + // 琛ㄥ崟鏍¢獙 + rules: { + cnName: [{ required: true, validator: checkPhoneNum, trigger: "blur" }], + dwDeptName: [ + { required: true, validator: checkPhoneNum, trigger: "blur" }, + ], + groupingName: [ + { required: true, validator: checkPhoneNum, trigger: "blur" }, + ], + gtAge: [{ required: true, validator: checkPhoneNum, trigger: "blur" }], + limits: [{ required: false, validator: checkPhoneNum, trigger: "blur" }], + ltAge: [{ required: true, validator: checkPhoneNum, trigger: "blur" }], + /* pacName: [ + { required: true, validator: checkPhoneNum, trigger: "blur" }, + ], */ + payType: [ + { required: true, validator: checkPhoneNum, trigger: "blur" }, + ], + sex: [{ required: true, validator: checkPhoneNum, trigger: "blur" }], + + deleted: [ + { required: true, validator: checkPhoneNum, trigger: "blur" }, + ], + contactPerson: [ + { required: true, validator: checkPhoneNum, trigger: "blur" }, + ], + contactPhone: [ + { required: true, validator: checkPhoneNum, trigger: "blur" }, + ], + // taxNumber: [ + // { required: true, validator: checkPhoneNum, trigger: "blur" }, + // ], + // legalPerson: [ + // { required: true, validator: checkPhoneNum, trigger: "blur" }, + // ], + // registerAddress: [ + // { required: true, validator: checkPhoneNum, trigger: "blur" }, + // ], + // bankAccount: [ + // { required: true, validator: checkPhoneNum, trigger: "blur" }, + // ], + // countNum: [ + // { required: true, validator: checkPhoneNum, trigger: "blur" }, + // ], + // principal: [ + // { required: true, validator: checkPhoneNum, trigger: "blur" }, + // ], + // faxNumber: [ + // { required: true, validator: checkPhoneNum, trigger: "blur" }, + // ], + // mailingAddress: [ + // { required: true, validator: checkPhoneNum, trigger: "blur" }, + // ], + // email: [{ required: true, validator: checkPhoneNum, trigger: "blur" }], + }, + }; + }, + computed: { + // 鏍规嵁 sfzs 瀛楁鐨勫�兼潵鎺у埗琛ㄦ牸鏄惁鏄剧ず + isTableVisible() { + return this.sfzs === 'Y'; + } + }, + created() { + this.getList(); + }, + methods: { + changeXianjia() { + // 鍘熷鎶樻墸鐜囪绠� + + + this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10 + + }, + validateDiscount(row) { + if (row.limits > 10) { + row.limits = 10; // 寮哄埗灏嗗�艰缃负鏈�澶у�� + } else if (row.limits < 0) { + row.limits = 0; // 寮哄埗灏嗗�艰缃负鏈�灏忓�� + } + this.updateProPrice(row); // 鏇存柊浠锋牸鎴栧叾浠栭�昏緫 + }, + updateProPrice(row) { + + const proPrice = new Big(row.proPrice); + + const limits = new Big(row.limits); + const result = proPrice.times(limits.div(10)); // ordPrice * (discount / 10) + row.ysPrice = result.toNumber(); + this.queryParams.xianprice = this.OnenewpacName.reduce((sum, item) => { + return sum.plus(new Big(item.ysPrice || '0')); + }, new Big(0)).toNumber(); + this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10 + }, + getList() { + this.$nextTick(() => { + this.$refs.inputName.focus(); + }), + (this.loading = true); + listComp(this.queryParams).then((response) => { + this.compList = 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.opens = false; + this.$router.go(0); + }, + + // 鍙栨秷濂楅 + cancell() { + this.openss = false; + this.openOne = false; + // this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + drugManufacturerId: null, + cnName: null, + enName: null, + taxNumber: null, + legalPerson: null, + code: null, + contactPerson: null, + contactPhone: null, + typeOfEnterprise: null, + areaid: null, + areaName: null, + principal: null, + mailingAddress: null, + url: null, + email: null, + bankAccount: null, + faxNumber: null, + registerAddress: null, + gmpNo: null, + gmpissueDate: null, + businessLicenseNumber: null, + gmpDeadlineDate: null, + gmpRange: null, + gmpDelayRange: null, + gmpDelayDate: null, + gmpPhoto: null, + remark: null, + createBy: null, + createTime: null, + updateBy: null, + updateTime: null, + orderNum: null, + effective: null, + spell: null, + validTime: null, + wbm: null, + deleted: null, + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + resetQuerys() { + (this.OnenewpacName = []), + (this.queryParams.price = 0), + this.$refs.tbone.toggleRowSelection(this.pacList[0], false); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + selection.forEach((item) => { + this.form = item; + }); + this.ids = selection.map((item) => item.drugManufacturerId); + this.single = selection.length !== 1; + this.multiple = !selection.length; + }, + // 閮ㄩ棬琛ㄦ牸鍗曡鑾峰彇 + handleSelection(selection) { + this.selectionList = selection; + if (selection.length > 1) { + let del_row = selection.shift(); + this.$refs.tb.toggleRowSelection(del_row, false); //璁剧疆杩欎竴琛屽彇娑堥�変腑 + } + this.dwIds = selection.map((item) => item.id); + this.singleg = !selection.length; + if (this.selectionList.length && this.selectionList[0].id) { + this.beCurrent(); + } else { + this.GroupUpdate(); + } + + /* if (this.selectionList.length) { + // 濡傛灉绗竴涓〃鏍兼湁閫変腑椤癸紝閫変腑绗簩涓〃鏍煎搴旂殑鏁版嵁 + const selectedDeptId = this.selectionList[0].id; // 鍋囪姣忎釜椤规湁涓�涓敮涓�鐨� id + const correspondingGroups = this.groupingList.filter( + (group) => group.deptId === selectedDeptId + ); + this.groupList = correspondingGroups; + } else { + // 濡傛灉娌℃湁閫変腑浠讳綍椤癸紝娓呯┖绗簩涓〃鏍肩殑閫変腑椤� + this.groupList = []; + this.$refs.tbs.clearSelection(); + } */ + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "娣诲姞浣撴鍗曚綅淇℃伅缁存姢"; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + const drugManufacturerId = row.drugManufacturerId || this.ids; + getComp(drugManufacturerId).then((response) => { + this.form = response.data; + this.open = true; + this.title = "淇敼浣撴鍗曚綅淇℃伅缁存姢"; + }); + }, + // 缁存姢閮ㄩ棬 + mainDepartment() { + this.opens = true; + + this.groupingList = []; + + if (this.form.drugManufacturerId) { + this.beCurrentDept(); + } + this.title = "濂楅鍒嗙粍缁存姢" + "( " + this.form.cnName + ")"; + getInfo().then((response) => { + this.getInfodis = response.user.discount; + if (this.getInfodis == null || this.getInfodis == 10) { + this.isfalse = true; + } + }); + }, + numberChange(currentValue, oldValue) { + this.$confirm("纭畾淇敼鎵�鏈夊瓙椤圭殑鎶樻墸鍚楋紵", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + this.youhui = currentValue; + if (this.youhui < this.getInfodis) { + this.youhui = this.getInfodis; + // this.$modal.msgError(`璇ヤ汉鍛樻渶楂樹紭鎯犳潈闄愪负${this.getInfodis}鎶榒); + } + this.OnenewpacName.forEach((item) => { + const proPrice = new Big(item.proPrice) + const limits = new Big(this.youhui) + const result = proPrice.times(limits.div(10)) + item.ysPrice = result.toNumber(); + this.a = this.OnenewpacName.reduce((sum, item) => { + return sum.plus(new Big(item.ysPrice || '0')); + }, new Big(0)); + + }) + if (this.a == this.queryParams.xianprice) { + + } else { + if (this.OnenewpacName.length > 0) { + this.OnenewpacName[OnenewpacName.length - 1].ysPrice += this.queryParams.xianprice - this.a; + } + } + }) + .catch(() => { + this.youhui = oldValue; + }); + + }, + + changegroupingName() { + if (this.selectionList.length <= 0) { + this.$modal.msgError("璇峰厛閫変腑閮ㄩ棬鎴栨坊鍔犳柊鐨勯儴闂�"); + } + }, + // 濂楅鑾峰彇 + changeName() { + this.openss = true; + this.title = "鍒嗙粍椤圭洰缁存姢"; + this.OnenewpacName = []; + this.queryParams.price = 0; + this.loading = true; + if (this.forms.sex) { + deptTreeSelect(this.forms.sex).then((response) => { + this.newpacName = response.rows; + this.loading = false; + response.rows.forEach((item, index) => { + item.newID = + (this.queryParams.pageNum - 1) * this.queryParams.pageSize + + index + + 1; + }); + + }); + } else { + deptTreeSelect().then((response) => { + this.newpacName = response.rows; + this.loading = false; + response.rows.forEach((item, index) => { + item.newID = + (this.queryParams.pageNum - 1) * this.queryParams.pageSize + + index + + 1; + }); + + }); + } + getProjectList().then((response) => { + this.Treedata = response.data; + + }); + }, + + handleSearch() { + if (this.queryParams.pacName) { + getPackageList(this.queryParams.pacName).then((response) => { + this.newpacName = response.data; + response.data.forEach((item, index) => { + item.newID = + (this.queryParams.pageNum - 1) * this.queryParams.pageSize + + index + + 1; + }); + }); + } else { + deptTreeSelect().then((response) => { + this.newpacName = response.rows; + response.rows.forEach((item, index) => { + item.newID = + (this.queryParams.pageNum - 1) * this.queryParams.pageSize + + index + + 1; + }); + if (this.newpacName.length != 0) { + this.$nextTick(() => { + this.$refs.tbone.toggleRowSelection(this.newpacName[0], true); + }); + } else { + this.$refs.tbone.clearSelection(); + } + }); + } + }, + handleSearchFor() { + getProjectList(this.queryParams.proName).then((response) => { + this.Treedata = response.data; + response.data.forEach((item, index) => { + item.newID = + (this.queryParams.pageNum - 1) * this.queryParams.pageSize + + index + + 1; + }); + }); + }, + // 鍗曢」鏁版嵁鑾峰彇 + handleChangesingle(selection) { + if (selection) { + this.dataList = selection; + } + }, + resetright() { + if (this.dataList.length == 0) { + return; // 濡傛灉鏁版嵁鍒楄〃涓虹┖锛岀洿鎺ヨ繑鍥� + } else { + this.queryParams.price = 0; // 鍒濆鍖栨�讳环 + this.queryParams.xianprice = 0; // 鍒濆鍖栫幇浠� + this.youhui = 0; // 鍒濆鍖栦紭鎯� + + const newItemsToAdd = []; // 鐢ㄤ簬瀛樺偍鏂伴渶瑕佹坊鍔犵殑椤圭洰 + + this.dataList.forEach((item) => { + this.$refs.tre.toggleRowSelection(item, false); // 鍙栨秷閫変腑鐘舵�� + // 浣跨敤 $set 纭繚鍝嶅簲鎬� + this.$set(item, 'limits', 10); // 璁剧疆闄愬埗鏁伴噺 + this.$set(item, 'ysPrice', item.proPrice); // 璁剧疆鐜颁环涓哄師浠� + + // 妫�鏌ユ槸鍚﹀凡缁忓瓨鍦ㄧ浉鍚岀殑椤圭洰 + const existingItem = this.OnenewpacName.find(existing => existing.proId === item.proId); + if (!existingItem) { + newItemsToAdd.push(item); // 濡傛灉涓嶅瓨鍦ㄧ浉鍚岄」鐩紝鍒欐坊鍔犲埌鏂版暟缁� + this.updateProPrice(item); // 鏇存柊鍗曚釜椤圭洰鐨勪环鏍� + } + }); + + // 娣诲姞鏂伴」鐩埌 OnenewpacName + this.OnenewpacName.push(...newItemsToAdd); + + // 鍒犻櫎閲嶅椤圭洰锛岃繖閲屾垜浠彧闇�澶勭悊鏂版坊鍔犵殑椤圭洰鍜屽師鏈夐」鐩箣闂寸殑閲嶅 + for (let i = this.OnenewpacName.length - newItemsToAdd.length; i < this.OnenewpacName.length - 1; i++) { + for (let j = i + 1; j < this.OnenewpacName.length; j++) { + if (this.OnenewpacName[i].proId === this.OnenewpacName[j].proId) { + this.OnenewpacName.splice(j, 1); // 鍒犻櫎閲嶅鐨勯」鐩� + j--; // 鍥犱负鍒犻櫎浜嗕竴涓厓绱狅紝褰撳墠鐨刯瑕佸噺1 + } + } + } + this.queryParams.price = 0 + this.queryParams.xianprice = 0 + // 閲嶆柊璁$畻鎬讳环鍜岀幇浠� + this.OnenewpacName.forEach((item) => { + this.queryParams.price += item.proPrice; // 绱姞鍘熶环 + this.queryParams.xianprice += item.ysPrice || 0; // 绱姞鐜颁环锛屽鏋測sPrice涓簎ndefined鍒欑疮鍔�0 + }); + + // 璁$畻浼樻儬锛岃繖閲屽亣璁句紭鎯犳槸鐜颁环涓庡師浠风殑宸鐧惧垎姣� + this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10; + } + }, + handledbelete(row) { + this.queryParams.price = 0; + this.queryParams.xianprice = 0; // 鍒濆鍖栫幇浠� + this.youhui = 0; // 鍒濆鍖栦紭鎯� + + // 鍏堟壘鍒板苟鍒犻櫎椤圭洰 + this.OnenewpacName = this.OnenewpacName.filter(item => item.proId !== row.proId); + + // 鐒跺悗鏇存柊鎬讳环鍜岀幇浠� + this.OnenewpacName.forEach((item) => { + this.queryParams.price += item.proPrice; + this.queryParams.xianprice += item.ysPrice || 0; // 纭繚ysPrice瀛樺湪 + }); + + // 璁$畻浼樻儬 + if (this.queryParams.price > 0) { + this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10; + } else { + this.youhui = 0; + } + }, + + submitrighr() { + this.openOne = false; + this.forms.price = this.queryParams.price; + this.forms.ysPrice = this.queryParams.xianprice + this.forms.limits = this.youhui + let mapList = []; + this.OnenewpacName.forEach((item) => { + mapList.push({ + proName: item.proName, + proId: item.proId, + proPrice: item.proPrice, + limits: item.limits, + ysPrice: item.ysPrice + }); + }); + + // 濡傛灉 selectionList 涓虹┖锛屼娇鐢� mapList 缁х画淇濆瓨 + if (this.OnenewpacName.length === 0) { + this.$modal.msgError("璇峰厛閫変腑椤圭洰"); + return; // 鎻愮ず鐢ㄦ埛閫変腑椤圭洰 + } + + let data = { + groupingName: this.forms.groupingName, + gtAge: this.forms.gtAge, + limits: this.forms.limits, + ltAge: this.forms.ltAge, + pacName: this.forms.pacName, + payType: this.forms.payType, + sex: this.forms.sex, + dwDeptId: this.selectionList.length > 0 ? this.selectionList[0].id : "", // 濡傛灉娌℃湁閫変腑閮ㄩ棬锛岃缃负绌� + dwId: this.selectionList.length > 0 ? this.selectionList[0].dwId : "", + mapList: mapList, + price: this.forms.price, + ysPrice: this.forms.ysPrice, + id: this.groupList[0] ? this.groupList[0].id : '' + }; + + // 鍙戦�佽姹備繚瀛樻暟鎹� + dwgrouping(data).then((res) => { + if (res.code == 200) { + this.beCurrent(); + this.forms.groupingName = ""; + this.forms.sex = "2"; + this.forms.pacName = ""; + this.forms.price = ""; + this.forms.ysPrice = ""; + this.forms.payType = "1"; + } + }); + + // this.handleGroup(); + }, + // 濂楅鍗曢」鑾峰彇 + handleChangeOne(selection) { + if (selection.length > 1) { + let del_row = selection.shift(); + this.$refs.tbone.toggleRowSelection(del_row, false); //璁剧疆杩欎竴琛屽彇娑堥�変腑 + } + this.pacList = selection; + + this.dataLists = []; + this.queryParams.price = 0; + this.pacList.forEach((item) => { + this.OnenewpacName = item.tjProjectList; + }); + this.OnenewpacName.forEach((item) => { + this.queryParams.price += item.proPrice; + }); + }, + beCurrentDept() { + Deptlist(this.form.drugManufacturerId).then((response) => { + this.deptList = response.data; + if (this.deptList.length != 0) { + this.$nextTick(() => { + this.$refs.tb.toggleRowSelection(this.deptList[0], true); + }); + } else { + this.$refs.tb.clearSelection(); + } + }); + }, + + // 淇濆瓨閮ㄩ棬 + handleAddDept() { + let data = { + dwName: this.form.cnName, + dwId: this.form.drugManufacturerId, + dwDeptName: this.form.dwDeptName, + signingPrice: this.form.signingPrice, + }; + addDept(data).then((response) => { + if (response.code == 200) { + this.beCurrentDept(); + } + }); + }, + // 鍒犻櫎閮ㄩ棬 + handledeleDept() { + deldwdept(this.dwIds).then((response) => { + if (response.code == 200) { + this.beCurrentDept(); + } + }); + }, + + handleChange(selection) { + this.groupList = selection; + if (selection.length > 0) { + this.groupList.forEach((item) => { + this.forms.groupingName = item.groupingName; + this.forms.gtAge = item.gtAge; + this.forms.limits = item.limits; + this.forms.ltAge = item.ltAge; + this.forms.pacName = item.pacName; + this.forms.payType = item.payType; + this.forms.sex = item.sex; + this.forms.price = item.price; + this.forms.ysPrice = item.ysPrice; + }); + this.isSexDisabled = true; // 绂佺敤鎬у埆閫夋嫨 + } else { + // 濡傛灉娌℃湁閫変腑琛岋紝娓呯┖琛ㄥ崟骞跺彇娑堢鐢� + this.GroupUpdate(); + this.isSexDisabled = false; // 鎭㈠鎬у埆閫夋嫨妗嗕负鍙敤 + } + this.groupIds = selection.map((item) => item.id); + this.singlegg = !selection.length; + }, + xiangmuWh() { + if (!this.forms.groupingName || + !this.forms.sex || + !this.forms.payType) { + this.$modal.msgError("璇峰厛濉啓鎵�鏈夊繀濉」!"); + return; // Stop execution if any required field is empty + } + this.openOne = true; + + this.title = "鍒嗙粍椤圭洰缁存姢"; + this.OnenewpacName = []; + this.queryParams.price = 0; + this.loading = true; + if (this.groupList[0]) { + let id = this.groupList[0].id || ''; + getDetails(id).then((res) => { + this.OnenewpacName = res.data.groupingProList; + this.queryParams.xianprice = this.OnenewpacName.reduce((sum, item) => { + return sum.plus(new Big(item.ysPrice || '0')); + }, new Big(0)); + this.OnenewpacName.forEach((item, index) => { + this.queryParams.price += item.proPrice; + }); + this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10 + }); + } + // console.log(this.groupList[0].id, 9966); + getconfigKey("sfzstc").then((res) => { + this.sfzs = res.msg; + }); + + + + if (this.forms.sex) { + deptTreeSelect(this.forms.sex).then((response) => { + // 濂楅鍚嶇О + this.newpacName = response.rows; + + this.loading = false; + response.rows.forEach((item, index) => { + item.newID = + (this.queryParams.pageNum - 1) * this.queryParams.pageSize + + index + + 1; + }); + }); + } else { + deptTreeSelect().then((response) => { + this.newpacName = response.rows; + this.loading = false; + response.rows.forEach((item, index) => { + item.newID = + (this.queryParams.pageNum - 1) * this.queryParams.pageSize + + index + + 1; + }); + }); + } + getProjectList().then((response) => { + this.Treedata = response.data; + // console.log(this.Treedata,999888); + }); + }, + + handleGroup() { + // 濡傛灉娌℃湁閫変腑浠讳綍閮ㄩ棬锛堝嵆娌℃湁 selectionList锛夛紝鍙互鐩存帴浠� OnenewpacName 鑾峰彇鏁版嵁 + let mapList = []; + this.OnenewpacName.forEach((item) => { + mapList.push({ + proName: item.proName, + proId: item.proId, + proPrice: item.proPrice, + }); + }); + + + + + let data = { + groupingName: this.forms.groupingName, + gtAge: this.forms.gtAge, + limits: this.forms.limits, + ltAge: this.forms.ltAge, + pacName: this.forms.pacName, + payType: this.forms.payType, + sex: this.forms.sex, + dwDeptId: this.selectionList.length > 0 ? this.selectionList[0].id : "", // 濡傛灉娌℃湁閫変腑閮ㄩ棬锛岃缃负绌� + dwId: this.selectionList.length > 0 ? this.selectionList[0].dwId : "", + mapList: mapList, + price: this.forms.price, + ysPrice: this.forms.ysPrice, + id: this.groupList[0].id, + }; + + // 鍙戦�佽姹備繚瀛樻暟鎹� + dwgrouping(data).then((res) => { + if (res.code == 200) { + this.beCurrent(); + this.forms.groupingName = ""; + this.forms.sex = "2"; + this.forms.pacName = ""; + this.forms.price = ""; + this.forms.ysPrice = ""; + this.forms.payType = "1"; + } + }); + }, + // 淇敼鍒嗙粍 + GroupUpdate() { + console.log(this.$refs.elTable) + this.$refs.tbs.clearSelection(); + this.forms = { + groupingName: "", + gtAge: "", + limits: "", + ltAge: "", + pacName: "", + payType: "1", + sex: "2", + price: "", + ysPrice: "", + }; + + }, + beCurrent() { + let data = { + deptId: this.selectionList[0].id, + dwId: this.selectionList[0].dwId, + }; + getDwAndDwDept(data).then((response) => { + // 閮ㄩ棬鍚嶇О + this.groupingList = response.data; + response.data.forEach((item, index) => { + item.newID = + (this.queryParams.pageNum - 1) * this.queryParams.pageSize + + index + + 1; + }); + }); + }, + // 鍒犻櫎鍒嗙粍 + deleteGroup() { + delegrouping(this.groupIds).then((res) => { + if (res.code == 200) { + this.beCurrent(); + } + }); + }, + // 鍙屽嚮 + dbclick(row, column, event) { + row.isOK = !row.isOK; + + this.OnenewpacName[row.index] = JSON.parse(JSON.stringify(row)); // 澶嶅埗鏃х殑鏁版嵁锛屽彇娑堟椂鐢ㄥ埌 + // 鍒ゆ柇鏄惁涓哄弻鍑荤浜屾淇敼锛岀浜屾鍙屽嚮鍒欐彁浜ゆ暟鎹繘琛屼慨鏀癸紝鎴栬�呭彲鐐瑰嚮鎸夐挳鍙栨秷 + if (row.isOK == true) { + this.$confirm("鏄惁闇�瑕佸垹闄�" + row.proName, "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + this.OnenewpacName.splice(row.index, 1); //鍒犻櫎瀵瑰簲鐨勮〃澶� + this.queryParams.price = 0; + if (this.OnenewpacName.length >= 1) { + this.OnenewpacName.forEach((item) => { + this.queryParams.price += item.proPrice; + }); + } else { + this.queryParams.price = 0; + } + }) + .catch(() => { + this.$message({ + type: "info", + message: "宸插彇娑堝垹闄�", + }); + }); + } + }, + + // 鎶婃瘡涓�琛岀殑绱㈠紩鏀捐繘row,鏂逛究鍙屽嚮淇敼鏃犳硶鑾峰緱绱㈠紩鍒欐棤娉曞彇娑堝悗鏁版嵁杩涜杩樺師 + tableRowClassName({ row, rowIndex }) { + row.index = rowIndex; + }, + + /** 鎻愪氦鎸夐挳 */ + submitForm() { + this.$refs["form"].validate((valid) => { + if (valid) { + if (this.form.drugManufacturerId != null) { + updateComp(this.form).then((response) => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + if ( + this.form.cnName && + this.form.contactPerson && + this.form.contactPhone + ) { + addComp(this.form).then((response) => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + this.$modal.msgError("璇峰~鍐欏繀浼犻」"); + } + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const drugManufacturerIds = row.drugManufacturerId || this.ids; + this.$modal + .confirm( + '鏄惁纭鍒犻櫎浣撴鍗曚綅淇℃伅缁存姢缂栧彿涓�"' + + drugManufacturerIds + + '"鐨勬暟鎹」锛�' + ) + .then(function () { + return delComp(drugManufacturerIds); + }) + .then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => { }); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download( + "system/comp/export", + { + ...this.queryParams, + }, + `comp_${new Date().getTime()}.xlsx` + ); + }, + }, +}; +</script> +<style scoped> +.pag { + width: 100%; + display: flex; + justify-content: center; +} + +.pag1 { + width: 30%; +} + +.dia { + display: flex; +} + +.dialog-footer { + width: 1300px; + height: 36px; + display: flex; + justify-content: center; +} + +.dialog-footer1 { + width: 960px; + height: 36px; + display: flex; + justify-content: center; + margin: auto; +} + +.btnback { + width: 50px; + height: 100px; +} +</style> diff --git a/src/views/system/comp/index.vue b/src/views/system/comp/index.vue index 9c97373..bb54498 100644 --- a/src/views/system/comp/index.vue +++ b/src/views/system/comp/index.vue @@ -1,6 +1,7 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" + @submit.native.prevent> <el-form-item label="鍗曚綅鍚嶇О" prop="cnName"> <el-input ref="inputName" v-model="queryParams.cnName" placeholder="璇疯緭鍏ュ崟浣嶅悕绉�" clearable @keyup.enter.native="handleQuery" /> @@ -120,7 +121,7 @@ <el-row :gutter="20"> <el-col :span="7" :xs="24"> <div style="padding: 0 20px"> - <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true"> + <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true" @submit.native.prevent> <el-form-item label="濂楅鍚嶇О" prop="dwDeptName"> <el-input v-model="form.dwDeptName" placeholder="璇疯緭鍏ュ椁愬悕绉�" /> </el-form-item> @@ -146,7 +147,7 @@ </div> </el-col> <el-col :span="17" :xs="24"> - <el-form ref="form" :model="forms" :rules="rules" label-width="78px" :inline="true"> + <el-form ref="form" :model="forms" :rules="rules" label-width="78px" :inline="true" @submit.native.prevent> <el-form-item label="鍒嗙粍鍚嶇О" prop="groupingName"> <el-input v-model="forms.groupingName" placeholder="璇疯緭鍏ュ垎缁勫悕绉�" style="width: 130px" @focus="changegroupingName" /> @@ -238,10 +239,12 @@ <!-- 濂楅 --> <div> - <el-dialog :title="title" :visible.sync="openss" width="1400px" append-to-body :close-on-click-modal="false"> + <el-dialog :title="title" :visible.sync="openss" width="1400px" custom-class="custom-dialog" append-to-body + :close-on-click-modal="false"> <el-row :gutter="24"> <el-col :span="8" :xs="24"> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px" + @submit.native.prevent> <el-form-item label="濂楅鍚嶇О" prop="pacName"> <el-input ref="inputName" v-model="queryParams.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" clearable @keyup.enter.native="handleSearch" style="width: 140px" /> @@ -264,7 +267,7 @@ </el-col> <el-col :span="6" :xs="24"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px" - style="height: 35px"> + style="height: 35px" @submit.native.prevent> <el-form-item label="鍚堣" prop="price"> <el-input ref="inputName" v-model="queryParams.price" placeholder="鍚堣" clearable style="width: 140px" /> </el-form-item> @@ -277,9 +280,9 @@ </div> --> <!-- @row-dblclick="dbclick" --> <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478"> - <el-table-column label="椤圭洰鍚嶇О/浠锋牸/鍏�" align="center" prop="proName"> + <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName"> <template slot-scope="scope"> - {{ scope.row.proName + "/" + scope.row.proPrice }} + {{ scope.row.proName }} </template> </el-table-column> @@ -298,7 +301,7 @@ </el-col> <el-col :span="8" :xs="24"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" - label-width="68px"> + label-width="68px" @submit.native.prevent> <el-form-item label="椤圭洰鍚嶇О" prop="proName"> <el-input ref="inputName" v-model="queryParams.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable @keyup.enter.native="handleSearchFor" style="width: 140px" /> @@ -326,9 +329,9 @@ <el-dialog :title="title" :visible.sync="openOne" width="1400px" append-to-body :close-on-click-modal="false"> <el-row :gutter="24" v-if="!isTableVisible"> - <el-col :span="11" :xs="24"> + <el-col :span="15" :xs="24"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px" - style="height: 35px"> + style="height: 35px" @submit.native.prevent> <el-form-item label="鍘熶环"> <el-input ref="inputName" v-model="queryParams.price" placeholder="鍚堣" clearable style="width: 140px" /> </el-form-item> @@ -345,14 +348,14 @@ </el-form-item> </el-form> <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478"> - <el-table-column label="椤圭洰鍚嶇О/浠锋牸/鍏�" align="center" prop="proName"> + <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="528"> <template slot-scope="scope"> - {{ scope.row.proName + "/" + scope.row.proPrice }} + {{ scope.row.proName }} </template> </el-table-column> - <el-table-column label="鍘熶环" align="center" prop="proPrice"></el-table-column> - <el-table-column label="鎶樻墸"> + <el-table-column label="鍘熶环" align="center" prop="proPrice" width="74"></el-table-column> + <el-table-column label="鎶樻墸" width="81"> <template slot-scope="scope"> <!-- 鍙緭鍏ョ函鏁板瓧鎶樻墸 --> <el-input v-model.number="scope.row.limits" @input="validateDiscount(scope.row)" placeholder="杈撳叆鎶樻墸" @@ -360,8 +363,8 @@ </el-input> </template> </el-table-column> - <el-table-column label="鐜颁环" align="center" prop="ysPrice"></el-table-column> - <el-table-column label="鎿嶄綔" align="center" width="68"> + <el-table-column label="鐜颁环" align="center" prop="ysPrice" width="74"></el-table-column> + <el-table-column label="鎿嶄綔" align="center" width="70"> <template slot-scope="scope"> <el-button size="mini" type="text" icon="el-icon-delete" @click="handledbelete(scope.row)">鍒犻櫎</el-button> @@ -376,9 +379,9 @@ 璁�</el-button> </div> </el-col> - <el-col :span="11" :xs="24"> + <el-col :span="7" :xs="24"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" - label-width="68px"> + label-width="68px" @submit.native.prevent> <el-form-item label="椤圭洰鍚嶇О" prop="proName"> <el-input ref="inputName" v-model="queryParams.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable @keyup.enter.native="handleSearchFor" style="width: 140px" /> @@ -388,7 +391,7 @@ </el-form-item> </el-form> <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle" - height="478" style="width: 70%"> + height="478" style="width: 100%"> <el-table-column type="selection" width="40px" align="center" /> <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" /> <el-table-column label="椤圭洰浠锋牸/鍏�" align="center" prop="proPrice" /> @@ -397,8 +400,9 @@ </el-row> <!-- -=----------------------------------------------------- --> <el-row :gutter="24" v-else> - <el-col :span="8" :xs="24"> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"> + <el-col :span="6" :xs="24"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px" + @submit.native.prevent> <el-form-item label="濂楅鍚嶇О" prop="pacName"> <el-input ref="inputName" v-model="queryParams.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" clearable @keyup.enter.native="handleSearch" style="width: 140px" /> @@ -408,10 +412,8 @@ <!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> --> </el-form-item> </el-form> - <el-table ref="tbone" border v-loading="loading" :data="newpacName" @selection-change="handleChangeOne" - height="478"> - <el-table-column type="selection" width="40px" align="center" /> - <el-table-column label="搴忓彿" align="center" prop="newID" width="50px" /> + <el-table ref="tbone" border v-loading="loading" :data="newpacName" @selection-change="handleChangeOne" height="478"> + <el-table-column label="搴忓彿" align="center" prop="newId" width="50px" /> <el-table-column label="濂楅鍚嶇О/浠锋牸/鍏�" align="center" prop="pacName"> <template slot-scope="scope"> {{ scope.row.pacName + "/" + scope.row.price }} @@ -419,9 +421,9 @@ </el-table-column> </el-table> </el-col> - <el-col :span="6" :xs="24"> + <el-col :span="8" :xs="24"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px" - style="height: 35px"> + style="height: 35px" @submit.native.prevent> <el-form-item label="鍚堣" prop="price"> <el-input ref="inputName" v-model="queryParams.price" placeholder="鍚堣" clearable style="width: 140px" /> </el-form-item> @@ -430,10 +432,10 @@ </el-form-item> </el-form> <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478"> - <el-table-column label="椤圭洰鍚嶇О/浠锋牸/鍏�" align="center" prop="proName"> + <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="170"> <template slot-scope="scope"> - {{ scope.row.proName + "/" + scope.row.proPrice }} + {{ scope.row.proName }} </template> </el-table-column> <el-table-column label="鍘熶环" align="center" prop="proPrice"></el-table-column> @@ -454,7 +456,7 @@ </el-col> <el-col :span="8" :xs="24"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" - label-width="68px"> + label-width="68px" @submit.native.prevent> <el-form-item label="椤圭洰鍚嶇О" prop="proName"> <el-input ref="inputName" v-model="queryParams.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable @keyup.enter.native="handleSearchFor" style="width: 140px" /> @@ -463,10 +465,9 @@ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearchFor">鎼滅储</el-button> </el-form-item> </el-form> - <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle" - height="478" style="width: 70%"> + <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle" height="478"> <el-table-column type="selection" width="40px" align="center" /> - <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="130" /> + <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="288" /> <el-table-column label="椤圭洰浠锋牸/鍏�" align="center" prop="proPrice" width="100" /> </el-table> </el-col> @@ -481,7 +482,7 @@ <!-- 娣诲姞鎴栦慨鏀逛綋妫�鍗曚綅淇℃伅缁存姢瀵硅瘽妗� --> <div class="dia"> <el-dialog :title="title" :visible.sync="open" width="1340px" append-to-body> - <el-form ref="form" :model="form" :rules="rules" label-width="106px" :inline="true"> + <el-form ref="form" :model="form" :rules="rules" label-width="106px" :inline="true" @submit.native.prevent> <el-form-item label="鍗曚綅鍚嶇О" prop="cnName"> <el-input v-model="form.cnName" placeholder="璇疯緭鍏ヤ腑鏂囧悕绉�" style="width: 520px" /> </el-form-item> @@ -592,6 +593,7 @@ :key="dict.value" :label="dict.label" :value="dict.value" + ></el-option> </el-select> </el-form-item> --> @@ -1041,10 +1043,13 @@ } getProjectList().then((response) => { this.Treedata = response.data; - }); }, - + getpro() { + getProjectList().then((response) => { + this.Treedata = response.data; + }); + }, handleSearch() { if (this.queryParams.pacName) { getPackageList(this.queryParams.pacName).then((response) => { @@ -1077,13 +1082,14 @@ }, handleSearchFor() { getProjectList(this.queryParams.proName).then((response) => { - this.Treedata = response.data; + response.data.forEach((item, index) => { item.newID = (this.queryParams.pageNum - 1) * this.queryParams.pageSize + index + 1; }); + this.Treedata = response.data; }); }, // 鍗曢」鏁版嵁鑾峰彇 @@ -1093,53 +1099,53 @@ } }, resetright() { - if (this.dataList.length == 0) { - return; // 濡傛灉鏁版嵁鍒楄〃涓虹┖锛岀洿鎺ヨ繑鍥� - } else { - this.queryParams.price = 0; // 鍒濆鍖栨�讳环 - this.queryParams.xianprice = 0; // 鍒濆鍖栫幇浠� - this.youhui = 0; // 鍒濆鍖栦紭鎯� + if (this.dataList.length == 0) { + return; // 濡傛灉鏁版嵁鍒楄〃涓虹┖锛岀洿鎺ヨ繑鍥� + } else { + this.queryParams.price = 0; // 鍒濆鍖栨�讳环 + this.queryParams.xianprice = 0; // 鍒濆鍖栫幇浠� + this.youhui = 0; // 鍒濆鍖栦紭鎯� - const newItemsToAdd = []; // 鐢ㄤ簬瀛樺偍鏂伴渶瑕佹坊鍔犵殑椤圭洰 + const newItemsToAdd = []; // 鐢ㄤ簬瀛樺偍鏂伴渶瑕佹坊鍔犵殑椤圭洰 - this.dataList.forEach((item) => { - this.$refs.tre.toggleRowSelection(item, false); // 鍙栨秷閫変腑鐘舵�� - // 浣跨敤 $set 纭繚鍝嶅簲鎬� - this.$set(item, 'limits', 10); // 璁剧疆闄愬埗鏁伴噺 - this.$set(item, 'ysPrice', item.proPrice); // 璁剧疆鐜颁环涓哄師浠� + this.dataList.forEach((item) => { + this.$refs.tre.toggleRowSelection(item, false); // 鍙栨秷閫変腑鐘舵�� + // 浣跨敤 $set 纭繚鍝嶅簲鎬� + this.$set(item, 'limits', 10); // 璁剧疆闄愬埗鏁伴噺 + this.$set(item, 'ysPrice', item.proPrice); // 璁剧疆鐜颁环涓哄師浠� - // 妫�鏌ユ槸鍚﹀凡缁忓瓨鍦ㄧ浉鍚岀殑椤圭洰 - const existingItem = this.OnenewpacName.find(existing => existing.proId === item.proId); - if (!existingItem) { - newItemsToAdd.push(item); // 濡傛灉涓嶅瓨鍦ㄧ浉鍚岄」鐩紝鍒欐坊鍔犲埌鏂版暟缁� - this.updateProPrice(item); // 鏇存柊鍗曚釜椤圭洰鐨勪环鏍� - } - }); + // 妫�鏌ユ槸鍚﹀凡缁忓瓨鍦ㄧ浉鍚岀殑椤圭洰 + const existingItem = this.OnenewpacName.find(existing => existing.proId === item.proId); + if (!existingItem) { + newItemsToAdd.push(item); // 濡傛灉涓嶅瓨鍦ㄧ浉鍚岄」鐩紝鍒欐坊鍔犲埌鏂版暟缁� + this.updateProPrice(item); // 鏇存柊鍗曚釜椤圭洰鐨勪环鏍� + } + }); - // 娣诲姞鏂伴」鐩埌 OnenewpacName - this.OnenewpacName.push(...newItemsToAdd); + // 娣诲姞鏂伴」鐩埌 OnenewpacName + this.OnenewpacName.push(...newItemsToAdd); - // 鍒犻櫎閲嶅椤圭洰锛岃繖閲屾垜浠彧闇�澶勭悊鏂版坊鍔犵殑椤圭洰鍜屽師鏈夐」鐩箣闂寸殑閲嶅 - for (let i = this.OnenewpacName.length - newItemsToAdd.length; i < this.OnenewpacName.length - 1; i++) { - for (let j = i + 1; j < this.OnenewpacName.length; j++) { - if (this.OnenewpacName[i].proId === this.OnenewpacName[j].proId) { - this.OnenewpacName.splice(j, 1); // 鍒犻櫎閲嶅鐨勯」鐩� - j--; // 鍥犱负鍒犻櫎浜嗕竴涓厓绱狅紝褰撳墠鐨刯瑕佸噺1 + // 鍒犻櫎閲嶅椤圭洰锛岃繖閲屾垜浠彧闇�澶勭悊鏂版坊鍔犵殑椤圭洰鍜屽師鏈夐」鐩箣闂寸殑閲嶅 + for (let i = this.OnenewpacName.length - newItemsToAdd.length; i < this.OnenewpacName.length - 1; i++) { + for (let j = i + 1; j < this.OnenewpacName.length; j++) { + if (this.OnenewpacName[i].proId === this.OnenewpacName[j].proId) { + this.OnenewpacName.splice(j, 1); // 鍒犻櫎閲嶅鐨勯」鐩� + j--; // 鍥犱负鍒犻櫎浜嗕竴涓厓绱狅紝褰撳墠鐨刯瑕佸噺1 + } + } } - } - } - this.queryParams.price = 0 - this.queryParams.xianprice = 0 - // 閲嶆柊璁$畻鎬讳环鍜岀幇浠� - this.OnenewpacName.forEach((item) => { - this.queryParams.price += item.proPrice; // 绱姞鍘熶环 - this.queryParams.xianprice += item.ysPrice || 0; // 绱姞鐜颁环锛屽鏋測sPrice涓簎ndefined鍒欑疮鍔�0 - }); + this.queryParams.price = 0 + this.queryParams.xianprice = 0 + // 閲嶆柊璁$畻鎬讳环鍜岀幇浠� + this.OnenewpacName.forEach((item) => { + this.queryParams.price += item.proPrice; // 绱姞鍘熶环 + this.queryParams.xianprice += item.ysPrice || 0; // 绱姞鐜颁环锛屽鏋測sPrice涓簎ndefined鍒欑疮鍔�0 + }); - // 璁$畻浼樻儬锛岃繖閲屽亣璁句紭鎯犳槸鐜颁环涓庡師浠风殑宸鐧惧垎姣� - this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10; - } -}, + // 璁$畻浼樻儬锛岃繖閲屽亣璁句紭鎯犳槸鐜颁环涓庡師浠风殑宸鐧惧垎姣� + this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10; + } + }, handledbelete(row) { this.queryParams.price = 0; this.queryParams.xianprice = 0; // 鍒濆鍖栫幇浠� @@ -1569,4 +1575,15 @@ width: 50px; height: 100px; } + +::v-deep .el-dialog__body { + padding: 5px 30px; +} + +.custom-dialog ::v-deep .el-dialog__wrapper { + height: 1400px; + /* 璁剧疆寮瑰嚭妗嗙殑楂樺害 */ + overflow-y: auto; + /* 瓒呰繃鏈�澶ч珮搴︽椂鍑虹幇婊氬姩鏉� */ +} </style> -- Gitblit v1.8.0