Browse Source

提交

master
风继续吹\17611 1 year ago
parent
commit
da4230a735
6 changed files with 642 additions and 28 deletions
  1. +9
    -22
      README.md
  2. +1
    -1
      package.json
  3. +8
    -1
      public/index.html
  4. +24
    -3
      src/api/modules/http.js
  5. +4
    -1
      src/views/Receive/index.vue
  6. +596
    -0
      src/views/Statistics/prohibitionDetails.vue

+ 9
- 22
README.md View File

@@ -1,22 +1,9 @@
## 协议和授权

pigX并非一个开源软件,作者保留全部的权利。
擅自窃用,即属严重侵权行为,与盗窃无异。产生的一切任何后果责任由侵权者自负。

### 🚫禁止

将本项目的部分或全部代码和资源进行任何形式的再发行(上传GitHub、Gitee )

## 贡献代码

pigX并非一个开源项目,也不是社区共同创造,其全部功能由作者独立完成。

如果你愿意放弃所有权利,并将权利无条件转让给pigX作者,欢迎您贡献代码,当然会给予不等金额奖励。

## 提交反馈

1. 欢迎提交 issue,请写清楚遇到问题的原因,浏览器和操作系统环境,重现的流程。
如果有开发能力,建议在本地调试出出错的代码。

2. 不接受`功能请求`的 issue,功能请求可能会被直接关闭,请谅解(正确的方式是打赏并附言)。

<!--
* @Author: 风继续吹\17611 17611323298@163.com
* @Date: 2024-01-02 11:26:28
* @LastEditors: 风继续吹\17611 17611323298@163.com
* @LastEditTime: 2024-01-02 11:48:14
* @FilePath: \zkPCproject\README.md
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
## node版本12.16.1 32

+ 1
- 1
package.json View File

@@ -70,7 +70,7 @@
"benz-amr-recorder": "^1.0.14",
"chai": "^4.1.2",
"compression-webpack-plugin": "^3.1.0",
"node-sass": "^4.9.0",
"node-sass": "^4.14.1",
"sass-loader": "^7.0.1",
"vue-template-compiler": "^2.6.10",
"vue-video-player": "^5.0.2"


+ 8
- 1
public/index.html View File

@@ -1,3 +1,11 @@
<!--
* @Author: 风继续吹\17611 17611323298@163.com
* @Date: 2024-01-02 11:26:28
* @LastEditors: 风继续吹\17611 17611323298@163.com
* @LastEditTime: 2024-01-02 14:55:52
* @FilePath: \zkPCproject\public\index.html
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<!DOCTYPE html>
<html>

@@ -68,7 +76,6 @@
hm.src = 'https://hm.baidu.com/hm.js?0625618efb027ed02e88da84c121652e'
var s = document.getElementsByTagName('script')[0]
s.parentNode.insertBefore(hm, s)
console.log('我进来执行了~~~~~~~~~~~~~~~~~~~~')
let url = document.domain
if (url == 'focus.hfju.com' || url == 'focus.aihxz.com') {
document.querySelector('link[rel="icon"]').setAttribute('href', '<%= BASE_URL %>sh.png')


+ 24
- 3
src/api/modules/http.js View File

@@ -761,7 +761,7 @@ export function findBycusId(query) {
})
}

//
//

// 标记顾问
export function markConsultant(query) {
@@ -1386,7 +1386,7 @@ export function findHouseListByAccount(params) {

/**
* Bi数据模块
*
*
*/

// 用户总览
@@ -1755,4 +1755,25 @@ export function findDataByRuleIdopenApiData(params) {
method: 'get',
params
})
}
}

// 获取项目转写类型
export function findSensitiveWordsDat(params) {
return request({
url: 'autoSR/sensitivewords/findSensitiveWordsData',
method: 'get',
params
})
}

// 获取项目转写类型
export function findAllSensitiveWordsList(params) {
return request({
url: 'autoSR/sensitivewords/findAllSensitiveWordsList',
method: 'get',
params
})
}




+ 4
- 1
src/views/Receive/index.vue View File

@@ -1500,6 +1500,9 @@ export default {
mounted() {
this.fileId = this.$route.query.flag;
this.AudioIdx = this.$route.query.AudioIdx;
if (this.$route.query.dateTime && this.aplayer) {
this.play({bg: this.$route.query.dateTime})
}
this.info = getStore({ name: "userInfo" });
this.findKeyWordsBycusId();
this.init();
@@ -3718,7 +3721,7 @@ export default {
line-height: 45px;
display: grid;
grid-template-columns: repeat(3, 1fr);
.intentionName {
margin-top: 0;
width: 100%;


+ 596
- 0
src/views/Statistics/prohibitionDetails.vue View File

@@ -0,0 +1,596 @@
<template>
<div class="box-center" ref="boxcenter" style="cursor: pointer">
<!-- 头 -->
<div class="app-top">
<div v-if="orgType != 3" class="app-titel2" style="margin-bottom: 10px">
<div class="titel-text">项目选择:</div>
<div style="">
<el-select
v-model="pageParams.houseId"
filterable
@change="getorgCode"
placeholder="请选择"
>
<el-option
v-for="item in buildingoptions"
:key="item.value"
:label="item.propertyName"
:value="item.id"
>
</el-option>
</el-select>
</div>
</div>

<div class="app-titel2">
<div style="text-indent: 30px">接待时间:</div>
<div>
<el-button
:class="{ 'el-button--primary': pageParams.dateType == 0 }"
@click="tabtimetap(0)"
>今天</el-button
>
<el-button
:class="{ 'el-button--primary': pageParams.dateType == 4 }"
@click="tabtimetap(4)"
>近7天</el-button
>
<el-button
:class="{ 'el-button--primary': pageParams.dateType == 6 }"
@click="tabtimetap(6)"
>近30天</el-button
>
</div>
<div style="margin-left: 26px; display: flex; align-items: center">
<el-date-picker
v-model="customtime"
@change="confirmtime()"
type="daterange"
range-separator="-"
:default-time="['00:00:00', '23:59:59']"
value-format="yyyy-MM-dd"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>

<div class="titel-text" style="margin-left: 0px">违禁状态:</div>
<el-select
class="div-inp"
v-model="pageParams.violatedStatus"
@change="confirmtimes"
clearable
filterable
collapse-tags
placeholder="请选择"
>
<el-option label="标识违禁有效" :value="1"></el-option>
<el-option label="标识违禁无效" :value="2"></el-option>
</el-select>
</div>

<!-- <div style="position: absolute; right: 20px">
<el-button class="el-button--primary" @click="exportExcel"
>导出</el-button
>
</div> -->
</div>
</div>

<div class="app-box">
<div class="conbox">违禁明细总览</div>
<div v-if="alllist.length > 0" class="alllistbox">
<div
class="alllist"
v-for="(item, index) in alllist"
:key="index"
@click="Toview(item)"
style="cursor: pointer"
>
<div class="alllist-text1">{{ item.words }}</div>
<div class="alllist-text1">{{ item.sumNum }}</div>
</div>
</div>
<div v-else>
<div class="empty-box">
<img
class="imgboxc-img"
style="width: 120px; height: 120px"
src="/img/nullnull.png"
alt=""
/>
<div class="nulltext" style="font-size: 14px">暂无数据</div>
</div>
</div>
</div>

<el-dialog
title="生成纪录"
:visible.sync="roleHistory"
:close-on-click-modal="false"
>
<div>
<el-table :data="gridData" max-height="450px">
<el-table-column
property="staTimeOfCN"
label="接待时间"
></el-table-column>
<el-table-column
property="agentName"
label="置业顾问"
></el-table-column>
<el-table-column property="name" label="客户名称"></el-table-column>
<el-table-column
property="sensitiveWords"
label="违禁词"
></el-table-column>
<el-table-column property="violatedStatus" label="违禁状态">
<template slot-scope="{ row }">
{{ row.violatedStatus == 1 ? "标识违禁有效" : "标识违禁无效" }}
</template>
</el-table-column>
<el-table-column property="address" label="操作">
<template slot-scope="{ row }">
<template>
<el-button
@click.native.prevent="toDetail(row)"
type="text"
size="small"
>查看
</el-button>
</template>
</template>
</el-table-column>
</el-table>
</div>

<div slot="footer" class="dialog-footer">
<el-button @click="roleHistory = false">关 闭</el-button>
<el-button type="primary" @click="roleHistory = false">确 定</el-button>
</div>
</el-dialog>
</div>
</template>

<script>
export default {
data() {
return {
alllist: [],
orgType: localStorage.getItem("orgType"),
buildingoptions: [],
customtime: [],
pageParams: {
dateType: 4, //
houseId: "",
statDateStart: "",
statDateEnd: "",
violatedStatus: null,
},
templateList: [], // 销讲业务列表
marketingBusiness: [], // 选中的销讲业务

roleHistory: false, // 生成记录
gridData: [], // 生成记录列表
};
},

mounted() {
this.zkhousePage();
if (this.pageParams.dateType == 4) {
let starTime = new Date().getTime() - 24 * 60 * 60 * 1000 * 7;
let startDate = `${new Date(starTime).getFullYear()}-${
new Date(starTime).getMonth() + 1
}-${new Date(starTime).getDate()}`;
let endTime = new Date().getTime() - 24 * 60 * 60 * 1000;
let endDate = `${new Date(endTime).getFullYear()}-${
new Date(endTime).getMonth() + 1
}-${new Date(endTime).getDate()}`;

this.customtime = [startDate, endDate];
}
},
methods: {
// 跳转详情
toDetail(row) {
this.$router.push({
path: "/Receive/index",
query: { flag: row.id, AudioIdx: 0 ,dateTime: row.dateTime},
});
},

Toview(item) {
this.$api.http
.findAllSensitiveWordsList({
...this.pageParams,
sensitiveWords: item.words,
})
.then((res) => {
console.log(item, res);
this.gridData = res.data;
this.roleHistory = true;
});
},

//获取项目
zkhousePage() {
this.$api.api
.findHouseByUser({
orgType: localStorage.getItem("orgType"),
})
.then((res) => {
this.buildingoptions = res.data;
if (localStorage.getItem("orgType") == 3) {
this.pageParams.houseId = localStorage.getItem("houseId");
} else {
this.pageParams.houseId = res.data[0].id;
}
this.getorgCode();
});
},

//自定义时间
confirmtime() {
this.pageParams.dateType = null;
this.pageParams.statDateStart = this.customtime[0];
this.pageParams.statDateEnd = this.customtime[1];
this.getorgCode();
},
confirmtimes() {
this.getorgCode();
},

//切换时间
tabtimetap(index) {
this.pageParams.dateType = index;

if (index == 0) {
this.customtime = [];
}

if (index == 4) {
let starTime = new Date().getTime() - 24 * 60 * 60 * 1000 * 7;
let startDate = `${new Date(starTime).getFullYear()}-${
new Date(starTime).getMonth() + 1
}-${new Date(starTime).getDate()}`;
let endTime = new Date().getTime() - 24 * 60 * 60 * 1000;
let endDate = `${new Date(endTime).getFullYear()}-${
new Date(endTime).getMonth() + 1
}-${new Date(endTime).getDate()}`;

this.customtime = [startDate, endDate];
}

if (index == 6) {
let starTime = new Date().getTime() - 24 * 60 * 60 * 1000 * 30;
let startDate = `${new Date(starTime).getFullYear()}-${
new Date(starTime).getMonth() + 1
}-${new Date(starTime).getDate()}`;
let endTime = new Date().getTime() - 24 * 60 * 60 * 1000;
let endDate = `${new Date(endTime).getFullYear()}-${
new Date(endTime).getMonth() + 1
}-${new Date(endTime).getDate()}`;

this.customtime = [startDate, endDate];
}
this.pageParams.statDateStart = "";
this.pageParams.statDateEnd = "";
this.getorgCode();
},
//初始化
getorgCode() {
this.$api.http.findSensitiveWordsDat(this.pageParams).then((res) => {
this.alllist = res.data;
});
},
},
};
</script>

<style scoped="scoped" lang="scss">
.box-center {
width: 100%;
padding: 20px 15px 40px;
min-width: 1000px;
}

.tophove {
color: #ffffff;
background: #2671e2;
}

.app-titel {
width: 100%;
height: 70px;
background: #ffffff;
box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.04);
border-radius: 4px;
display: flex;
align-items: center;

.titel-text {
height: 100%;
font-size: 16px;
font-weight: 600;
color: #32363d;
line-height: 70px;
margin-left: 30px;
}

.toptimeqhuan {
width: 190px;
height: 32px;
background: #ffffff;
border-radius: 4px;
border: 1px solid #e0e0e0;
display: flex;
align-items: center;
overflow: hidden;
margin-left: 20px;
cursor: pointer;
}

.toptimeqhuan div {
flex: 1;
text-align: center;
line-height: 32px;
font-size: 16px;
}
}

.app-box {
width: 100%;
background: #ffffff;
box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.04);
border-radius: 4px;
padding: 20px 30px;
margin-top: 15px;

.conbox {
height: 18px;
font-size: 18px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #32363d;
line-height: 18px;
}

.alllistbox {
width: 100%;
margin-top: 20px;
display: flex;
flex-wrap: wrap;
justify-content: flex-start;

.alllist {
width: 16.66%;
padding-bottom: 2px;
padding-top: 4px;
box-shadow: -1px 1px 1px #e0e0e0;
&:nth-child(1),
&:nth-child(2),
&:nth-child(3),
&:nth-child(4),
&:nth-child(5),
&:nth-child(6) {
border-top: 1px solid #e0e0e0;
}
&:nth-child(6n),
&:last-child {
border-right: 1px solid #e0e0e0;
}
}

.alllist-text1 {
width: 100%;
font-size: 16px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #333333;
line-height: 26px;
text-align: center;
}
}
.empty-box {
width: 100%;
height: 200px;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}
}

.box-forhtml {
width: 100%;
min-height: 400px;
background: #ffffff;
box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.04);
border-radius: 4px;
padding: 20px 30px;
margin-top: 15px;
}

.box-forhtml-flex {
width: 100%;
display: flex;
margin-top: 20px;
}

.box-forhtml-flex .left {
width: 50%;
min-height: 320px;
}

.box-forhtml-flex .right {
width: 50%;
min-height: 330px;
display: flex;
justify-content: center;
}

.Templatetable {
width: 88%;
height: 100%;
margin: 0 auto;
overflow-y: auto;
}

.table-tit {
width: 100%;
height: 20px;
line-height: 20px;
display: flex;
}

.table-tit > div:nth-of-type(1) {
width: 10%;
text-align: center;
font-size: 16px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #606775;
}

.table-tit > div:nth-of-type(2) {
width: 40%;
text-align: center;
font-size: 16px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #606775;
}

.table-tit > div:nth-of-type(3) {
width: 25%;
text-align: center;
font-size: 16px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #606775;
}

.table-tit > div:nth-of-type(4) {
width: 25%;
text-align: center;
font-size: 16px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #606775;
}

.table-cent {
width: 100%;
height: 40px;
line-height: 40px;
display: flex;
margin-top: 6px;
}
.sequenceNum {
display: flex;
width: 26px;
height: 24px;
justify-content: center;
align-items: center;
background: #e5f0ff;
border-radius: 15px;
color: #333333;
}

.table-cent > div:nth-of-type(1) {
width: 10%;
text-align: center;
font-size: 14px;
font-family: PingFangSC-Semibold, PingFang SC;
color: #32363d;
}

.table-cent > div:nth-of-type(2) {
width: 40%;
text-align: center;
font-size: 14px;
font-family: PingFangSC-Semibold, PingFang SC;
color: #32363d;
}

.table-cent > div:nth-of-type(3) {
width: 25%;
text-align: center;
font-size: 14px;
font-family: PingFangSC-Semibold, PingFang SC;
color: #32363d;
}

.table-cent > div:nth-of-type(4) {
width: 25%;
text-align: center;
font-size: 14px;
font-family: PingFangSC-Semibold, PingFang SC;
color: #32363d;
}

.indeclass {
width: 20px;
height: 20px;
border-radius: 50%;
background: #ecf1ff;
color: #ffffff;
text-align: center;
line-height: 20px;
font-size: 14px;
}

.app-top {
// width: 100%;
// width: calc(100% - 270px);
position: sticky;
top: 0;
z-index: 999;
margin-top: -16px;
background: #ffffff;
// box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.04);
box-shadow: 0px 0px 10px 0px #dadada;
border-radius: 4px;
padding-top: 15px;
padding-bottom: 15px;
width: 100%;

.app-titel2 {
position: relative;
width: 100%;
display: flex;
align-items: center;

.titel-text {
height: 100%;
font-size: 16px;
color: #32363d;
text-indent: 30px;
}

.toptimeqhuan {
width: 190px;
height: 32px;
background: #ffffff;
border-radius: 4px;
border: 1px solid #e0e0e0;
display: flex;
align-items: center;
overflow: hidden;
margin-left: 20px;
cursor: pointer;
}

.toptimeqhuan div {
flex: 1;
text-align: center;
line-height: 32px;
font-size: 14px;
}
}
}
/deep/ .el-button--primary {
background: #2671e2 !important;
border: 1px solid #2671e2 !important;
}
</style>

Loading…
Cancel
Save