| | |
| | | ></el-button> --> |
| | | </div> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="组合" name="third"> |
| | | <div class="tab3"> |
| | | <el-row :gutter="20" style="width: 100%"> |
| | | <el-col :span="6"> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | margin-bottom: 10px; |
| | | margin-top: 10px; |
| | | " |
| | | > |
| | | 项目列表 |
| | | </div> |
| | | <el-input placeholder="输入关键字进行过滤" v-model="filterage"> |
| | | </el-input> |
| | | <div class="tab3"> |
| | | <el-tree |
| | | class="filter-tree" |
| | | v-loading="loading" |
| | | :data="packageList" |
| | | :props="defaultProp" |
| | | show-checkbox |
| | | node-key="id" |
| | | @check="handlepackage" |
| | | :default-checked-keys="checkedkeys" |
| | | :filter-node-method="filterpackage" |
| | | ref="treas" |
| | | :render-content="renderContents" |
| | | > |
| | | </el-tree> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | margin-bottom: 10px; |
| | | margin-top: 10px; |
| | | " |
| | | > |
| | | 明细项目列表 |
| | | </div> |
| | | <div class="tab3"> |
| | | <el-tree |
| | | class="filter-tree" |
| | | v-loading="loading" |
| | | :data="packagedataList" |
| | | node-key="proId" |
| | | :props="defaultpackProps" |
| | | :render-content="renderContent" |
| | | > |
| | | </el-tree> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="11"> |
| | | <div class="grid-content bg-purple"> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | margin-bottom: 10px; |
| | | margin-top: 10px; |
| | | " |
| | | > |
| | | 已选项目列表 |
| | | </div> |
| | | <el-table |
| | | :data="DataLists" |
| | | border |
| | | style="width: 100%" |
| | | height="400" |
| | | :span-method="objectspanmethod" |
| | | > |
| | | <el-table-column prop="propinName" label="检查项目"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="proName" |
| | | label="明细项目" |
| | | width="260px" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="proPrice" label="原价" width="56px"> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | fixed="right" |
| | | class-name="small-padding fixed-width" |
| | | width="50px" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDel(scope.row)" |
| | | title="删除" |
| | | ></el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <h3 style="font-weight: 600">合计:{{ marryalls }}元</h3> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="单项" name="second"> |
| | | <div class="tab8"> |
| | | <!-- <div class="tab7"> |
| | |
| | | </el-row> |
| | | </div> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="组合" name="third"> |
| | | <div class="tab8"> |
| | | <!-- <div class="tab7"> |
| | | <v-tree-transfer |
| | | :treeData="treedataList" |
| | | :defaultProps="{ children: 'tjProjectList', label: 'proName' }" |
| | | :defaultKeys="defaultKeys" |
| | | @changeKeys="changeCategoryKeys" |
| | | :key="datekey" |
| | | ></v-tree-transfer> --> |
| | | <!-- <el-tree :data="data" show-checkbox node-key="proId" :props="defaultProps" :default-checked-keys="treeList" |
| | | @check-change="handleCurrentChecked"> |
| | | </el-tree> --> |
| | | <!-- </div> --> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="6"> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | margin-bottom: 10px; |
| | | margin-top: 10px; |
| | | " |
| | | > |
| | | 组合项目 |
| | | </div> |
| | | <!-- @input="gaibian" --> |
| | | <el-input placeholder="输入关键字进行过滤" v-model="filterText"> |
| | | </el-input> |
| | | <div class="tab3"> |
| | | <el-tree |
| | | class="filter-tree" |
| | | v-loading="loading" |
| | | :data="Treedata" |
| | | :props="defaultProps1" |
| | | show-checkbox |
| | | node-key="id" |
| | | @check="handleCurrentCheckeds" |
| | | :default-checked-keys="checkedkey" |
| | | :filter-node-method="filterNode" |
| | | ref="trees" |
| | | :render-content="renderContent1" |
| | | > |
| | | </el-tree> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | margin-bottom: 10px; |
| | | margin-top: 10px; |
| | | " |
| | | > |
| | | 明细项目列表 |
| | | </div> |
| | | <div class="tab3"> |
| | | <el-tree |
| | | class="filter-tree" |
| | | v-loading="loading" |
| | | :data="zhxqList" |
| | | node-key="id" |
| | | :props="defaultProps2" |
| | | :filter-node-method="filterNode" |
| | | :render-content="renderContent" |
| | | > |
| | | </el-tree> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="11"> |
| | | <div class="grid-content bg-purple"> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | margin-bottom: 10px; |
| | | margin-top: 10px; |
| | | " |
| | | > |
| | | 已选项目列表 |
| | | </div> |
| | | <el-table |
| | | :data="DataList" |
| | | border |
| | | style="width: 100%" |
| | | height="400" |
| | | :span-method="objectSpanMethod" |
| | | > |
| | | <el-table-column prop="hisXmmc" label="检查项目"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="proPrice" |
| | | label="原价" |
| | | width="56px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="proName" |
| | | label="明细项目" |
| | | width="260px" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | fixed="right" |
| | | class-name="small-padding fixed-width" |
| | | width="50px" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete1(scope.row)" |
| | | title="删除" |
| | | ></el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <h3 style="font-weight: bold">合计:{{ marryall }}元</h3> |
| | | <!-- <el-collapse v-model="activeName" accordion v-if="list1"> |
| | | <div> |
| | | <el-collapse-item title="请选择项目"> |
| | | <el-table |
| | | :data="DataList" |
| | | border |
| | | style="width: 100%" |
| | | height="400" |
| | | :span-method="objectSpanMethod" |
| | | > |
| | | <el-table-column |
| | | prop="proName" |
| | | label="项目" |
| | | width="180" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="ordPrice" label="原价"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-collapse-item> |
| | | </div> |
| | | </el-collapse> --> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="cancel">取 消</el-button> |
| | |
| | | getIsRequired, |
| | | getconfigKey, |
| | | getHistryTjOrderProByCusIdCard, |
| | | getZhList, |
| | | listByZhId, |
| | | } from "@/api/system/tijian"; |
| | | import Packages from "@/components/Packages"; |
| | | import { MessageBox } from "element-ui"; |
| | | import VTreeTransfer from "./TreeTransfer.vue"; |
| | | import { getZhList, getlistByZhId } from "@/api/system/package"; |
| | | import historyTj from "@/components/historyTj/index"; |
| | | export default { |
| | | dicts: [ |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | filterage: "", |
| | | checkedkeys: [], |
| | | DataLists: [], |
| | | marryalls: 0, |
| | | packagedataList: [], |
| | | packageList: [], |
| | | zhxqList: [], |
| | | zhList: [], |
| | | pname: "", |
| | |
| | | children: [], |
| | | label: "proName", |
| | | }, |
| | | defaultProps1: { |
| | | defaultProp: { |
| | | children: [], |
| | | label: "zhmc", |
| | | }, |
| | | defaultProps2: { |
| | | defaultpackProps: { |
| | | children: [], |
| | | label: "proName", |
| | | }, |
| | |
| | | filterText(val) { |
| | | this.$refs.tree.filter(val); |
| | | }, |
| | | filterage(val) { |
| | | this.$refs.treas.filter(val); |
| | | }, |
| | | }, |
| | | created() { |
| | | this.getCurrentDateTime(); |
| | |
| | | return data.proName.indexOf(value) !== -1; |
| | | } else { |
| | | return data.proEngName.indexOf(value) !== -1; |
| | | } |
| | | }, |
| | | filterpackage(value, data) { |
| | | if (!value) return true; |
| | | if (data.zhmc.indexOf(value) !== -1) { |
| | | return data.zhmc.indexOf(value) !== -1; |
| | | } else { |
| | | return data.pym.indexOf(value) !== -1; |
| | | } |
| | | }, |
| | | beforeDestroy() { |
| | |
| | | } |
| | | }, |
| | | handleClick(tab, event) { |
| | | if (tab.label == "单项") { |
| | | if (this.activeNames == "second") { |
| | | this.DataList = []; |
| | | this.getDataList(); |
| | | } else if (this.activeNames == "third") { |
| | | this.DataLists = []; |
| | | getZhList().then((response) => { |
| | | if (response.data) { |
| | | this.packageList = response.data; |
| | | this.checkedkeys.push(this.packageList[0].id); |
| | | let datas = { |
| | | zhId: this.packageList[0].id, |
| | | }; |
| | | getlistByZhId(datas).then((res) => { |
| | | this.packagedataList = res.data.tjProjectList; |
| | | for (var i = 0; i < this.packagedataList.length; i++) { |
| | | let proId = this.packagedataList[i].proId; |
| | | getProSonDxList(proId).then((res) => { |
| | | this.TreedataList = res.data.list; |
| | | this.TreedataList.forEach((item) => { |
| | | this.DataLists.push(item); |
| | | if (this.DataLists.length >= 1) { |
| | | this.marryalls = 0; |
| | | this.DataLists.forEach((item1) => { |
| | | this.marryalls += item1.proPrice; |
| | | this.packagedataList.forEach((item3) => { |
| | | if (item1.proParentId == item3.proId) { |
| | | item1.propinName = item3.proName; |
| | | } |
| | | if (tab.label == "组合") { |
| | | this.DataList = []; |
| | | this.getzhList(); |
| | | }); |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | this.loading = false; |
| | | }); |
| | | } |
| | | }, |
| | | // gaibian(val){ |
| | |
| | | // }, |
| | | getDataList() { |
| | | this.loading = true; |
| | | // this.pname = "null"; |
| | | getProParentIdDxList().then((response) => { |
| | | this.Treedata = response.data.list; |
| | | if (this.tableData[0]) { |
| | |
| | | }); |
| | | }); |
| | | } |
| | | this.checkedkey.push("1735504273274236929"); |
| | | let proId = "1735504273274236929"; |
| | | this.Treedata.forEach((item) => { |
| | | if (proId == item.proId) { |
| | | this.names = item.proName; |
| | | } |
| | | }); |
| | | // if (this.DataLists.length != 0) { |
| | | // this.DataLists.forEach((selectionitem) => { |
| | | // this.Treedata.forEach((item) => { |
| | | // if (selectionitem.propinName == item.proName) { |
| | | // item.disabled = true; |
| | | // } |
| | | // }); |
| | | // }); |
| | | // } |
| | | this.checkedkey.push(this.Treedata[0].proId); |
| | | let proId = this.Treedata[0].proId; |
| | | getProSonDxList(proId).then((res) => { |
| | | this.TreedataList = res.data.list; |
| | | this.TreedataList.forEach((item) => { |
| | | this.checkedListkey.push(item.proId); |
| | | this.DataList.push(item); |
| | | this.DataList.forEach((item) => { |
| | | item.propinName = this.names; |
| | | item.propinName = this.Treedata[0].proName; |
| | | }); |
| | | }); |
| | | this.TotalPrice1 = 0; |
| | |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | getzhList() { |
| | | // getZhList().then((res) => { |
| | | // console.log(res); |
| | | // this.zhList = res.data; |
| | | // }); |
| | | // this.pname = "null"; |
| | | getZhList().then((response) => { |
| | | this.Treedata = response.data; |
| | | if (this.tableData[0]) { |
| | | this.tableData[0].tjProjectList.forEach((selectionitem) => { |
| | | this.Treedata.forEach((item) => { |
| | | if (selectionitem.proId == item.proId) { |
| | | item.disabled = true; |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | this.checkedkey.push("1735504273274236929"); |
| | | let proId = "1735504273274236929"; |
| | | this.Treedata.tjProjectList.forEach((item) => { |
| | | if (proId == item.proId) { |
| | | this.names = item.proName; |
| | | } |
| | | }); |
| | | handlepackage(data, checked, checkedNodes) { |
| | | if (checked.checkedNodes.length != 0) { |
| | | this.$refs.treas.setCheckedKeys([data.id]); |
| | | let datas = { |
| | | zhId: data.id, |
| | | }; |
| | | getlistByZhId(datas).then((res) => { |
| | | this.packagedataList = res.data.tjProjectList; |
| | | for (var i = 0; i < this.packagedataList.length; i++) { |
| | | let proId = this.packagedataList[i].proId; |
| | | getProSonDxList(proId).then((res) => { |
| | | this.TreedataList = res.data.list; |
| | | this.TreedataList.forEach((item) => { |
| | | this.checkedListkey.push(item.proId); |
| | | this.DataLists.push(item); |
| | | this.DataLists.forEach((item) => { |
| | | item.propinName = this.names; |
| | | if (this.DataLists.length >= 1) { |
| | | this.marryalls = 0; |
| | | this.DataLists.forEach((item1) => { |
| | | this.marryalls += item1.proPrice; |
| | | this.packagedataList.forEach((item3) => { |
| | | if (item1.proParentId == item3.proId) { |
| | | item1.propinName = item3.proName; |
| | | } |
| | | }); |
| | | }); |
| | | this.TotalPrice1 = 0; |
| | | this.marryall = 0; |
| | | if (this.DataLists.length != 0) { |
| | | this.list1 = false; |
| | | this.DataLists.forEach((item) => { |
| | | this.TotalPrice1 = item.proPrice + this.TotalPrice1; |
| | | this.marryall += item.proPrice; |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | }); |
| | | } else if (checked.checkedNodes.length == 0) { |
| | | // for (var i = 0; i < data.tjProjectList.length; i++) { |
| | | // let proId = data.tjProjectList[i].proId; |
| | | // getProSonDxList(proId).then((res) => { |
| | | // this.TreedataList = res.data.list; |
| | | // this.TreedataList.forEach((item) => { |
| | | // this.DataLists.forEach((item1, index) => { |
| | | // if (item.proId == item1.proId) { |
| | | // this.DataLists.splice(index, 1); |
| | | |
| | | // } |
| | | // }); |
| | | // }); |
| | | // this.marryalls = 0 |
| | | // if(this.DataLists.length != 0){ |
| | | // this.DataLists.forEach((item1, index) => { |
| | | // this.marryalls += item1.proPrice; |
| | | // }) |
| | | // } |
| | | // }); |
| | | // } |
| | | } |
| | | }, |
| | | objectspanmethod({ row, column, rowIndex, columnIndex }) { |
| | | let fields = ["propinName"]; |
| | | let cellValue = row[column.property]; |
| | | if (cellValue && fields.includes(column.property)) { |
| | | let prevRow = this.DataLists[rowIndex - 1]; |
| | | let nextRow = this.DataLists[rowIndex + 1]; |
| | | if (prevRow && prevRow[column.property] === cellValue) { |
| | | return { rowspan: 0, colspan: 0 }; |
| | | } else { |
| | | let countRowspan = 1; |
| | | while (nextRow && nextRow[column.property] === cellValue) { |
| | | nextRow = this.DataLists[++countRowspan + rowIndex]; |
| | | } |
| | | |
| | | if (countRowspan > 1) { |
| | | return { rowspan: countRowspan, colspan: 1 }; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // if (columnIndex == 3) { |
| | | // let rowspan = 0; |
| | | // this.DataLists.forEach((element) => { |
| | | // if (element.propinName === row.propinName) { |
| | | // rowspan++; |
| | | // } |
| | | // }); |
| | | // return [rowspan, 1]; |
| | | // } |
| | | }, |
| | | |
| | | // 点击获取每个树节点 |
| | | handleCurrentChecked(data, checked, checkedNodes) { |
| | | this.dataObj = data; |
| | |
| | | } |
| | | }, |
| | | |
| | | handleCurrentCheckeds(data, checked, checkedNodes) { |
| | | console.log(data,222); |
| | | let zhId = data.id; |
| | | listByZhId(zhId).then((res) => { |
| | | this.zhxqList = res.data.tjProjectList; |
| | | this.dataObj = data; |
| | | if (checked.checkedNodes.length != 0) { |
| | | this.zhxqList.forEach((element) => { |
| | | this.$refs.trees.setCheckedKeys([data.id]); |
| | | let proId = element.proId; |
| | | getProSonDxList(proId).then((rese) => { |
| | | this.TreedataLists = rese.data.list; |
| | | this.TreedataLists.forEach((item) => { |
| | | this.checkedListkey.push(item.proId); |
| | | this.DataLists.push(item); |
| | | console.log(this.DataLists,333); |
| | | this.spliceData(); |
| | | this.DataLists.forEach((item1) => { |
| | | if (item1.proParentId == data.proId) { |
| | | item1.propinName = data.proName; |
| | | } |
| | | }); |
| | | }); |
| | | this.TotalPrice1 = 0; |
| | | this.marryall = 0; |
| | | if (this.DataLists.length != 0) { |
| | | this.list1 = false; |
| | | this.DataLists.forEach((item) => { |
| | | // this.TotalPrice1 = item.proPrice + this.TotalPrice1; |
| | | this.marryall += item.proPrice; |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | } else if (checked.checkedNodes.length == 0) { |
| | | this.zhxqList.forEach((element) => { |
| | | let proId = element.proId; |
| | | getProSonDxList(proId).then((res) => { |
| | | this.TreedataLists = res.data.list; |
| | | this.checkedListkey = []; |
| | | }); |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | spliceData() { |
| | | for (var i = 0; i < this.DataList.length; i++) { |
| | | for (var j = i + 1; j < this.DataList.length; j++) { |
| | |
| | | </span> |
| | | ); |
| | | }, |
| | | renderContent1(h, { node, data, store }) { |
| | | renderContents(h, { node, data, store }) { |
| | | return ( |
| | | <span class="custom-tree-node"> |
| | | <span>{node.label}</span> |
| | | <span>{node.label}</span> |
| | | <span>({data.price}元)</span> |
| | | </span> |
| | | ); |
| | |
| | | } |
| | | }); |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete1(row) { |
| | | this.DataList.forEach((item, index) => { |
| | | handleDel(row) { |
| | | this.DataLists.forEach((item, index) => { |
| | | if (item.proId == row.proId) { |
| | | this.DataList.splice(index, 1); |
| | | this.marryall = 0; |
| | | this.DataList.forEach((item1) => { |
| | | this.marryall += item1.proPrice; |
| | | this.DataLists.splice(index, 1); |
| | | this.marryalls = 0; |
| | | this.DataLists.forEach((item1) => { |
| | | this.marryalls += item1.proPrice; |
| | | }); |
| | | } |
| | | }); |
| | |
| | | }); |
| | | } |
| | | if (this.DataLists.length != 0) { |
| | | this.DataList.forEach((item) => { |
| | | this.DataLists.forEach((item) => { |
| | | this.proIds.push(item.proId); |
| | | }); |
| | | } |
| | |
| | | } |
| | | |
| | | .tab3 { |
| | | max-height: 390px; |
| | | max-height: 400; |
| | | overflow-y: auto; |
| | | border: 1px solid #d9d9d9; |
| | | } |