Переглянути джерело

客户画像触达次数

newStyle
douzhuo 2 роки тому
джерело
коміт
cd2282e36b
16 змінених файлів з 1130 додано та 539 видалено
  1. +1
    -62
      src/views/Customer/CompanyRecord.vue
  2. +93
    -32
      src/views/Customer/SalesStage.vue
  3. +53
    -117
      src/views/Customer/index.vue
  4. +137
    -0
      src/views/Customer/table.js
  5. +67
    -59
      src/views/ReceivingRecords/index.vue
  6. +85
    -0
      src/views/ReceivingRecords/table.js
  7. +74
    -15
      src/views/Scheduling/index.vue
  8. +59
    -0
      src/views/Scheduling/table.js
  9. +0
    -20
      src/views/Statistics/BuildingContrast.vue
  10. +81
    -0
      src/views/Statistics/table.js
  11. +63
    -46
      src/views/Template/PinspeakwordsList.vue
  12. +115
    -0
      src/views/Template/table.js
  13. +102
    -72
      src/views/Template/taboo.vue
  14. +85
    -115
      src/views/Template/wrongword.vue
  15. +48
    -1
      src/views/inspection/ProhibitedList.vue
  16. +67
    -0
      src/views/inspection/table.js

+ 1
- 62
src/views/Customer/CompanyRecord.vue Переглянути файл

@@ -151,68 +151,7 @@
</el-dropdown>
</template>
</avue-crud>
<!-- <el-table ref="table" :header-cell-style="{background:'#F5F7FA',color:'#333333'}" height="572px" :data="tableData" stripe style="width: 100%">
<el-table-column :show-overflow-tooltip="true" width="120px" prop="name" label="公司名称" align="center">
</el-table-column>
<el-table-column prop="operatorName" label="代理商" align="center">
</el-table-column>
<el-table-column :show-overflow-tooltip="true" width="120px" v-if="orgType == 0" prop="operationStaffName"
label="运营人员" align="center">
</el-table-column>
<el-table-column :show-overflow-tooltip="true" width="120px" prop="provinceName,cityName" label="公司地区"
align="center">
<template slot-scope="scope">
{{ scope.row.provinceName }}{{ scope.row.cityName }}
</template>
</el-table-column>
<el-table-column label="联系人信息" :width="140" align="center">
<template slot-scope="scope">
<p>{{ scope.row.contactPerson }}-{{ scope.row.contactNumber }}</p>
</template>
</el-table-column>

<el-table-column prop="managerPhone" label="管理员账号" align="center">
</el-table-column>
<el-table-column prop="houseNum" label="服务期项目" align="center">
</el-table-column>
<el-table-column prop="lockFlag" label="状态" align="center">
<template slot-scope="{ row }">
{{ row.lockFlag == 1 ? "禁用" : "启用" }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="200">
<template slot-scope="scope">
<el-button type="text" v-if="cus_crd_edit" size="small" @click="infoeditor(scope.row)">编辑</el-button>
<el-button type="text" v-if="cus_crd_change" size="small" @click="inforeplace(scope.row)">更换账号</el-button>
<el-dropdown>
<el-button type="text" size="small" style="margin-left:10px;">更多</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>
<el-button type="text" v-if="cus_crd_del" size="small" @click="toinifodelete(scope)">删除</el-button>
</el-dropdown-item>
<el-dropdown-item>
<el-button type="text" size="small" v-if="cus_com_sys" @click="editOpera(scope.row, 0)">系统运营
</el-button>
</el-dropdown-item>
<el-dropdown-item>
<el-button type="text" v-if="cus_crd_bindAgent" size="small" @click="bindAgent(scope.row)">绑定代理商
</el-button>
</el-dropdown-item>
<el-dropdown-item>
<el-button type="text" v-if="cus_crd_open" size="small" @click="toDisable(scope.row)">{{
scope.row.lockFlag == 0 ? "禁用" : "启用"
}}</el-button>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table> -->
<!-- <div style="display: flex; justify-content: flex-end; margin-top: 10px">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageNum"
:page-sizes="[10, 20,30,40, 50,100]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total">
</el-pagination>
</div> -->
</div>

<el-dialog


+ 93
- 32
src/views/Customer/SalesStage.vue Переглянути файл

@@ -27,10 +27,7 @@
</el-select>
</div>
<div style="margin-left: 20px">
<el-button
v-if="cus_sal_add"
@click="infoadd()"
type="primary"
<el-button v-if="cus_sal_add" @click="infoadd()" type="primary"
>新增</el-button
>
</div>
@@ -38,7 +35,23 @@
</div>
<!-- 表格 -->
<div class="cen-tab">
<el-table :data="tableData" height="527px" ref="table" stripe style="width: 100%" :header-cell-style="{background:'#F5F7FA',color:'#333333'}">
<avue-crud
ref="crud"
:data="tableData"
:table-loading="tableLoading"
:option="tableOption"
:show-column.sync="showColumn"
>
<template slot-scope="{ row }" slot="menu">
<el-button type="text" v-if="cus_sal_edit" @click="edit(row)"
>编辑</el-button
>
<el-button type="text" v-if="cus_sal_del" @click="toinifodelete(row)"
>删除</el-button
>
</template>
</avue-crud>
<!-- <el-table :data="tableData" height="527px" ref="table" stripe style="width: 100%" :header-cell-style="{background:'#F5F7FA',color:'#333333'}">
<el-table-column prop="houseName" label="项目名称" align="center">
</el-table-column>
<el-table-column prop="stageName" label="阶段名称" align="center">
@@ -54,10 +67,16 @@
<el-button type="text" v-if="cus_sal_del" @click="toinifodelete(row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-table> -->
</div>

<el-dialog :title="editFlag==true?'编辑阶段':'新增阶段'" :visible.sync="dialogVisible" @close="clear" :center="true" width="400px">
<el-dialog
:title="editFlag == true ? '编辑阶段' : '新增阶段'"
:visible.sync="dialogVisible"
@close="clear"
:center="true"
width="400px"
>
<el-form
:model="ruleForm"
label-position="labelPosition"
@@ -67,21 +86,41 @@
style="width: 100%; margin: 0 auto"
>
<el-form-item label="阶段名称:" prop="stageName">
<el-input v-model="ruleForm.stageName" placeholder="阶段名称" maxlength="10" clearable=""></el-input>
<el-input
v-model="ruleForm.stageName"
placeholder="阶段名称"
maxlength="10"
clearable=""
></el-input>
</el-form-item>
<el-form-item label="顺序:" prop="sort">
<el-input
maxlength="5"
maxlength="5"
v-model="ruleForm.sort"
placeholder="顺序"
onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)));"
></el-input>
</el-form-item>
<el-form-item label="备注:">
<el-input v-model="ruleForm.remarks" placeholder="备注" type="textarea" maxlength="50" show-word-limit></el-input>
<el-input
v-model="ruleForm.remarks"
placeholder="备注"
type="textarea"
maxlength="50"
show-word-limit
></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer" style="border-top:1px solid #eee;padding-top: 20px;display: flex;justify-content: end;">
<div
slot="footer"
class="dialog-footer"
style="
border-top: 1px solid #eee;
padding-top: 20px;
display: flex;
justify-content: end;
"
>
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="addSure()">保存</el-button>
</div>
@@ -94,6 +133,11 @@ import { mapGetters } from "vuex";
export default {
data() {
return {
tableIdName: "CustomerSalesStage", // 当前页面需要的变量
tableOption: this.$tableOption.CustomerSalesStage, // 当前table配置项
tableLoading: false, // 是否显示加载中
showColumn: [], // 监听的显示列的变量

houseId: "",
houseList: [],
orgType: localStorage.getItem("orgType"),
@@ -115,10 +159,21 @@ export default {
value: "",
};
},
computed: {
computed: {
...mapGetters(["permissions"]),
},
watch: {
showColumn(nowV) {
let params = {
tableIdName: this.tableIdName,
optionData: nowV,
};
this.$db.upDate(params);
},
},
created() {
// 获取显隐的列表
this.setTableOption();
this.cus_sal_add = this.permissions["cus_sal_add"];
this.cus_sal_edit = this.permissions["cus_sal_edit"];
this.cus_sal_del = this.permissions["cus_sal_del"];
@@ -128,6 +183,14 @@ computed: {
this.zkhousePage();
},
methods: {
// 获取当前页面的显隐
setTableOption() {
this.$db.getDataByKey(this.tableIdName).then((res) => {
if (res.tableIdName == this.tableIdName) {
this.showColumn = res.optionData;
}
});
},
houseChange() {
this.findbypage();
},
@@ -137,7 +200,7 @@ computed: {
sort: "", // 联系人
remarks: "", // 联系人手机号
};
this.$refs.ruleForm.resetFields()
this.$refs.ruleForm.resetFields();
},
zkhousePage() {
this.$api.api
@@ -162,10 +225,10 @@ computed: {
};
this.$api.api.lifeTrackDefineList(obj).then((res) => {
this.tableData = res.data;
// 表格中设置ref属性,在数据渲染之后或者updated()之后
this.$nextTick(() => {
this.$refs.table.doLayout();
});
// 表格中设置ref属性,在数据渲染之后或者updated()之后
this.$nextTick(() => {
this.$refs.table.doLayout();
});
});
},
//删除
@@ -194,9 +257,7 @@ computed: {
}
});
})
.catch(() => {

});
.catch(() => {});
},
//新增
infoadd() {
@@ -301,27 +362,27 @@ computed: {
}
}
}
/deep/ .el-table__header-wrapper{
thead{
tr{
th{
background: #F5F7FA;
/deep/ .el-table__header-wrapper {
thead {
tr {
th {
background: #f5f7fa;
color: #333333;
}
}
}
}
/deep/ .el-dialog--center{
/deep/ .el-dialog--center {
border-radius: 8px;
.el-dialog__title{
.el-dialog__title {
font-weight: bold;
}
}
/deep/ .el-button--primary{
background: #2671E2 !important;
border: 1px solid #2671E2 !important;
/deep/ .el-button--primary {
background: #2671e2 !important;
border: 1px solid #2671e2 !important;
}
/deep/ .el-button--text{
color: #2671E2;
/deep/ .el-button--text {
color: #2671e2;
}
</style>

+ 53
- 117
src/views/Customer/index.vue Переглянути файл

@@ -1,8 +1,5 @@
<template>
<div class="box-center">
<!-- <div class="add-button">
<el-button type="primary">筛选</el-button>
</div> -->
<div class="booxtop">
<div class="app-topbox">
<div class="div-labox" v-if="orgType != 3">
@@ -269,95 +266,19 @@
<!-- 表格 -->
<div class="cen-tab">
<el-table

<avue-crud
ref="crud"
:page.sync="page"
:data="tableData"
height="572px"
ref="table"
stripe
style="width: 100%"
:table-loading="tableLoading"
:option="tableOption"
:show-column.sync="showColumn"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
@selection-change="handleSelectionChange"
:header-cell-style="{background:'#F5F7FA',color:'#333333'}"
>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column
type="index"
label="序号"
align="center"
></el-table-column>
<el-table-column prop="name" label="客户" align="center">
</el-table-column>
<el-table-column
prop="phone"
label="联系电话"
width="150"
align="center"
>
</el-table-column>
<el-table-column
prop="agentName"
label="置业顾问"
width="110"
align="center"
>
</el-table-column>
<el-table-column prop="level" label="客户等级" align="center">
<template slot-scope="{ row }">
{{
row.level == 1
? "A"
: row.level == 2
? "B"
: row.level == 3
? "C"
: row.level == 4
? "D"
: ""
}}
</template>
</el-table-column>
<el-table-column prop="clientStageName" label="客户阶段" align="center">
<template slot-scope="{ row }">
{{ row.clientStageName || "--" }}
</template>
</el-table-column>
<el-table-column
prop="pickCount"
label="客户标签命中数"
width="150"
align="center"
sortable
></el-table-column>
<el-table-column prop="visitRecord" label="到访次数" align="center" width="100" sortable>
<template slot-scope="{ row }">
{{ row.visitRecord || "0" }}
</template>
</el-table-column>
<el-table-column prop="mm" label="接待时长" align="center" width="100" sortable>
</el-table-column>
<el-table-column prop="fraction" label="销讲执行率" align="center" width="120" sortable>
<template slot-scope="{ row }"> {{ row.fraction || "0" }}% </template>
</el-table-column>
<el-table-column
prop="updateTime"
label="添加时间"
width="200"
align="center"
sortable
>
</el-table-column>
<el-table-column
prop="createTime"
label="最近到访时间"
width="200"
align="center"
sortable
>
<template slot-scope="{ row }">
{{ row.createTime || "暂无" }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="180" fixed="right">
<template slot-scope="{ row }">
<template slot-scope="{ row }" slot="menu">
<el-button @click="toCustomer" type="text" v-if="cus_index_detail">客户详情</el-button>
<el-button
type="text"
@@ -365,26 +286,11 @@
v-if="cus_index_visit"
>接待详情</el-button
>
<!-- <el-button type="text">更多</el-button> -->
<el-button type="text" @click="tranfser(row)" v-if="cus_index_take"
>转交</el-button
>
<!-- <el-button type="text" v-if="cus_index_del">删除</el-button> -->
</template>
</el-table-column>
</el-table>
<div style="display: flex; justify-content: flex-end; margin-top: 10px">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 20,30,40, 50,100]"
:page-size="size"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
>
</el-pagination>
</div>
</template>
</avue-crud>
</div>

<!-- 提示转义客户 -->
@@ -428,6 +334,18 @@ import { exportMethodPost } from "@/util/util";
export default {
data() {
return {
tableIdName: "CustomerIndex", // 当前页面需要的变量
tableOption: this.$tableOption.CustomerIndex, // 当前table配置项
tableLoading: false, // 是否显示加载中
showColumn: [], // 监听的显示列的变量
page: {
total: 0, // 总页数
currentPage: 1, // 当前页数
pageSize: 10, // 每页显示多少条
},


isOpen:false,
TimetoAhoose: 2,
time: [],
@@ -551,9 +469,6 @@ export default {
label: "未标注",
},
],
currentPage: 1,
size: 10,
total: 10,
value: "",
input: "",
tableData: [],
@@ -589,7 +504,19 @@ export default {
computed: {
...mapGetters(["permissions"]),
},
watch: {
showColumn(nowV) {
let params = {
tableIdName: this.tableIdName,
optionData: nowV,
};
this.$db.upDate(params);
},
},

created() {
// 获取显隐的列表
this.setTableOption();
this.cus_index_detail = this.permissions["cus_index_detail"];
this.cus_index_take = this.permissions["cus_index_take"];
this.cus_index_del = this.permissions["cus_index_del"];
@@ -601,6 +528,15 @@ export default {
this.zkhousePage();
},
methods: {
// 获取当前页面的显隐
setTableOption() {
this.$db.getDataByKey(this.tableIdName).then((res) => {
if (res.tableIdName == this.tableIdName) {
this.showColumn = res.optionData;
}
});
},
isSystoleForm(){
this.isOpen = !this.isOpen
},
@@ -692,8 +628,8 @@ export default {
// 接待记录列表
findbypage() {
let obj = {
current: this.currentPage,
size: this.size,
current: this.page.currentPage,
size: this.page.pageSize,
...this.searchForm,
};
obj.keywordIds = obj.keywordsId.join(",");
@@ -705,16 +641,16 @@ export default {
this.$api.api.customerManagement(obj).then((res) => {
// console.log(res)
this.tableData = res.data.records;
this.total = res.data.total;
this.page.total = res.data.total;
// 表格中设置ref属性,在数据渲染之后或者updated()之后
this.$nextTick(() => {
this.$refs.table.doLayout();
this.$refs.crud.doLayout();
});
});
},
clearScreen() {
this.currentPage = 1;
this.page.currentPage = 1;
this.searchForm = {
name: "",
keywordsId: [],
@@ -772,7 +708,7 @@ export default {
this.houseChange();
},
screen() {
this.currentPage = 1;
this.page.currentPage = 1;
this.findbypage();
},
findKeywords() {
@@ -814,12 +750,12 @@ export default {
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.size = val;
this.page.pageSize = val;
this.findbypage();
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
this.page.currentPage = val;
this.findbypage();
},
tabtimetap(idx) {


+ 137
- 0
src/views/Customer/table.js Переглянути файл

@@ -208,5 +208,142 @@ export default {
}
},
]
},

CustomerIndex: {
border: true,
index: true,
height: 480,
indexLabel: "序号",
stripe: true,
menuAlign: "center",
menuWidth: 146,
menu: true,
align: "center",
refreshBtn: false,
searchSize: "mini",
selection:true,
selectionWidth: 100,
selectionFixed:false,
searchMenuSpan: 9,
delBtn: false,
addBtn: false,
editBtn: false,
viewBtn: false,
size: "small",
column: [
{
label: "客户",
prop: "name",
width: "120px",
},
{
label: "联系电话",
prop: "phone",
width: '150px'
},
{
label: "置业顾问",
prop: "agentName",
},
{
label: "客户等级",
prop: "level",
formatter: (data) => {
if (Number(data.level) > 0) {
return String.fromCharCode(Number(data.level)+64)
} else {
return ''
}
}
},
{
label: "客户阶段",
prop: "clientStageName",
},
{
label: "客户标签命中数",
prop: "pickCount",
width: '150px',
sortable: true,
},
{
sortable: true,
label: "到访次数",
prop: "visitRecord",
width: '100px',
formatter: data => {
return data.visitRecord || 0
}
},
{
sortable: true,
label: "接待时长",
prop: "mm",
width: '100px',
},
{
sortable: true,
label: "销讲执行率",
prop: "fraction",
width: '120px',
formatter: data => {
return `${(data.fraction || 0)}%`
}
},
{
sortable: true,
label: "添加时间",
prop: "updateTime",
width: '200px',
},
{
sortable: true,
label: "最近到访时间",
prop: "createTime",
width: '200px',
formatter: data => {
return `${(data.createTime || "暂无")}`
}
},
]
},

CustomerSalesStage: {
border: true,
index: false,
height: 480,
indexLabel: "序号",
stripe: true,
menuAlign: "center",
menuWidth: 146,
menu: true,
align: "center",
refreshBtn: false,
searchSize: "mini",
delBtn: false,
addBtn: false,
editBtn: false,
viewBtn: false,
size: "small",
column: [
{
label: "项目名称",
prop: "houseName",
},
{
label: "阶段名称",
prop: "stageName",
},
{
label: "顺序",
prop: "sort",
},
{
label: "备注",
prop: "remarks",
},
]
}
}

+ 67
- 59
src/views/ReceivingRecords/index.vue Переглянути файл

@@ -2,7 +2,7 @@
<div class="box-center">
<!-- 头 -->
<div class="app-top">
<div class="app-titel" v-if="orgType != 3" style="margin-bottom:10px">
<div class="app-titel" v-if="orgType != 3" style="margin-bottom: 10px">
<div class="label">项目选择:</div>
<div style="margin-left: 8px">
<el-select
@@ -240,24 +240,6 @@
</el-option>
</el-select>
</div>

<!-- <div class="div-lab">
<div class="label">推荐案例:</div>
<el-select
v-model="searchForm.zfal"
clearable
filterable
placeholder="请选择"
class="div-inp"
>
<el-option
v-for="item in options14"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</div> -->
<div class="div-lab">
<div class="label">接待标识:</div>
<el-select
@@ -303,7 +285,26 @@

<!-- 表格 -->
<div class="cen-tab">
<el-table
<avue-crud
ref="crud"
:page.sync="page"
:data="tableData"
:table-loading="tableLoading"
:option="tableOption"
:show-column.sync="showColumn"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
<template slot-scope="{ row }" slot="menu">
<el-button
type="text"
v-if="rec_index_show"
@click="Receivedetailsabout(row)"
>查看</el-button
>
</template>
</avue-crud>
<!-- <el-table
:header-cell-style="{ background: '#F5F7FA', color: '#333333' }"
ref="table"
:data="tableData"
@@ -324,8 +325,6 @@
</el-table-column>
<el-table-column prop="name" label="客户" align="center">
</el-table-column>
<!-- <el-table-column prop="visitRecordName" label="到访次数" align="center">
</el-table-column> -->
<el-table-column
prop="mm"
label="录音时长"
@@ -362,29 +361,11 @@
<template slot-scope="{ row }"> {{ row.fraction || "0" }}% </template>
</el-table-column>

<!-- <el-table-column prop="address" label="禁忌执行率" align="center">
</el-table-column> -->
<!-- scope -->
<!-- <el-table-column prop="taboo" label="是否违禁" align="center">
<template slot-scope="{ row }">
{{ row.taboo == 0 ? "否" : "是" }}
</template>
</el-table-column> -->
<!-- <el-table-column prop="zfal" label="是否加精" align="center">
<template slot-scope="{ row }">
{{ row.zfal == 0 ? "已加精" : "未加精" }}
</template>
</el-table-column> -->
<el-table-column
prop="validInvalidName"
label="接待标识"
align="center"
></el-table-column>
<!-- <el-table-column
prop="zfalName"
label="推荐案例"
align="center"
></el-table-column> -->
<el-table-column label="操作" align="center" width="80" fixed="right">
<template slot-scope="{ row }">
<el-button
@@ -393,10 +374,6 @@
@click="Receivedetailsabout(row)"
>查看</el-button
>
<!-- To Doing?按钮未添加权限判断 下一版本开发(删除) -->
<!-- <el-button type="text" @click="deleteReceive(row)">删除</el-button> -->
<!-- <el-button type="text" v-if="rec_index_text">下载文本</el-button>
<el-button type="text" v-if="rec_index_voice">下载录音</el-button> -->
</template>
</el-table-column>
</el-table>
@@ -412,6 +389,7 @@
>
</el-pagination>
</div>
-->
</div>
</div>
</template>
@@ -422,6 +400,20 @@ import { exportMethodPost } from "@/util/util";
export default {
data() {
return {
tableIdName: "ReceivingRecordsIndex", // 当前页面需要的变量
tableOption: this.$tableOption.ReceivingRecordsIndex, // 当前table配置项
tableLoading: false, // 是否显示加载中
showColumn: [], // 监听的显示列的变量
page: {
total: 0, // 总页数
currentPage: 1, // 当前页数
pageSize: 10, // 每页显示多少条
},

currentPage: 1,
size: 10,
total: 10,

isOpen: false,
TimetoAhoose: 2,
time: [],
@@ -551,9 +543,6 @@ export default {
},
],

currentPage: 1,
size: 10,
total: 10,
value: "",
input: "",
tableData: [],
@@ -639,6 +628,8 @@ export default {
},

created() {
// 获取显隐的列表
this.setTableOption();
if (this.$route.query.types) {
if (this.$route.query.types.indexOf("&") != -1) {
let arr = this.$route.query.types.split("&");
@@ -698,6 +689,14 @@ export default {
},

methods: {
// 获取当前页面的显隐
setTableOption() {
this.$db.getDataByKey(this.tableIdName).then((res) => {
if (res.tableIdName == this.tableIdName) {
this.showColumn = res.optionData;
}
});
},
isSystoleForm() {
this.isOpen = !this.isOpen;
},
@@ -742,8 +741,8 @@ export default {
// 接待记录列表
findbypage() {
let obj = {
current: this.currentPage,
size: this.size,
current: this.page.currentPage,
size: this.page.pageSize,
type: 1,
...this.searchForm,
};
@@ -753,17 +752,17 @@ export default {
obj.keywordIds = obj.keywordsId.join(",");
obj.dateType = this.searchForm.staDate ? null : this.searchForm.dateType;
this.$api.api.findbypage(obj).then((res) => {
// console.log(res)
console.log(res);
this.tableData = res.data.records;
this.total = res.data.total;
// 表格中设置ref属性,在数据渲染之后或者updated()之后
this.$nextTick(() => {
this.$refs.table.doLayout();
});
this.page.total = res.data.total;
// 表格中设置ref属性,在数据渲染之后或者updated()之后
this.$nextTick(() => {
this.$refs.crud.doLayout();
});
});
},
clearScreen() {
this.currentPage = 1;
this.page.currentPage = 1;
this.searchForm = {
name: "",
keywordsId: [],
@@ -809,7 +808,7 @@ export default {
this.houseChange();
},
screen() {
this.currentPage = 1;
this.page.currentPage = 1;
console.log(this.searchForm);
this.findbypage();
},
@@ -858,12 +857,12 @@ export default {
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.size = val;
this.page.pageSize = val;
this.findbypage();
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
this.page.currentPage = val;
this.findbypage();
},
tabtimetap(idx) {
@@ -907,6 +906,15 @@ export default {
this.searchForm.endDate = this.time[1];
}
},

showColumn(nowV) {
let params = {
tableIdName: this.tableIdName,
optionData: nowV,
};
this.$db.upDate(params);
},
},
};
</script>


+ 85
- 0
src/views/ReceivingRecords/table.js Переглянути файл

@@ -0,0 +1,85 @@
export default {
ReceivingRecordsIndex: {
border: true,
index: false,
height: 572,
indexLabel: "序号",
stripe: true,
menuAlign: "center",
menuWidth: 146,
menu: true,
align: "center",
refreshBtn: false,
searchSize: "mini",
searchMenuSpan: 9,
delBtn: false,
addBtn: false,
editBtn: false,
viewBtn: false,
size: "small",
column: [
{
sortable: true,
label: '接待开始时间',
prop: 'staTime',
width: '200px',
},
{
label: "顾问",
prop: "agentName",
},
{
label: "客户",
prop: "name",
},

{
sortable: true,
label: "录音时长",
prop: "mm",
width: "100px",
},

{
label: "录音类型",
prop: "recording",
formatter: data => {
return data.recording == 0 ? "没有录音" : data.recording == 1 ? "部分录音" : '完整录音'
}
},

{
label: "标记顾问",
prop: "markAdvisor",
formatter: data => {
return data.markAdvisor == 0 ? "未标记" : '已标记'
}
},

{
sortable: true,
label: "画像标签触达次数",
prop: "total",
width: '150px',
},

{
sortable: true,
label: "执行率",
prop: "total",
width: '150px',
formatter: data => {
return `${data.fraction || 0}%`
}
},

{
sortable: true,
label: "接待标识",
prop: "validInvalidName",
},

]
}
}

+ 74
- 15
src/views/Scheduling/index.vue Переглянути файл

@@ -82,7 +82,38 @@

<!-- 表格 -->
<div class="cen-tab">
<el-table
<avue-crud
ref="crud"
:page.sync="page"
:data="tableData"
:table-loading="tableLoading"
:option="tableOption"
:show-column.sync="showColumn"
@selection-change="handleSelectionChange"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
<template slot-scope="{ row }" slot="menu">
<el-button type="text" size="small" v-if="row.status == 1 && tem_pwl_stop"
@click="clickstateis(row)">启用</el-button>
<el-button type="text" size="small" v-if="row.status == 0 && tem_pwl_stop"
@click="clickstateno(row)">停用</el-button>
<el-button type="text" size="small" v-if="tem_pwl_edit" @click="clickbianji(row)">编辑</el-button>
<el-dropdown>
<el-button type="text" size="small" style="margin-left:10px;">更多</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>
<el-button type="text" size="small" v-if="tem_pwl_del" @click="templatedel(row)">删除</el-button>
</el-dropdown-item>
<el-dropdown-item>
<el-button type="text" size="small" @click="goinfo(row)">查看</el-button>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</avue-crud>

<!-- <el-table
:data="tableData"
ref="table"
height="572px"
@@ -135,7 +166,8 @@
:total="total"
>
</el-pagination>
</div>
</div> -->

</div>

<el-dialog title="新增" :visible.sync="dialogVisible" :center="true">
@@ -192,6 +224,16 @@ export default {
return data;
};
return {
tableIdName: "SchedulingIndex", // 当前页面需要的变量
tableOption: this.$tableOption.SchedulingIndex, // 当前table配置项
tableLoading: false, // 是否显示加载中
showColumn: [], // 监听的显示列的变量
page: {
total: 0, // 总页数
currentPage: 1, // 当前页数
pageSize: 10, // 每页显示多少条
},

transferdata: generateData(),
draggingKey : null,
transfervalue: [],
@@ -217,9 +259,6 @@ export default {
{ label: "有排班", value: 1 },
],
schedulingoptseid: "",
Page: 1,
size: 10,
total: 0,
roleId:'',
arr1:[],
showFlag:false,
@@ -232,7 +271,19 @@ export default {
components: {
Calendar,
},
watch: {
showColumn(nowV) {
let params = {
tableIdName: this.tableIdName,
optionData: nowV,
};
this.$db.upDate(params);
},
},
created() {
// 获取显隐的列表
this.setTableOption();
this.sch_index_add = this.permissions["sch_index_add"];
this.sch_index_del = this.permissions["sch_index_del"];
this.sch_index_sort = this.permissions["sch_index_sort"];
@@ -248,6 +299,14 @@ export default {
console.log(this.timeAcc,'sadasdasdas')
},
methods: {
// 获取当前页面的显隐
setTableOption() {
this.$db.getDataByKey(this.tableIdName).then((res) => {
if (res.tableIdName == this.tableIdName) {
this.showColumn = res.optionData;
}
});
},
changeArr(arr) {
this.arr = arr
},
@@ -490,7 +549,7 @@ export default {
// 项目选择
houseChange(e) {
this.houseid = e;
this.Page = 1;
this.page.currentPage = 1;
this.stateoptseid = "";
this.schedulingoptseid = "";
this.name = "";
@@ -513,8 +572,8 @@ export default {
},
AgentPoollist() {
let obj = {
current: this.Page,
size: this.size,
current: this.page.currentPage,
size: this.page.pageSize,
itemId: this.houseid,
status: this.stateoptseid,
hasSchedule: this.schedulingoptseid,
@@ -523,7 +582,7 @@ export default {
this.$api.http.AgentPoollist(obj).then((res) => {
console.log(res);
this.tableData = res.data.records;
this.total = res.data.total;
this.page.total = res.data.total;
// 表格中设置ref属性,在数据渲染之后或者updated()之后
this.$nextTick(() => {
this.$refs.table.doLayout();
@@ -531,11 +590,11 @@ export default {
});
},
screening(){
this.Page = 1;
this.page.currentPage = 1;
this.AgentPoollist();
},
reset(){
this.Page = 1;
this.page.currentPage = 1;
this.stateoptseid = "";
this.schedulingoptseid = "";
this.name = "";
@@ -558,7 +617,7 @@ export default {
type: 'success',
message: '删除成功!'
});
this.Page=1;
this.page.currentPage=1;
this.AgentPoollist()
}else{
this.$message.error(res.message);
@@ -596,7 +655,7 @@ export default {
type: 'success',
message: '删除成功!'
});
this.Page=1;
this.page.currentPage=1;
this.AgentPoollist()
}else{
this.$message.error(res.message);
@@ -634,12 +693,12 @@ export default {
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.size = val;
this.page.pageSize = val;
this.AgentPoollist()
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.Page = val;
this.page.currentPage = val;
this.AgentPoollist()
}
},


+ 59
- 0
src/views/Scheduling/table.js Переглянути файл

@@ -0,0 +1,59 @@
export default {
SchedulingIndex: {
border: true,
height: 572,
indexLabel: "序号",
stripe: true,
menuAlign: "center",
menuWidth: 146,
menu: true,
align: "center",
refreshBtn: false,
searchSize: "mini",
selection: true,
searchMenuSpan: 9,
delBtn: false,
addBtn: false,
editBtn: false,
viewBtn: false,
size: "small",
column: [
{
label: "顾问名",
prop: "name",
},

{
label: "状态",
prop: "status",
formatter: data => {
let str = ''
switch(Number(data.status)) {
case 0:
str = '空闲'
break;
case 1:
str = '接待中'
break;
case 2:
str = '暂停接待'
break;
default:
str = ''
break;
}
return str
}
},
{
label: "有无排班",
prop: "hasSchedule",
formatter: data => {
return data.hasSchedule == 1 ? "有排班" : "无排班"
}
},


]
}
}

+ 0
- 20
src/views/Statistics/BuildingContrast.vue Переглянути файл

@@ -45,21 +45,6 @@
start-placeholder="开始日期" end-placeholder="结束日期">
</el-date-picker>
</div>
<!-- </div> -->
<!-- <el-select
v-model="houseTypes"
@change="sysChange"
style="width: 100px; margin-left: 10px"
placeholder="请选择"
>
<el-option
v-for="item in options2"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select> -->
<div style="margin-left: auto; margin-right: 10px" v-if="sta_bui_downLoad">
<el-button @click="downLoad" icon="el-icon-download">导出</el-button>
</div>
@@ -147,12 +132,7 @@
<span class="name">{{ item.name }}</span>
</el-tooltip>
</div>
<!-- <div class="jinboxtit">{{ item.name }}</div> -->
<div class="jinbox-box">
<!-- <div
class="boxbaifenbi"
:style="'width:' + item.zxl1 + '%;'"
></div> -->
<div class="boxbaifenbi"
:style="{ 'background': i + 1 == 1 ? 'linear-gradient(270deg, #F88881 0%, #E6625B 100%)' : i + 1 == 2 ? 'linear-gradient(270deg, #FFC940 0%, #FF981E 100%)' : i + 1 == 3 ? 'linear-gradient(270deg, #FFE800 0%, #FFCC00 100%)' : 'inear-gradient(270deg, #7BB1FF 0%, #618FFF 100%)', 'width': item.zxl1 + '%' }">
</div>


+ 81
- 0
src/views/Statistics/table.js Переглянути файл

@@ -0,0 +1,81 @@
export default {
StatisticsBuildingContrast: {
border: true,
index: true,
height: 572,
indexLabel: "序号",
stripe: true,
menuAlign: "center",
menuWidth: 146,
menu: true,
align: "center",
refreshBtn: false,
searchSize: "mini",
searchMenuSpan: 9,
delBtn: false,
addBtn: false,
editBtn: false,
viewBtn: false,
size: "small",
column: [
{
label: '项目',
prop: 'houseName',
width: '200px',
},
{
label: "平均执行率",
prop: "fraction",
formatter: data => {
return `${data.fraction || 0}%`
}
},
{
label: "顾问数",
prop: "accountNum",
},

{
label: "接待量",
prop: "receptionCount",
},

{
label: "有效接待",
prop: "activeCustomer",
width: '100px',
},

{
label: "违禁接待次数",
prop: "prohibitedCustomer",
width: '140px',
},

{
label: "接待时长(分钟)",
prop: "sumDuration",
width: '140px',
formatter: data => {
return Math.floor(data.sumDuration/60) || 0
}
},

{
label: "违禁接待占比",
prop: "prohibitedZb",
width: '140px',
formatter: data => {
return `${data.prohibitedZb || 0}%`
}
},

{
label: "优秀案例数",
prop: "addtodigestCount",
},

]
}
}

+ 63
- 46
src/views/Template/PinspeakwordsList.vue Переглянути файл

@@ -31,47 +31,36 @@

<!-- 表格 -->
<div class="cen-tab">
<el-table :header-cell-style="{background:'#F5F7FA',color:'#333333'}" height="572px" ref="table" :data="tableData" stripe style="width: 100%">
<el-table-column prop="houseName" label="项目名称" align="center">
</el-table-column>
<el-table-column prop="name" label="状态" align="center">
<template slot-scope="scope">
<p v-if="scope.row.status == 1">停用</p>
<p v-if="scope.row.status == 0">启用</p>
</template>
</el-table-column>
<el-table-column prop="count" label="大类个数" align="center">
</el-table-column>

<el-table-column prop="createTime" label="创建时间" align="center">
</el-table-column>
<el-table-column label="操作" align="center" width="130">
<template slot-scope="scope">
<el-button type="text" size="small" v-if="scope.row.status == 1 && tem_pwl_stop"
@click="clickstateis(scope.row)">启用</el-button>
<el-button type="text" size="small" v-if="scope.row.status == 0 && tem_pwl_stop"
@click="clickstateno(scope.row)">停用</el-button>
<el-button type="text" size="small" v-if="tem_pwl_edit" @click="clickbianji(scope.row)">编辑</el-button>
<avue-crud
ref="crud"
:page.sync="page"
:data="tableData"
:table-loading="tableLoading"
:option="tableOption"
:show-column.sync="showColumn"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
<template slot-scope="{ row }" slot="menu">
<el-button type="text" size="small" v-if="row.status == 1 && tem_pwl_stop"
@click="clickstateis(row)">启用</el-button>
<el-button type="text" size="small" v-if="row.status == 0 && tem_pwl_stop"
@click="clickstateno(row)">停用</el-button>
<el-button type="text" size="small" v-if="tem_pwl_edit" @click="clickbianji(row)">编辑</el-button>
<el-dropdown>
<el-button type="text" size="small" style="margin-left:10px;">更多</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>
<el-button type="text" size="small" v-if="tem_pwl_del" @click="templatedel(scope.row)">删除</el-button>
<el-button type="text" size="small" v-if="tem_pwl_del" @click="templatedel(row)">删除</el-button>
</el-dropdown-item>
<el-dropdown-item>
<el-button type="text" size="small" @click="goinfo(scope.row)">查看</el-button>
<el-button type="text" size="small" @click="goinfo(row)">查看</el-button>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<div style="display: flex;justify-content:flex-end;margin-top: 10px;">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageNum"
:page-sizes="[10, 30, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</template>
</avue-crud>

</div>
<el-dialog title="查看" :visible.sync="dialogFormVisible">
<div style="height: 400px;overflow-y: auto;width:80%;margin: 0 auto;">
@@ -108,11 +97,18 @@ import { exportMethodPost } from "@/util/util";
export default {
data() {
return {
tableIdName: "TemplatePinspeakwordsList", // 当前页面需要的变量
tableOption: this.$tableOption.TemplatePinspeakwordsList, // 当前table配置项
tableLoading: false, // 是否显示加载中
showColumn: [], // 监听的显示列的变量
page: {
total: 0, // 总页数
currentPage: 1, // 当前页数
pageSize: 10, // 每页显示多少条
},

tableData: [],
currentPage4: 1,
total: 0,//总条数
pageNum: 1,
pageSize: 10,
houseList: [],
projectId: "",
orgType: localStorage.getItem('orgType'),
@@ -129,7 +125,19 @@ export default {
computed: {
...mapGetters(["permissions"]),
},
watch: {
showColumn(nowV) {
let params = {
tableIdName: this.tableIdName,
optionData: nowV,
};
this.$db.upDate(params);
},
},
created() {
// 获取显隐的列表
this.setTableOption();
this.tem_pwl_add = this.permissions["tem_pwl_add"];
this.tem_pwl_edit = this.permissions["tem_pwl_edit"];
this.tem_pwl_stop = this.permissions["tem_pwl_stop"];
@@ -140,6 +148,15 @@ export default {
this.zkhousePage()
},
methods: {
// 获取当前页面的显隐
setTableOption() {
this.$db.getDataByKey(this.tableIdName).then((res) => {
if (res.tableIdName == this.tableIdName) {
this.showColumn = res.optionData;
}
});
},
downLoad() {
let parmest = {
houseId: this.projectId,
@@ -281,7 +298,7 @@ export default {
},
//筛选
Screening() {
this.pageNum = 1;
this.page.currentPage = 1;
this.getcompanyList()
},
//获取项目
@@ -301,26 +318,26 @@ export default {
},
//切换项目
houseChange() {
this.pageNum = 1;
this.page.currentPage = 1;
this.getcompanyList()
},
// 获取列表
getcompanyList() {
this.tableData = [];
let parmest = {
current: this.pageNum,
size: this.pageSize,
current: this.page.currentPage,
size: this.page.pageSize,
houseId: this.projectId,
status: this.statetest
}
this.$api.http.templatefindByPage(parmest).then((res) => {
this.tableData = res.data.records;
this.total = res.data.total;
this.page.total = res.data.total;
// 表格中设置ref属性,在数据渲染之后或者updated()之后
this.$nextTick(() => {
this.$refs.table.doLayout();
});
// 表格中设置ref属性,在数据渲染之后或者updated()之后
this.$nextTick(() => {
this.$refs.crud.doLayout();
});
});
},
//templatedel删除模板
@@ -352,11 +369,11 @@ export default {
});
},
handleSizeChange(val) {
this.pageSize = val;
this.page.pageSize = val;
this.getcompanyList()
},
handleCurrentChange(val) {
this.pageNum = val;
this.page.currentPage = val;
this.getcompanyList()
},



+ 115
- 0
src/views/Template/table.js Переглянути файл

@@ -0,0 +1,115 @@
export default {
TemplatePinspeakwordsList: {
border: true,
index: false,
height: 572,
indexLabel: "序号",
stripe: true,
menuAlign: "center",
menuWidth: 146,
menu: true,
align: "center",
refreshBtn: false,
searchSize: "mini",
searchMenuSpan: 9,
delBtn: false,
addBtn: false,
editBtn: false,
viewBtn: false,
size: "small",
column: [
{
label: "项目名称",
prop: "houseName",
width: "120px",
},
{
label: "状态",
prop: "status",
formatter: (data) => {
if(data.status == 0) return '启用'
if(data.status == 1) return '停用'
}
},
{
label: "大类个数",
prop: "count",
},
{
label: "创建时间",
prop: "createTime",
},
]
},
TemplateWrongword: {
border: true,
index: true,
height: 572,
indexLabel: "序号",
stripe: true,
menuAlign: "center",
menuWidth: 146,
menu: true,
align: "center",
refreshBtn: false,
searchSize: "mini",
searchMenuSpan: 9,
delBtn: false,
addBtn: false,
editBtn: false,
viewBtn: false,
size: "small",
column: [
{
label: "正确词",
prop: "correctWord",
},
{
label: "错误词",
prop: "wrongWord",
},
{
label: "创建时间",
prop: "createTime",
},
]
},
TemplateTaboo: {
border: true,
index: false,
height: 572,
indexLabel: "序号",
stripe: true,
menuAlign: "center",
menuWidth: 146,
menu: true,
align: "center",
refreshBtn: false,
searchSize: "mini",
searchMenuSpan: 9,
delBtn: false,
addBtn: false,
editBtn: false,
viewBtn: false,
size: "small",
column: [
{
label: '敏感词',
prop: "words"
},
{
label: "项目名称",
prop: "houseName",
},
{
label: "创建时间",
prop: "createDate",
},
{
label: "修改时间",
prop: "updateDate",
},
]
}
}

+ 102
- 72
src/views/Template/taboo.vue Переглянути файл

@@ -28,7 +28,12 @@
</div>
<div class="label">敏感词:</div>
<div>
<el-input v-model="words" placeholder="敏感词" maxlength="8" clearable></el-input>
<el-input
v-model="words"
placeholder="敏感词"
maxlength="8"
clearable
></el-input>
</div>
<div style="margin-left: 20px">
<el-button type="primary" @click="screening()">筛选</el-button>
@@ -37,7 +42,7 @@
style="margin-left: auto; margin-right: 10px"
v-if="tem_tab_downLoad"
>
<el-button v-if="tem_tab_add" @click="editorinfo()" type="primary"
<el-button v-if="tem_tab_add" @click="editorinfo()" type="primary"
>新增</el-button
>
<el-button @click="downLoad" icon="el-icon-download">导出</el-button>
@@ -47,48 +52,31 @@

<!-- 表格 -->
<div class="cen-tab">
<el-table :header-cell-style="{background:'#F5F7FA',color:'#333333'}" height="572px" ref="table" :data="tableData" stripe style="width: 100%">
<el-table-column prop="words" label="敏感词" align="center">
</el-table-column>
<el-table-column prop="houseName" label="项目名称" align="center">
</el-table-column>
<el-table-column prop="createDate" label="创建时间" align="center">
</el-table-column>

<el-table-column prop="updateDate" label="修改时间" align="center">
</el-table-column>
<!-- scope -->
<el-table-column label="操作" align="center">
<template slot-scope="scope" style="">
<el-button
v-if="tem_tab_edit"
type="text"
@click="bianji(scope.row)"
>编辑</el-button
>
<el-button v-if="tem_tab_del" type="text" @click="del(scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<div style="display: flex; justify-content: flex-end; margin-top: 10px">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="Page"
:page-sizes="[10, 30, 50]"
:page-size="size"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
>
</el-pagination>
</div>
<avue-crud
ref="crud"
:page.sync="page"
:data="tableData"
:table-loading="tableLoading"
:option="tableOption"
:show-column.sync="showColumn"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
<template slot-scope="{ row }" slot="menu">
<el-button v-if="tem_tab_edit" type="text" @click="bianji(row)"
>编辑</el-button
>
<el-button v-if="tem_tab_del" type="text" @click="del(row)"
>删除</el-button
>
</template>
</avue-crud>
</div>

<el-dialog
:title="editFlag ? '编辑' : '新增'"
:center="true" width="400px"
:center="true"
width="400px"
:visible.sync="dialogVisible"
@close="$refs.ruleForm.resetFields()"
>
@@ -101,10 +89,24 @@
style="width: 100%; margin: 0 auto"
>
<el-form-item label="敏感词" prop="words">
<el-input v-model="ruleForm.words" placeholder="敏感词" maxlength="8" clearable></el-input>
<el-input
v-model="ruleForm.words"
placeholder="敏感词"
maxlength="8"
clearable
></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer" style="border-top:1px solid #eee;padding-top: 20px;display: flex;justify-content: end;">
<div
slot="footer"
class="dialog-footer"
style="
border-top: 1px solid #eee;
padding-top: 20px;
display: flex;
justify-content: end;
"
>
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" :loading="loadingFlag" @click="editor()"
>保存</el-button
@@ -120,6 +122,16 @@ import { exportMethodPost } from "@/util/util";
export default {
data() {
return {
tableIdName: "TemplateTaboo", // 当前页面需要的变量
tableOption: this.$tableOption.TemplateTaboo, // 当前table配置项
tableLoading: false, // 是否显示加载中
showColumn: [], // 监听的显示列的变量
page: {
total: 0, // 总页数
currentPage: 1, // 当前页数
pageSize: 10, // 每页显示多少条
},

currentPage4: 1,
value: "",
input: "",
@@ -134,10 +146,7 @@ export default {
},
houseId: "",
houseList: [],
Page: 1,
size: 10,
words: "",
total: 0,
ruleser: {
words: [{ required: true, message: "请填写禁忌词", trigger: "blur" }],
},
@@ -148,7 +157,20 @@ export default {
computed: {
...mapGetters(["permissions"]),
},

watch: {
showColumn(nowV) {
let params = {
tableIdName: this.tableIdName,
optionData: nowV,
};
this.$db.upDate(params);
},
},

created() {
// 获取显隐的列表
this.setTableOption();
this.tem_tab_add = this.permissions["tem_tab_add"];
this.tem_tab_del = this.permissions["tem_tab_del"];
this.tem_tab_edit = this.permissions["tem_tab_edit"];
@@ -158,6 +180,14 @@ export default {
this.zkhousePage();
},
methods: {
// 获取当前页面的显隐
setTableOption() {
this.$db.getDataByKey(this.tableIdName).then((res) => {
if (res.tableIdName == this.tableIdName) {
this.showColumn = res.optionData;
}
});
},
downLoad() {
let obj = {
houseId: this.houseId,
@@ -167,7 +197,7 @@ export default {
exportMethodPost("autoSR/sensitivewords/export", "禁忌话术", obj);
},
houseChange() {
this.Page = 1;
this.page.currentPage = 1;
this.words = "";
this.taboofindbypagelist();
},
@@ -189,8 +219,8 @@ export default {
},
taboofindbypagelist() {
let obj = {
current: this.Page,
size: this.size,
current: this.page.currentPage,
size: this.page.pageSize,
houseId: this.houseId,
words: this.words,
};
@@ -200,16 +230,16 @@ export default {
this.hasOwn = res.data.records.map((item) => {
return item.words;
});
this.total = res.data.total;
// 表格中设置ref属性,在数据渲染之后或者updated()之后
this.$nextTick(() => {
this.$refs.table.doLayout();
});
this.page.total = res.data.total;
// 表格中设置ref属性,在数据渲染之后或者updated()之后
this.$nextTick(() => {
this.$refs.crud.doLayout();
});
});
},
screening() {
this.Page = 1;
this.page.currentPage = 1;
this.taboofindbypagelist();
},
//删除
@@ -227,7 +257,7 @@ export default {
type: "success",
message: "删除成功!",
});
this.Page = 1;
this.page.currentPage = 1;
this.words = "";
this.taboofindbypagelist();
} else {
@@ -273,7 +303,7 @@ export default {
if (res.code == 0) {
this.dialogVisible = false;
this.$refs.ruleForm.resetFields();
this.Page = 1;
this.page.currentPage = 1;
this.words = "";
this.taboofindbypagelist();
} else {
@@ -300,7 +330,7 @@ export default {
if (res.code == 0) {
this.dialogVisible = false;
this.$refs.ruleForm.resetFields();
this.Page = 1;
this.page.currentPage = 1;
this.words = "";
this.taboofindbypagelist();
} else {
@@ -325,12 +355,12 @@ export default {
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.size = val;
this.page.pageSize = val;
this.taboofindbypagelist();
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.Page = val;
this.page.currentPage = val;
this.taboofindbypagelist();
},
},
@@ -390,27 +420,27 @@ export default {
}
}
}
/deep/ .el-table__header-wrapper{
thead{
tr{
th{
background: #F5F7FA;
/deep/ .el-table__header-wrapper {
thead {
tr {
th {
background: #f5f7fa;
color: #333333;
}
}
}
}
/deep/ .el-dialog--center{
/deep/ .el-dialog--center {
border-radius: 8px;
.el-dialog__title{
.el-dialog__title {
font-weight: bold;
}
}
/deep/ .el-button--primary{
background: #2671E2 !important;
border: 1px solid #2671E2 !important;
/deep/ .el-button--primary {
background: #2671e2 !important;
border: 1px solid #2671e2 !important;
}
/deep/ .el-button--text{
color: #2671E2;
/deep/ .el-button--text {
color: #2671e2;
}
</style>

+ 85
- 115
src/views/Template/wrongword.vue Переглянути файл

@@ -53,7 +53,7 @@
style="margin-left: auto; margin-right: 10px"
v-if="tem_ww_downLoad"
>
<el-button @click="addinfo()" type="primary" v-if="tem_ww_add"
<el-button @click="addinfo()" type="primary" v-if="tem_ww_add"
>新增</el-button
>
<el-button @click="downLoad" icon="el-icon-download">导出</el-button>
@@ -63,60 +63,33 @@

<!-- 表格 -->
<div class="cen-tab">
<el-table :header-cell-style="{background:'#F5F7FA',color:'#333333'}" height="572px" ref="table" :data="tableData" stripe style="width: 100%">
<el-table-column type="index" label="序号" width="50">
</el-table-column>
<el-table-column prop="correctWord" label="正确词" align="center">
<template slot-scope="{ row }">
<el-tooltip class="item" effect="dark" :content="row.correctWord" placement="top-start">
<span style="display: block;width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;"> {{row.correctWord || "-"}}</span>
</el-tooltip>
</template>
</el-table-column>
<el-table-column prop="wrongWord" label="错误词" align="center">
<template slot-scope="{ row }">
<el-tooltip class="item" effect="dark" :content="row.wrongWord" placement="top-start">
<span style="display: block;width: 100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;"> {{row.wrongWord || "-"}}</span>
</el-tooltip>
</template>
</el-table-column>

<el-table-column prop="createTime" label="创建时间" align="center">
</el-table-column>

<!-- <el-table-column prop="date" label="备注" align="center">
</el-table-column> -->
<!-- scope -->
<el-table-column label="操作" align="center">
<template slot-scope="{ row }">
<el-button v-if="tem_ww_edit" type="text" @click="edit(row)"
>修改</el-button
>
<el-button v-if="tem_ww_del" type="text" @click="del(row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<div style="display: flex; justify-content: flex-end; margin-top: 10px">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 30, 50]"
:page-size="size"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
>
</el-pagination>
</div>
<avue-crud
ref="crud"
:page.sync="page"
:data="tableData"
:table-loading="tableLoading"
:option="tableOption"
:show-column.sync="showColumn"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
<template slot-scope="{ row }" slot="menu">
<el-button v-if="tem_ww_edit" type="text" @click="edit(row)"
>修改</el-button
>
<el-button v-if="tem_ww_del" type="text" @click="del(row)"
>删除</el-button
>
</template>
</avue-crud>
</div>

<el-dialog
:title="editFlag ? '修改常错词' : '新增常错词'"
:visible.sync="dialogVisible"
@close="reset"
:center="true" width="400px"
:center="true"
width="400px"
>
<el-form
:model="ruleForm"
@@ -143,7 +116,16 @@
></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer" style="border-top:1px solid #eee;padding-top: 20px;display: flex;justify-content: end;">
<div
slot="footer"
class="dialog-footer"
style="
border-top: 1px solid #eee;
padding-top: 20px;
display: flex;
justify-content: end;
"
>
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" :loading="loadingFlag" @click="addSure()"
>保存</el-button
@@ -175,6 +157,16 @@ import { exportMethodPost } from "@/util/util";
export default {
data() {
return {
tableIdName: "TemplateWrongword", // 当前页面需要的变量
tableOption: this.$tableOption.TemplateWrongword, // 当前table配置项
tableLoading: false, // 是否显示加载中
showColumn: [], // 监听的显示列的变量
page: {
total: 0, // 总页数
currentPage: 1, // 当前页数
pageSize: 10, // 每页显示多少条
},

currentPage: 4,
orgType: localStorage.getItem("orgType"),
value: "",
@@ -196,10 +188,7 @@ export default {
wrongWord: "",
houseId: "",
},
currentPage: 1,
editFlag: false,
size: 10,
total: 10,
rules: {
correctWord: [
{ required: true, message: "请填写正确词", trigger: "change" },
@@ -216,7 +205,19 @@ export default {
computed: {
...mapGetters(["permissions"]),
},

watch: {
showColumn(nowV) {
let params = {
tableIdName: this.tableIdName,
optionData: nowV,
};
this.$db.upDate(params);
},
},
created() {
// 获取显隐的列表
this.setTableOption();
this.tem_ww_add = this.permissions["tem_ww_add"];
this.tem_ww_del = this.permissions["tem_ww_del"];
this.tem_ww_edit = this.permissions["tem_ww_edit"];
@@ -227,6 +228,14 @@ export default {
this.zkhousePage();
},
methods: {
// 获取当前页面的显隐
setTableOption() {
this.$db.getDataByKey(this.tableIdName).then((res) => {
if (res.tableIdName == this.tableIdName) {
this.showColumn = res.optionData;
}
});
},
downLoad() {
// this.searchForm
// exportMethodPost()
@@ -263,27 +272,6 @@ export default {
del(row) {
this.delid = row.id;
this.dialogVisible2 = true;
// this.$confirm(`是否删除该常错词?`, "提示", {
// confirmButtonText: "确定",
// cancelButtonText: "取消",
// distinguishCancelAndClose: true,
// type: "warning",
// }).then(() => {
// axios({
// url: `/autoSR/zk/correct/del`,
// method: "post",
// data: {
// id: row.id,
// },
// }).then((res) => {
// if (res.code == 0) {
// this.$message.success("删除成功");
// this.correctFindbypage();
// } else {
// this.$message.warning(res.resMsg);
// }
// });
// });
},
reset() {
this.$refs.ruleForm.resetFields();
@@ -294,15 +282,6 @@ export default {
};
},
addSure() {
// this.loadingFlag = true;
// this.ruleForm.correctWord = this.ruleForm.correctWord.replace(
// /[^\w\u4e00-\u9fa5]/g,
// ""
// );
// this.ruleForm.wrongWord = this.ruleForm.wrongWord.replace(
// /[^\w\u4e00-\u9fa5]/g,
// ""
// );
this.$refs.ruleForm.validate((valid) => {
if (valid) {
// 编辑
@@ -332,12 +311,6 @@ export default {
});
} else {
// 添加

// if (this.correctList.indexOf(this.ruleForm.correctWord) != -1) {
// this.$message.error("正确词已添加过~");
// return;
// }

if (this.mistakenList.indexOf(this.ruleForm.wrongWord) != -1) {
this.$message.error("错误词已添加过~");
return;
@@ -364,7 +337,7 @@ export default {
});
},
screen() {
this.currentPage = 1;
this.page.currentPage = 1;
this.correctFindbypage();
},
clascreen() {
@@ -374,7 +347,7 @@ export default {
this.orgType == 3
? localStorage.getItem("houseId")
: this.houseList[0].id),
(this.currentPage = 1);
(this.page.currentPage = 1);
this.correctFindbypage();
},
houseChange() {
@@ -393,7 +366,6 @@ export default {
} else {
this.searchForm.houseId = res.data[0].id;
}
// this.searchForm.houseId = res.data[0].id;
// 列表获取
this.correctFindbypage();
});
@@ -401,8 +373,8 @@ export default {
// 获取常错词列表
correctFindbypage() {
let obj = {
current: this.currentPage,
size: this.size,
current: this.page.currentPage,
size: this.page.pageSize,
...this.searchForm,
};
this.$api.api.correctFindbypage(obj).then((res) => {
@@ -414,14 +386,12 @@ export default {
this.correctList = res.data.records.map((item) => {
return item.correctWord;
});
this.total = res.data.total;
this.page.total = res.data.total;

console.log(this.mistakenList, this.correctList);
// 表格中设置ref属性,在数据渲染之后或者updated()之后
this.$nextTick(() => {
this.$refs.table.doLayout();
});
// 表格中设置ref属性,在数据渲染之后或者updated()之后
this.$nextTick(() => {
this.$refs.crud.doLayout();
});
});
},
addinfo() {
@@ -436,12 +406,12 @@ export default {
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.size = val;
this.page.pageSize = val;
this.correctFindbypage();
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
this.page.currentPage = val;
this.correctFindbypage();
},
},
@@ -506,27 +476,27 @@ export default {
}
}
}
/deep/ .el-table__header-wrapper{
thead{
tr{
th{
background: #F5F7FA;
/deep/ .el-table__header-wrapper {
thead {
tr {
th {
background: #f5f7fa;
color: #333333;
}
}
}
}
/deep/ .el-dialog--center{
/deep/ .el-dialog--center {
border-radius: 8px;
.el-dialog__title{
.el-dialog__title {
font-weight: bold;
}
}
/deep/ .el-button--primary{
background: #2671E2 !important;
border: 1px solid #2671E2 !important;
/deep/ .el-button--primary {
background: #2671e2 !important;
border: 1px solid #2671e2 !important;
}
/deep/ .el-button--text{
color: #2671E2;
/deep/ .el-button--text {
color: #2671e2;
}
</style>

+ 48
- 1
src/views/inspection/ProhibitedList.vue Переглянути файл

@@ -120,7 +120,23 @@

<!-- 表格 -->
<div class="cen-tab">
<el-table :header-cell-style="{background:'#F5F7FA',color:'#333333'}" :data="tableData" stripe style="width: 100%" height="640">
<avue-crud
ref="crud"
:page.sync="page"
:data="tableData"
:table-loading="tableLoading"
:option="tableOption"
:show-column.sync="showColumn"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
<template slot-scope="{ row }" slot="menu">
<el-button type="text">查看</el-button>
<el-button type="text">无效</el-button>
<el-button type="text">有效</el-button>
</template>
</avue-crud>
<!-- <el-table :header-cell-style="{background:'#F5F7FA',color:'#333333'}" :data="tableData" stripe style="width: 100%" height="640">
<el-table-column prop="batchId" label="序号" width="70" align="center">
<template slot-scope="scope">
<span> {{ scope.$index + 1 }}</span>
@@ -203,6 +219,7 @@
>
</el-pagination>
</div>
-->
</div>
</div>
</template>
@@ -211,6 +228,16 @@
export default {
data() {
return {
tableIdName: "inspectionProhibitedList", // 当前页面需要的变量
tableOption: this.$tableOption.inspectionProhibitedList, // 当前table配置项
tableLoading: false, // 是否显示加载中
showColumn: [], // 监听的显示列的变量
page: {
total: 0, // 总页数
currentPage: 1, // 当前页数
pageSize: 10, // 每页显示多少条
},

pagesize:30,
isOpen:false,
houseList: [], // 可切换的项目列表
@@ -277,7 +304,18 @@ export default {
};
},

watch: {
showColumn(nowV) {
let params = {
tableIdName: this.tableIdName,
optionData: nowV,
};
this.$db.upDate(params);
},
},
created() {
// 获取显隐的列表
this.setTableOption();
this.zkhousePage();

if (this.$route.query.date) {
@@ -289,6 +327,15 @@ export default {
},

methods: {
// 获取当前页面的显隐
setTableOption() {
this.$db.getDataByKey(this.tableIdName).then((res) => {
if (res.tableIdName == this.tableIdName) {
this.showColumn = res.optionData;
}
});
},
isSystoleForm(){
this.isOpen = !this.isOpen
},


+ 67
- 0
src/views/inspection/table.js Переглянути файл

@@ -0,0 +1,67 @@
export default {
inspectionProhibitedList: {
border: true,
height: 572,
indexLabel: "序号",
stripe: true,
menuAlign: "center",
menuWidth: 146,
menu: true,
align: "center",
refreshBtn: false,
searchSize: "mini",
searchMenuSpan: 9,
delBtn: false,
addBtn: false,
editBtn: false,
viewBtn: false,
size: "small",
column: [
{
label: '接待编号',
prop: 'houseName',
},
{
label: "接待开始时间",
prop: "accountNum",
},
{
label: "顾问",
prop: "receptionCount",
},

{
label: "客户",
prop: "activeCustomer",
},
{
label: "违禁命中",
prop: "prohibitedCustomer",
width: '140px'
},
{
label: "处理状态",
prop: "sumDuration",
width: '100px'
},
{
label: "处理人",
prop: "fraction",
width: '110px'
},
{
label: "违禁标识",
prop: "prohibitedZb",
width: '100px'
},
{
label: "无效原因",
prop: "addtodigestCount",
width: '140px'
},


]
}
}

Завантаження…
Відмінити
Зберегти