From c1adf27fbabbff1d76b60993521c765ef1ed79ef Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期二, 15 八月 2023 20:03:21 +0800 Subject: [PATCH] 新建客户管理 客户名称查重 --- src/components/makepager/TableCommonView.vue | 134 ++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 120 insertions(+), 14 deletions(-) diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue index 9db25d6..ae1083e 100644 --- a/src/components/makepager/TableCommonView.vue +++ b/src/components/makepager/TableCommonView.vue @@ -1,5 +1,5 @@ <template> - <div class="page-view"> + <div class="table-view"> <el-table ref="table" border @@ -13,7 +13,7 @@ @selection-change="handleSelectionChange" :header-cell-style="{ background: '#ECF4FF', color: '#666' }" > - <el-table-column type="selection" width="40"> </el-table-column> + <el-table-column v-if="selectBox" type="selection" width="40"> </el-table-column> <el-table-column v-for="(item, i) in tableList.tableColumn" :key="i" @@ -21,16 +21,63 @@ :label="item.label" :width="item.width" :min-width="item.min" - show-overflow-tooltip="true" - sortable + show-overflow-tooltip + :sortable="item.sortable" > <template slot-scope="scope"> <span v-if="item.price">{{ "锟�" + number_format(scope.row[item.prop], 2, ".", ",") }}</span> - <span v-else-if="item.status" :class="scope.row.status">{{ scope.row[item.prop] }}</span> - <span v-else>{{ scope.row[item.prop] }}</span> + <div v-else-if="item.status" :class="scope.row.status">{{ scope.row[item.prop] }}</div> + <span v-else-if="item.isTime">{{ + dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop]) === "1900-01-01 00:06:26" + ? "--" + : dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop]) + }}</span> + <span v-else-if="item.isClick && scope.row[item.prop]" class="sel-name" @click="selNameClick(scope.row)">{{ + scope.row[item.prop] + }}</span> + <span + v-else-if="item.isSalesLeadClick && scope.row[item.prop]" + class="sel-name" + @click="selSalesLeadClick(scope.row)" + >{{ scope.row[item.prop] }}</span + > + <span + v-else-if="item.isClientClick && scope.row[item.prop]" + class="sel-name" + @click="selClientClick(scope.row)" + >{{ scope.row[item.prop] ? scope.row[item.prop] : "--" }}</span + > + <span + v-else-if="item.isContactClick && scope.row[item.prop]" + class="sel-name" + @click="selContactsClick(scope.row)" + >{{ scope.row[item.prop] }}</span + > + <span + v-else-if="item.isMasterClick && scope.row[item.prop]" + class="sel-name" + @click="selMasterClick(scope.row)" + >{{ scope.row[item.prop] }}</span + > + <span + v-else-if="item.isServiceOrder && scope.row[item.prop]" + class="sel-name" + @click="selServiceOrderClick(scope.row)" + >{{ scope.row[item.prop] }}</span + > + <span + v-else-if="item.isCommonClick && scope.row[item.prop]" + class="sel-name" + @click="selCommonClick(scope.row)" + >{{ scope.row[item.prop] }}</span + > + <span v-else>{{ scope.row[item.prop] ? scope.row[item.prop] : "--" }}</span> </template> </el-table-column> <slot name="tableButton" /> + <div slot="empty"> + <el-empty description="鏆傛棤鏁版嵁"></el-empty> + </div> </el-table> </div> </template> @@ -39,10 +86,15 @@ export default { name: "TableCommonView", props: { + selectBox: { + type: Boolean, + default: true + }, tableList: { type: Object, default: () => { return { + selectBox: true, tableInfomation: [], // 鎺ュ彛杩斿洖鏁版嵁 tableColumn: [ // table琛ㄥ崟 @@ -101,19 +153,19 @@ sums[index] = "鏈〉鎬昏" } const values = data.map((item) => Number(item[column.property])) - // if (column.property === this.showSummary.sumProp) { if (this.showSummary.sumProp.includes(column.property)) { sums[index + 1] = values.reduce((prev, curr) => { const value = Number(curr) if (!isNaN(value)) { - return this.number_format(prev + curr, 2, ".", ",") + return prev + curr } else { - return this.number_format(prev, 2, ".", ",") + return prev } }, 0) sums[index + 1] } }) + // console.log(sums) return sums } }, @@ -144,6 +196,55 @@ s[1] = s[1].substring(0, prec) //灏忔暟鐐逛綅鏁拌秴鍑洪暱搴︽椂鎴彇鍓嶉潰鐨勪綅鏁� } return s.join(dec) + }, + // 鏃堕棿鏄剧ず + dateFormat(fmt, date) { + let ret = "" + date = new Date(date) + const opt = { + "Y+": date.getFullYear().toString(), // 骞� + "m+": (date.getMonth() + 1).toString(), // 鏈� + "d+": date.getDate().toString(), // 鏃� + "H+": date.getHours().toString(), // 鏃� + "M+": date.getMinutes().toString(), // 鍒� + "S+": date.getSeconds().toString() // 绉� + // 鏈夊叾浠栨牸寮忓寲瀛楃闇�姹傚彲浠ョ户缁坊鍔狅紝蹇呴』杞寲鎴愬瓧绗︿覆 + } + for (let k in opt) { + ret = new RegExp("(" + k + ")").exec(fmt) + if (ret) { + fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0")) + } + } + return fmt + }, + // 鏂板缓缂栬緫閫夋嫨寮圭獥 + selNameClick(row) { + this.$emit("selCommonClick", row) + }, + // 閿�鍞嚎绱� + selSalesLeadClick(row) { + this.$emit("selSalesLeadClick", row) + }, + // 瀹㈡埛鍚嶇О + selClientClick(row) { + this.$emit("selClientClick", row) + }, + // 鑱旂郴浜哄鍚� + selContactsClick(row) { + this.$emit("selContactsClick", row) + }, + // 閿�鍞�诲崟 + selMasterClick(row) { + this.$emit("selMasterClick", row) + }, + // 瀹㈡埛鏈嶅姟鍗� + selServiceOrderClick(row) { + this.$emit("selServiceOrderClick", row) + }, + // 鍏叡锛堥攢鍞満浼氥�佹姤浠峰崟銆侀攢鍞�诲崟銆侀攢鍞瓙鍗曘�傘�傘�傦級 + selCommonClick(row) { + this.$emit("selCommonClick", row) } } } @@ -151,16 +252,21 @@ <!-- Add "scoped" attribute to limit CSS to this component only --> <style lang="scss" scoped> -.page-view { - margin-top: 20px; +.table-view { + // margin-top: 20px; margin-right: 10px; - margin-bottom: 40px; + // margin-bottom: 40px; .blue { - padding: 10px; + width: 70px; + text-align: center; color: #fff; - background-color: blue; + background-color: $color-primary; border-radius: 4px; } + .sel-name { + color: $color-primary; + cursor: pointer; + } } ::v-deep { .el-table__footer-wrapper tbody td.el-table__cell { -- Gitblit v1.8.0