ソースを参照

修改样式

newStyle
风继续吹 1年前
コミット
869931e63a
19個のファイルの変更605行の追加341行の削除
  1. +9
    -0
      src/mixins/color.js
  2. +80
    -52
      src/page/index/logo.vue
  3. +49
    -18
      src/page/index/sidebar/index.vue
  4. +43
    -0
      src/page/index/sidebar/sidebarItem.vue
  5. +18
    -60
      src/page/index/top/index.vue
  6. +10
    -2
      src/styles/common.scss
  7. +13
    -1
      src/views/Customer/invalidAuditList.vue
  8. +3
    -3
      src/views/Equipment/equipmentOnlineRecordList.vue
  9. +7
    -0
      src/views/Statistics/employeeUsageStatistics.vue
  10. +27
    -18
      src/views/Statistics/intelligentReporting.vue
  11. +9
    -1
      src/views/Template/labelModel.vue
  12. +250
    -137
      src/views/Template/modelTodo.vue
  13. +4
    -0
      src/views/Template/requiremining.vue
  14. +35
    -21
      src/views/Template/requireminingAnalysis.vue
  15. +1
    -1
      src/views/admin/dept/index.vue
  16. +12
    -0
      src/views/admin/role/index.vue
  17. +2
    -2
      src/views/admin/user/index.vue
  18. +3
    -3
      src/views/building/Count.vue
  19. +30
    -22
      src/views/inspection/ProhibitedList.vue

+ 9
- 0
src/mixins/color.js ファイルの表示

@@ -12,12 +12,21 @@ export default function() {
themeVal(val, oldVal) {
console.log(val, oldVal)
this.$store.commit('SET_THEME', val)
document.documentElement.style.setProperty(`--theme`, val);
this.updateTheme(val, oldVal)
}
},
computed: {
...mapGetters(['theme'])
},

created() {
// 修改主题色
if (this.$domain == 'localhost') {
this.themeVal = '#FF4500'
}
},

methods: {
updateTheme(val, oldVal) {
if (typeof val !== 'string') return


+ 80
- 52
src/page/index/logo.vue ファイルの表示

@@ -1,89 +1,121 @@
<template>
<div class="avue-logo" style="background-color: #001529;">
<div class="avue-logo">
<transition name="fade">
<span v-if="keyCollapse" key="0" class="avue-logo_subtitle" @click="goIndex">
<span
v-if="keyCollapse"
key="0"
class="avue-logo_subtitle"
@click="goIndex"
>
<div class="logo">
<i v-if="url == 'focus.hfju.com' || url == 'focus.aihxz.com'|| url == 'localhost'" class="logoIcons" style="width:44px;"></i>
<i v-else class="logoIcon" style="width:44px;"></i>
<!-- <span>{{ website.subtitle }}</span> -->
<i
v-if="url == 'focus.hfju.com' || url == 'focus.aihxz.com'"
class="logoIcons"
style="width: 44px"
></i>
<i
v-else-if="url == 'zh.aihxz.com' || url == 'localhost'"
class="logoIconss"
></i>
<i v-else class="logoIcon" style="width: 44px"></i>
</div>
</span>
</transition>
<transition-group name="fade">
<span v-if="!keyCollapse" key="1" class="avue-logo_title" @click="goIndex">
<div class="logo">
<i v-if="url == 'focus.hfju.com' || url == 'focus.aihxz.com'" class="logoIcons"></i>
<i v-else-if="url == 'zh.aihxz.com' || url == 'localhost'" class="logoIconss"></i>
<i v-else class="logoIcon" style="width:44px;"></i>
<span
v-if="!keyCollapse"
key="1"
class="avue-logo_title"
@click="goIndex"
>
<div class="logo" v-if="$domain != 'zh.aihxz.com' || $domain != 'localhost'">
<i
v-if="url == 'focus.hfju.com' || url == 'focus.aihxz.com'"
class="logoIcons"
></i>
<i
v-else-if="url == 'zh.aihxz.com' || url == 'localhost'"
class="logoIconss"
></i>
<i v-else class="logoIcon" style="width: 44px"></i>
<span>{{ website.title }}</span>
</div>
<div v-else>
<i class="logoIcon1"></i>
</div>
</span>
</transition-group>
</div>
</template>

<script>
import { mapGetters } from 'vuex'
import { mapGetters } from "vuex";
export default {
data() {
return {
url: document.domain,
}
};
},
name: 'Logo',
name: "Logo",
computed: {
...mapGetters(['website', 'keyCollapse'])
...mapGetters(["website", "keyCollapse"]),
},
// mounted(){
// console.log(this.website,'123');
// },
methods: {
goIndex: function () {
this.$router.push({
path:'/wel'
})
}
}
}
path: "/wel",
});
},
},
};
</script>

<style lang="scss">
.logo{
.logo {
display: flex;
align-items: center;
justify-content: center;
justify-content: center;
padding-top: 20px;
span{
span {
width: 99px;
height: 28px;
font-size: 18px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #FFFFFF;
color: var(--leftSecondTextColor);
line-height: 28px;
margin-left: 8px;
}
.logoIcon{
display: block;
width: 50px;
height: 38px;
background: url('/logoPng.png') no-repeat;
background-size: 100%;
}
.logoIcons {
display: block;
width: 40px;
height: 40px;
background: url('/img/sohu.png') no-repeat;
background-size: 100%;
}
.logoIconss {
display: block;
width: 40px;
height: 40px;
background: url('/img/logoIcon.jpg') no-repeat;
background-size: 100%;
}
.logoIcon {
display: block;
width: 50px;
height: 38px;
background: url("/logoPng.png") no-repeat;
background-size: 100%;
}
.logoIcons {
display: block;
width: 40px;
height: 40px;
background: url("/img/sohu.png") no-repeat;
background-size: 100%;
}
.logoIconss {
display: block;
width: 40px;
height: 40px;
background: url("/img/logoIcon.jpg") no-repeat;
background-size: 100%;
}

.logoIcon1 {
display: block;
width: 40px;
height: 40px;
background: url("/img/logoText.jpg") no-repeat;
background-size: 100%;
}
}

.fade-leave-active {
@@ -97,18 +129,14 @@ export default {
opacity: 0;
}
.avue-logo {
position: fixed;
top: 0;
left: 0;
width: 240px;
height: 64px;
line-height: 64px;
// background-color: #20222a;
font-size: 20px;
overflow: hidden;
box-sizing: border-box;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.15);
color: rgba(255, 255, 255, 0.8);
z-index: 1024;
&_title {
display: block;


+ 49
- 18
src/page/index/sidebar/index.vue ファイルの表示

@@ -1,45 +1,76 @@
<template>
<div class="avue-sidebar" style="background-color: #001529;">
<logo/>
<el-scrollbar style="height:100%">
<div
v-if="validatenull(menu)"
class="avue-sidebar--tip">没有发现菜单</div>
<div class="avue-sidebar">
<logo />
<el-scrollbar class="scrollMenuBox">
<div v-if="validatenull(menu)" class="avue-sidebar--tip">
没有发现菜单
</div>
<el-menu
:default-active="nowTagValue"
:show-timeout="200"
:collapse="keyCollapse"
unique-opened
mode="vertical">
:background-color="bgColor"
:text-color="textColor"
:active-text-color="activeTextColor"
mode="vertical"
>
<sidebar-item
:menu="menu"
:screen="screen"
:props="website.menu.props"
:collapse="keyCollapse"
first/>
first
/>
</el-menu>
</el-scrollbar>
</div>
</template>

<script>
import { mapGetters } from 'vuex'
import logo from '../logo'
import sidebarItem from './sidebarItem'
import { mapGetters } from "vuex";
import logo from "../logo";
import sidebarItem from "./sidebarItem";
export default {
name: 'Sidebar',
name: "Sidebar",
inject: ["Index"],
components: { sidebarItem, logo },
data() {
return {
bgColor: "#001529", // 菜单的背景色
textColor: "#ffffff", // 菜单的文字颜色
activeTextColor: "#409EFF", // 当前激活菜单的文字颜色
};
},
created() {
if (this.$domain == 'zh.aihxz.com' || this.$domain == 'localhost') {
this.bgColor = '#FFFFFF'
this.textColor = '#333'
document.documentElement.style.setProperty(`--leftBgColor`, '#FFFFFF');
document.documentElement.style.setProperty(`--leftSecondTextColor`, '#333');
}
this.Index.openMenu(this.menuId);
},
computed: {
...mapGetters(['website', 'menu', 'tag', 'keyCollapse', 'screen']),
nowTagValue: function() {
return this.$router.$avueRouter.getValue(this.$route)
}
}
}
...mapGetters(["website", "menu", "tag", "keyCollapse", "screen"]),
nowTagValue: function () {
return this.$router.$avueRouter.getValue(this.$route);
},
},
};
</script>

<style lang="scss" scoped>

.avue-sidebar {
box-shadow: 1px 1px 5px rgba($color: #000000, $alpha: .3);
background-color: var(--leftBgColor);
}

.scrollMenuBox {
height: calc(100vh - 64px);
}
</style>



+ 43
- 0
src/page/index/sidebar/sidebarItem.vue ファイルの表示

@@ -131,3 +131,46 @@ export default {
};
</script>

<style lang="scss" scoped>
.el-menu-item {
padding: 0 10px;

span,
i {
color: unset;
}
// &:hover {
// background-color: #ecf5ff;
// span,
// i {
// color: #fff;
// }
// }

&.is-active {
// background-color: rgba(0, 0, 0, .8);
background-color: var(--menuActiveBgColor) !important;
border-radius: 5px;
span,
i {
color: #fff;
}

&:hover {
background-color: rgba(0, 0, 0, 0.8);
}

&::before {
content: " ";
top: 0;
left: 0;
bottom: 0;
width: 4px;
// background: $mainBg;
position: absolute;
}
}
}
</style>

+ 18
- 60
src/page/index/top/index.vue ファイルの表示

@@ -1,14 +1,5 @@
<template>
<div class="avue-top">
<!-- <div class="top-bar__left">
<div
v-if="showCollapse"
:class="[{ 'avue-breadcrumb--active': isCollapse }]"
class="avue-breadcrumb"
>
<i class="icon-navicon" @click="setCollapse" />
</div>
</div> -->
<div class="top-bar__left">
<div v-if="showCollapse" class="avue-breadcrumb">
<i
@@ -28,9 +19,6 @@
height: 32px;
"
>
<!-- <div class="daili2">
<img class="daili2img" src="/img/qh2.png" alt="" />
</div> -->
<div class="daili">
{{
orgType == 0
@@ -43,17 +31,7 @@
}}
</div>

<el-button
@click="goChange"
class="avue-header"
style="
margin-left: 10px;
color: #2671e2;
border: 1px solid #2671e2;
padding: 10px;
"
>切换后台</el-button
>
<el-button @click="goChange" class="avue-header">切换后台</el-button>
</div>
<div
v-if="companyName"
@@ -67,35 +45,21 @@
margin-left: 20px;
"
>
<!-- <div class="daili2">
<img class="daili2img" src="/img/qh1.png" alt="" />
</div> -->
<div class="daili">
{{ companyName }}
</div>
<el-button
@click="goBack"
class="avue-header"
style="
margin-left: 10px;
color: #2671e2;
border: 1px solid #2671e2;
padding: 10px;
"
>{{
orgType == 0
? "切换后台"
: orgType == 1
? "切换代理"
: orgType == 2
? "切换公司"
: "切换项目"
}}</el-button
>
<el-button @click="goBack" class="avue-header">{{
orgType == 0
? "切换后台"
: orgType == 1
? "切换代理"
: orgType == 2
? "切换公司"
: "切换项目"
}}</el-button>
</div>

<top-menu />

</div>
<div class="top-bar__right">
<el-tooltip
@@ -103,21 +67,12 @@
effect="dark"
content="主题色"
placement="bottom"
style="display: none;"
>
<div class="top-bar__item">
<top-color />
</div>
</el-tooltip>
<!-- <el-tooltip
v-if="showDebug"
:content="logsFlag ? '没有错误日志' : `${logsLen}条错误日志`"
effect="dark"
placement="bottom"
>
<div class="top-bar__item">
<top-logs />
</div>
</el-tooltip> -->
<el-tooltip
v-if="showLock"
effect="dark"
@@ -128,10 +83,6 @@
<top-lock />
</div>
</el-tooltip>
<!-- <div class="notice">
<i class="noticeIcon"></i>
<span>通知(0)</span>
</div> -->
<el-popover
placement="bottom"
trigger="hover"
@@ -731,4 +682,11 @@ export default {
/deep/.has-gutter {
display: none;
}

.avue-header {
margin-left: 10px;
color: var(--theme);
border: 1px solid var(--theme);
padding: 10px;
}
</style>

+ 10
- 2
src/styles/common.scss ファイルの表示

@@ -8,8 +8,8 @@
@import './tags.scss';
// 工具类函数
@import './mixin.scss';
// 侧面导航栏
@import './sidebar.scss';
// // 侧面导航栏
// @import './sidebar.scss';
// 动画
@import './animate/vue-transition.scss';
//主题
@@ -19,6 +19,14 @@
//通用配置
@import './normalize.scss';

:root {
--theme: #2671e2; // 主题色默认蓝色
--leftBgColor: #001529; // 左侧菜单背景色
--leftSecondTextColor: #fff; // 左侧菜单头部字体颜色
--menuActiveBgColor: #2671e2; // 左侧菜单选中后的背景色
--menuActiveTextColor: #fff; // 二级菜单的字体颜色
}

a {
text-decoration: none;
color: #333;


+ 13
- 1
src/views/Customer/invalidAuditList.vue ファイルの表示

@@ -159,7 +159,7 @@
<template slot-scope="scope">
<div
v-if="permissions['invalid_watch_audit']"
style="color: #2671e2; cursor: pointer"
style="color: var(--theme); cursor: pointer"
@click="Toview(scope)"
>
查看
@@ -969,6 +969,14 @@ export default {
height: 32px;
display: flex;
align-items: center;

/deep/.el-radio-button__orig-radio:checked+.el-radio-button__inner {
background-color: var(--theme);
border-color: var(--theme);
-webkit-box-shadow: -1px 0 0 0 var(--theme);
box-shadow: -1px 0 0 0 var(--theme);
}
}

.screeningboxlebl {
@@ -1826,8 +1834,12 @@ export default {

.elmenus .el-menu-demo {
border-bottom: none;

}

/deep/.el-menu--horizontal>.el-menu-item.is-active {
border-bottom: 2px solid var(--theme);
}
/deep/ .el-range-separator {
width: 10%;
}

+ 3
- 3
src/views/Equipment/equipmentOnlineRecordList.vue ファイルの表示

@@ -4,14 +4,14 @@
<div
@click="tapclickyab(0)"
:class="{ activecllasscet: activeTotal == 0 }"
:style="{ background: activeTotal == 0 ? '#2671E2' : '#ffffff' }"
:style="{ background: activeTotal == 0 ? `var(--theme)` : '#ffffff' }"
>
设备离线记录
</div>
<div
@click="tapclickyab(1)"
:class="{ activecllasscet: activeTotal == 1 }"
:style="{ background: activeTotal == 1 ? '#2671E2' : '#ffffff' }"
:style="{ background: activeTotal == 1 ? `var(--theme)` : '#ffffff' }"
>
设备指派记录
</div>
@@ -83,7 +83,7 @@
<div style="margin-left: 80px">
<el-button
@click="screening()"
style="background: #2671e2; color: #ffffff"
style="background: var(--theme); color: #fff;border-color: var(--theme);"
>筛选</el-button
>
</div>


+ 7
- 0
src/views/Statistics/employeeUsageStatistics.vue ファイルの表示

@@ -453,4 +453,11 @@ export default {
/deep/ .el-range-separator {
width: 10%;
}

/deep/.el-radio-button__orig-radio:checked + .el-radio-button__inner {
background-color: var(--theme);
border-color: var(--theme);
-webkit-box-shadow: -1px 0 0 0 var(--theme);
box-shadow: -1px 0 0 0 var(--theme);
}
</style>

+ 27
- 18
src/views/Statistics/intelligentReporting.vue ファイルの表示

@@ -20,6 +20,7 @@
<template slot-scope="{ row }">
<template>
<el-button
style="color: var(--theme)"
@click.native.prevent="goCreatReport(row)"
type="text"
size="small"
@@ -28,6 +29,7 @@
</template>
<template>
<el-button
style="color: var(--theme)"
@click.native.prevent="showRuleTips(row)"
type="text"
size="small"
@@ -36,6 +38,7 @@
</template>
<template>
<el-button
style="color: var(--theme)"
@click.native.prevent="showHistory(row)"
type="text"
size="small"
@@ -44,6 +47,7 @@
</template>
<template>
<el-button
style="color: var(--theme)"
@click.native.prevent="deleteByRule(row)"
type="text"
size="small"
@@ -390,12 +394,14 @@ export default {
},
// 获取该公司下的项目
getProjectList(row) {
this.$api.http.monthlyGetProjectList({
this.$api.http
.monthlyGetProjectList({
orgCode: row.orgCode,
}).then((res) => {
console.log(res)
this.projectList = res.data;
});
})
.then((res) => {
console.log(res);
this.projectList = res.data;
});
},

// screen //筛选条件
@@ -486,9 +492,9 @@ export default {
this.$api.http.addMonthlyData(obj).then((res) => {
console.log(res, "resss");
if (res.code == 10000) {
this.$message.success(res.message)
this.$message.success(res.message);
} else {
this.$message.error(res.message)
this.$message.error(res.message);
}
});
},
@@ -496,11 +502,11 @@ export default {
// 跳转详情
toDetail(row) {
this.$router.push({
path: '/Statistics/reportDetail',
path: "/Statistics/reportDetail",
query: {
id: row.id
}
})
id: row.id,
},
});
},

// 生成报告
@@ -519,11 +525,11 @@ export default {
// 跳转页面
goCreatReport(data) {
this.$router.push({
path: '/Statistics/createReport',
path: "/Statistics/createReport",
query: {
id: data.id||''
}
})
id: data.id || "",
},
});
},

// 分页每页条数改变
@@ -569,9 +575,11 @@ export default {
type: "warning",
})
.then(() => {
this.$api.http.monthlyDeleteDataById({
this.$api.http
.monthlyDeleteDataById({
id: row.id,
}).then((res) => {
})
.then((res) => {
if (res.code == 10000) {
this.$message.success("操作成功");
this.findDataByRuleId();
@@ -594,7 +602,8 @@ export default {
type: "warning",
})
.then(() => {
this.$api.http.monthlyDeleteByRuleId({
this.$api.http
.monthlyDeleteByRuleId({
id: row.id,
})
.then((res) => {


+ 9
- 1
src/views/Template/labelModel.vue ファイルの表示

@@ -24,7 +24,7 @@
</el-option>
</el-select>
<el-button size="small" type="primary" @click="search()">筛选</el-button>
<el-button size="small" type="text" @click="Emptycondition()">清空筛选条件</el-button>
<el-button size="small" type="text" style="color: var(--theme);" @click="Emptycondition()">清空筛选条件</el-button>
</div>
<div class="app-box">
<el-table
@@ -723,6 +723,14 @@ export default {
box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.04);
border-radius: 4px;
padding: 15px;

/deep/.el-radio-button__orig-radio:checked+.el-radio-button__inner {
background-color: var(--theme);
border-color: var(--theme);
-webkit-box-shadow: -1px 0 0 0 var(--theme);
box-shadow: -1px 0 0 0 var(--theme);
}
}
.block {
width: 100%;


+ 250
- 137
src/views/Template/modelTodo.vue ファイルの表示

@@ -43,7 +43,7 @@
style="width: 140px"
></el-input>
</div>
<div style="margin-left: 20px">
<el-button @click="searchFun" type="primary">筛选</el-button>
</div>
@@ -76,14 +76,27 @@
</el-table-column>
<el-table-column prop="houseName" label="项目" align="center">
</el-table-column>
<el-table-column prop="updateTime" label="处理时间" align="center" v-if="type == 0" >
<el-table-column
prop="updateTime"
label="处理时间"
align="center"
v-if="type == 0"
>
</el-table-column>
<el-table-column prop="updateUserName"
label="处理人" v-if="type == 0" align="center" >
<el-table-column
prop="updateUserName"
label="处理人"
v-if="type == 0"
align="center"
>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<div v-if="permissions.piPeiMoXing" style="color: #2671e2; cursor: pointer" @click="editFun(scope.row)">
<div
v-if="permissions.piPeiMoXing"
style="color: var(--theme); cursor: pointer"
@click="editFun(scope.row)"
>
匹配模型
</div>
</template>
@@ -104,71 +117,156 @@
</div>
</div>
<el-dialog
title="编辑模型"
@open="openModel"
:close-on-click-modal="false"
:visible.sync="dialogVisible"
>
<matching-rules :key="timer" :innerVisible="innerVisible"></matching-rules>
title="编辑模型"
@open="openModel"
:close-on-click-modal="false"
:visible.sync="dialogVisible"
>
<matching-rules
:key="timer"
:innerVisible="innerVisible"
></matching-rules>

<el-form ref="form" size="mini" :inline="true" :model="form" label-position="right">
<el-form-item :label="keyType==0?'挖掘话术:':'标签名称:'">
<div style="max-width:400px;min-width: 200px;font-weight: bold">{{form.keywordsName}}</div>
</el-form-item>
<el-form-item label="场景描述:" >
<div v-if="form.sceneDesc" style="width:500px;border: 1px dashed #ccc;padding:5px 10px;line-height: 25px"> {{form.sceneDesc}}</div>
<div v-else>暂无描述</div>
</el-form-item>
<el-form-item label="after,near,answer 匹配距离:">
<el-input-number v-model="form.distance" controls-position="right" :min="0" :max="500"></el-input-number><span style="color:red;margin-left:10px">*请输入0~500内的整数</span> <el-button type="text" style="margin-left:30px" @click="innerVisible=true;timer=new Date().getTime()">规则说明</el-button>
</el-form-item>
<div contentEditable="true"
@click="myeditorenter($event)"
@keypress.enter="myeditorenter($event)"
@blur="saveRange"
class="editDiv"
id="huashuModel">
<el-form
ref="form"
size="mini"
:inline="true"
:model="form"
label-position="right"
>
<el-form-item :label="keyType == 0 ? '挖掘话术:' : '标签名称:'">
<div style="max-width: 400px; min-width: 200px; font-weight: bold">
{{ form.keywordsName }}
</div>
<div v-if="keyType==0||dynamiclist.length">{{keyType==0?'匹配标签:':'需求挖掘匹配:'}}</div>
<!-- keyType 0需求挖掘 1销讲词 2客户标签 3违禁 -->
<div class="dynamicbox" v-if="keyType==0">
<div v-for="(item,index) in dynamiclist" :key="item" class="itemlist">
<el-select size="small" v-model="item.markid" @change="checkrepeat" placeholder="标签" clearable>
<el-option v-for="(mark,i) in wajueList" :disabled="mark.disabled" :key="i" :label="mark.name" :value="mark.id"></el-option>
</el-select>
<div contentEditable="true"
@click="myeditorenter($event)"
@keypress.enter="myeditorenter($event)"
@blur="saveRange"
class="item-input"
v-html="item.editValue"
:id="'huashuModel'+index"></div>
<el-button size="small" type="primary" @click="delItemFun(index)">删除</el-button>
</div>
</el-form-item>
<el-form-item label="场景描述:">
<div
v-if="form.sceneDesc"
style="
width: 500px;
border: 1px dashed #ccc;
padding: 5px 10px;
line-height: 25px;
"
>
{{ form.sceneDesc }}
</div>
<div class="dynamicbox" v-else>
<div v-for="item in dynamiclist" :key="item" class="itemlist">
<el-input size="small" disabled style="width: 220px" v-model="item.question"></el-input>
<div class="item-input" style="pointer-events: none;" v-html="item.editValue"></div>
</div>
<div v-else>暂无描述</div>
</el-form-item>
<el-form-item label="after,near,answer 匹配距离:">
<el-input-number
v-model="form.distance"
controls-position="right"
:min="0"
:max="500"
></el-input-number
><span style="color: red; margin-left: 10px"
>*请输入0~500内的整数</span
>
<el-button
type="text"
style="margin-left: 30px"
@click="
innerVisible = true;
timer = new Date().getTime();
"
>规则说明</el-button
>
</el-form-item>
<div
contentEditable="true"
@click="myeditorenter($event)"
@keypress.enter="myeditorenter($event)"
@blur="saveRange"
class="editDiv"
id="huashuModel"
></div>
<div v-if="keyType == 0 || dynamiclist.length">
{{ keyType == 0 ? "匹配标签:" : "需求挖掘匹配:" }}
</div>
<!-- keyType 0需求挖掘 1销讲词 2客户标签 3违禁 -->
<div class="dynamicbox" v-if="keyType == 0">
<div
v-for="(item, index) in dynamiclist"
:key="item"
class="itemlist"
>
<el-select
size="small"
v-model="item.markid"
@change="checkrepeat"
placeholder="标签"
clearable
>
<el-option
v-for="(mark, i) in wajueList"
:disabled="mark.disabled"
:key="i"
:label="mark.name"
:value="mark.id"
></el-option>
</el-select>
<div
contentEditable="true"
@click="myeditorenter($event)"
@keypress.enter="myeditorenter($event)"
@blur="saveRange"
class="item-input"
v-html="item.editValue"
:id="'huashuModel' + index"
></div>
<el-button size="small" type="primary" @click="delItemFun(index)"
>删除</el-button
>
</div>
<div>
<el-button :disabled="dynamiclist.length==wajueList.length" v-if="keyType==0" @click="addItemFun" icon="el-icon-plus" type="primary" size="mini" style="width: 120px;margin:20px 0;"></el-button>
</div>
<div class="dynamicbox" v-else>
<div v-for="item in dynamiclist" :key="item" class="itemlist">
<el-input
size="small"
disabled
style="width: 220px"
v-model="item.question"
></el-input>
<div
class="item-input"
style="pointer-events: none"
v-html="item.editValue"
></div>
</div>
<el-form-item label="插入节点:">
<el-button size="mini" type="primary" style="margin-left:8px;" v-for="(item,index) in taglist" :key="index" @click="insertTag(item,index)">{{item.label}}</el-button>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="saveFun">保 存</el-button>
</span>
</div>
<div>
<el-button
:disabled="dynamiclist.length == wajueList.length"
v-if="keyType == 0"
@click="addItemFun"
icon="el-icon-plus"
type="primary"
size="mini"
style="width: 120px; margin: 20px 0"
></el-button>
</div>
<el-form-item label="插入节点:">
<el-button
size="mini"
type="primary"
style="margin-left: 8px"
v-for="(item, index) in taglist"
:key="index"
@click="insertTag(item, index)"
>{{ item.label }}</el-button
>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="saveFun">保 存</el-button>
</span>
</el-dialog>
</div>
</template>

<script>

import { mapGetters } from "vuex";
import matchingRules from "@/components/matchingRules/matchingRules.vue";
export default {
@@ -225,50 +323,51 @@ export default {
pageSize: 10,
total: 0,
pageNum: 1,
houseId: '',
houseId: "",
currentHouseId: "",
};
},
computed: {
...mapGetters(["permissions"]),
},
created(){
this.houseId=localStorage.getItem("houseId");
...mapGetters(["permissions"]),
},
created() {
this.houseId = localStorage.getItem("houseId");
this.gettableList();
// this.orgType = localStorage.getItem("orgType")
// this.orgType==0?this.zkhousePage():this.gettableList()
},
// this.orgType = localStorage.getItem("orgType")
// this.orgType==0?this.zkhousePage():this.gettableList()
},
methods: {
// 获取项目列表
// zkhousePage() {
// this.$api.api.findHouseByUser({
// orgType: localStorage.getItem("orgType"),
// }).then((res) => {
// this.houseList = res.data;
// this.houseId = res.data[0].id;
// this.gettableList();
// });
// },
houseChange(){
this.gettableList()
},
// zkhousePage() {
// this.$api.api.findHouseByUser({
// orgType: localStorage.getItem("orgType"),
// }).then((res) => {
// this.houseList = res.data;
// this.houseId = res.data[0].id;
// this.gettableList();
// });
// },
houseChange() {
this.gettableList();
},
// keytype =0,获取需求挖掘类型的数据回显接口
wajuehuixian() {
// 获取模型数据回显
axios({
url: `/autoSR/zk/keymodel/findById`,
method: 'get',
params: {
houseId: this.currentHouseId,
level: this.level,
keyType: 0,
questionId: this.questionId,
keywordsId: this.form.keywordsId
}
}).then((res) => {
url: `/autoSR/zk/keymodel/findById`,
method: "get",
params: {
houseId: this.currentHouseId,
level: this.level,
keyType: 0,
questionId: this.questionId,
keywordsId: this.form.keywordsId,
},
})
.then((res) => {
this.dialogVisible = true;
if (res.code== 0) {
if (res.code == 0) {
let obj = res.data;
if (obj != null) {
this.form.distance = obj.distance || 10;
@@ -323,14 +422,15 @@ export default {
// 获取模型数据回显
axios({
url: `/autoSR/zk/keymodel/findById`,
method: 'get',
method: "get",
params: {
houseId: this.currentHouseId,
level: type==3?1:this.level,
keyType: type,
keywordsId: this.form.keywordsId
}
}).then((res) => {
houseId: this.currentHouseId,
level: type == 3 ? 1 : this.level,
keyType: type,
keywordsId: this.form.keywordsId,
},
})
.then((res) => {
this.dialogVisible = true;
if (res.code == 0) {
let obj = res.data;
@@ -410,11 +510,17 @@ export default {
temp = temp.replace(/\&nbsp\;/g, "");
temp = temp.replace(/<text>/g, "");
temp = temp.replace(/<\/text>/g, "");
temp = temp.replace(/<span contenteditable="false" style="color:red">/g, " #"); // 后台返回是这样的,变了,需要也处理一下
temp = temp.replace(/<span style="color:red" contenteditable="false">/g," #");
temp = temp.replace(
/<span contenteditable="false" style="color:red">/g,
" #"
); // 后台返回是这样的,变了,需要也处理一下
temp = temp.replace(
/<span style="color:red" contenteditable="false">/g,
" #"
);
temp = temp.replace(/<\/span>/g, "#");
temp = temp.replace(/<\/br>/g,'')
temp = temp.replace(/<br>/g,'')
temp = temp.replace(/<\/br>/g, "");
temp = temp.replace(/<br>/g, "");
// console.log(temp);
// console.log('截取前',temp);
this.delMark(temp);
@@ -640,23 +746,23 @@ export default {
this.wajueList = [];
axios({
url: `/autoSR/zk/keywords/findKeywordsById`,
method: 'get',
method: "get",
params: {
houseId: this.currentHouseId,
keywordsId: level1Id,
level: 1
}
}).then((res) => {
if (res.code == 0) {
console.log(res);
this.wajueList = res.data;
if (this.wajueList && this.wajueList.length) {
this.wajueList.forEach((item) => {
item.disabled = false;
});
}
level: 1,
},
}).then((res) => {
if (res.code == 0) {
console.log(res);
this.wajueList = res.data;
if (this.wajueList && this.wajueList.length) {
this.wajueList.forEach((item) => {
item.disabled = false;
});
}
});
}
});
},
// 插入节点
insertTag(item, index) {
@@ -698,27 +804,27 @@ export default {
},
gettableList() {
axios({
url: `/autoSR/zk/todo/list`,
method: "get",
params: {
current: this.pageNum,
size: this.pageSize,
houseName: this.searchForm.houseName,
updateUserName: this.searchForm.updateUserName,
name: this.searchForm.name,
status: this.type, //status 状态 0已处理 1未处理
startTime: this.searchForm.startTime,
endTime: this.searchForm.endTime,
},
}).then((res) => {
// console.log(res)
if(res.code==0){
this.tableData = res.data.records || [];
this.total = res.data.total;
} else {
this.tableData = [];
}
});
url: `/autoSR/zk/todo/list`,
method: "get",
params: {
current: this.pageNum,
size: this.pageSize,
houseName: this.searchForm.houseName,
updateUserName: this.searchForm.updateUserName,
name: this.searchForm.name,
status: this.type, //status 状态 0已处理 1未处理
startTime: this.searchForm.startTime,
endTime: this.searchForm.endTime,
},
}).then((res) => {
// console.log(res)
if (res.code == 0) {
this.tableData = res.data.records || [];
this.total = res.data.total;
} else {
this.tableData = [];
}
});
},
handleSizeChange(val) {
console.log("每页条" + val);
@@ -777,6 +883,13 @@ export default {
}
.control-tab {
margin-left: 15px;

/deep/.el-radio-button__orig-radio:checked+.el-radio-button__inner {
background-color: var(--theme);
border-color: var(--theme);
-webkit-box-shadow: -1px 0 0 0 var(--theme);
box-shadow: -1px 0 0 0 var(--theme);
}
}
}
.button1 {


+ 4
- 0
src/views/Template/requiremining.vue ファイルの表示

@@ -1585,4 +1585,8 @@ export default {
.tip {
margin-left: 30px;
}

.el-button--text {
color: var(--theme);
}
</style>

+ 35
- 21
src/views/Template/requireminingAnalysis.vue ファイルの表示

@@ -641,7 +641,7 @@ export default {
};
},
created() {
this.addOperatingLog()
this.addOperatingLog();
this.houseId = localStorage.getItem("houseId");
this.getAllDeptName(); /// 获取楼盘下全部部门-团队下拉数据
this.getAllAccountName(); // 全部顾问
@@ -650,12 +650,11 @@ export default {
this.excuteMethods();
},
methods: {
// 添加日志
addOperatingLog() {
this.$api.http.addOperatingLog({ logType: 5 });
},
// 部门
// 部门
getAllDeptName() {
this.$api.api.getAllDeptName(this.houseId).then((res) => {
if (res.code == 10000) {
@@ -900,7 +899,7 @@ export default {
// console.log("执行明细");
if (data.code == 0) {
this.activeCustomer = data.data.cus.activeCustomer;
this.detail.tableData = data.data.list.records||[];
this.detail.tableData = data.data.list.records || [];
this.detail.total = data.data.list.total;
}
});
@@ -1000,41 +999,50 @@ export default {
let firstStartDate = this.TimetoAhoose == 7 ? this.fromobj.starttime : "";
let firstEndDate = this.TimetoAhoose == 7 ? this.fromobj.endoftime : "";
var daochuparams =
"?houseId=" + this.houseId +
"&deptId=" + this.fromobj.team +
"&createUser=" + this.fromobj.consultant +
"&firstStartDate=" + firstStartDate +
"&firstEndDate=" + firstEndDate;
if(this.TimetoAhoose!=7){
daochuparams = daochuparams+ "&dateType=" + this.TimetoAhoose
}
"?houseId=" +
this.houseId +
"&deptId=" +
this.fromobj.team +
"&createUser=" +
this.fromobj.consultant +
"&firstStartDate=" +
firstStartDate +
"&firstEndDate=" +
firstEndDate;
if (this.TimetoAhoose != 7) {
daochuparams = daochuparams + "&dateType=" + this.TimetoAhoose;
}

if (type == "rank") {
//排行
window.location.href ="/autoSR/customer/wordMiningRankExport" + daochuparams;
window.location.href =
"/autoSR/customer/wordMiningRankExport" + daochuparams;
} else if (type == "analysis") {
//分析
if (this.leftTypeVal == 1) {
//趋势表
window.location.href =
"/autoSR/customer/wordMiningAnalyzePercentageExport" +
daochuparams;
"/autoSR/customer/wordMiningAnalyzePercentageExport" + daochuparams;
} else {
//分布表
window.location.href ="/autoSR/customer/wordMiningAnalyzeFenbuExport" + daochuparams;
window.location.href =
"/autoSR/customer/wordMiningAnalyzeFenbuExport" + daochuparams;
}
} else if (type == "abnormal") {
// 异常
if (this.typeAbnormalVal == 1) {
//下跌
window.location.href ="/autoSR/customer/wordMiningAbnormalExport" + daochuparams;
window.location.href =
"/autoSR/customer/wordMiningAbnormalExport" + daochuparams;
} else {
//未执行
window.location.href = "/autoSR/customer/wordMiningNoImplateExport" + daochuparams;
window.location.href =
"/autoSR/customer/wordMiningNoImplateExport" + daochuparams;
}
} else if (type == "detail") {
// 明细
window.location.href ="/autoSR/customer/wordMiningImplementExport" + daochuparams;
window.location.href =
"/autoSR/customer/wordMiningImplementExport" + daochuparams;
}
},
Toview(item, type) {
@@ -1060,10 +1068,10 @@ export default {
Userrecord.id = item.id;
Userrecord.name = "";
Userrecord.keywordsId = "";
Userrecord.wordFraction = item.name;//需求挖掘率
Userrecord.wordFraction = item.name; //需求挖掘率
}
localStorage.setItem("Userrecord", JSON.stringify(Userrecord));
this.$router.push({path:'/ReceivingRecords/index'})
this.$router.push({ path: "/ReceivingRecords/index" });
},
//清空筛选条件
Emptycondition() {
@@ -1385,4 +1393,10 @@ export default {
color: #333333;
line-height: 20px;
}
/deep/.el-radio-button__orig-radio:checked + .el-radio-button__inner {
background-color: var(--theme);
border-color: var(--theme);
-webkit-box-shadow: -1px 0 0 0 var(--theme);
box-shadow: -1px 0 0 0 var(--theme);
}
</style>

+ 1
- 1
src/views/admin/dept/index.vue ファイルの表示

@@ -6,7 +6,7 @@
<div style="margin-left: 20px" v-if="sys_dept_add">
<el-button
@click="editorinfo()"
style="background: #2671e2; color: #ffffff"
style="background: var(--theme); color: #ffffff"
>新增</el-button
>
</div>


+ 12
- 0
src/views/admin/role/index.vue ファイルの表示

@@ -905,4 +905,16 @@ export default {
width: 800px;
height: 150px;
}


/deep/.el-radio-button__orig-radio:checked + .el-radio-button__inner {
background-color: var(--theme);
border-color: var(--theme);
-webkit-box-shadow: -1px 0 0 0 var(--theme);
box-shadow: -1px 0 0 0 var(--theme);
}

/deep/.el-tree-node.is-current>.el-tree-node__content {
color: var(--theme);
}
</style>

+ 2
- 2
src/views/admin/user/index.vue ファイルの表示

@@ -63,7 +63,7 @@
</el-form-item>
<el-form-item>
<el-button type="primary" @click="search">筛选</el-button>
<el-button @click="reset" type="text">清空筛选条件</el-button>
<el-button style="color: var(--theme);" @click="reset" type="text">清空筛选条件</el-button>
</el-form-item>
</el-form>
</div>
@@ -2686,7 +2686,7 @@ export default {
margin: 10px;

.ch1 {
background: cornflowerblue;
background: var(--theme);
color: #fff;
}
.ch2 {


+ 3
- 3
src/views/building/Count.vue ファイルの表示

@@ -5,7 +5,7 @@
<div
@click="tapclickyab(0)"
:class="{ activecllasscet: activeTotal == 0 }"
:style="{ background: activeTotal == 0 ? '#2671E2' : '#ffffff' }"
:style="{ background: activeTotal == 0 ? `var(--theme)` : '#ffffff' }"
>
项目
</div>
@@ -13,7 +13,7 @@
v-if="orgType == 0"
@click="tapclickyab(1)"
:class="{ activecllasscet: activeTotal == 1 }"
:style="{ background: activeTotal == 1 ? '#2671E2' : '#ffffff' }"
:style="{ background: activeTotal == 1 ? `var(--theme)` : '#ffffff' }"
>
代理商
</div>
@@ -21,7 +21,7 @@
v-if="orgType == 0 || orgType == 1"
@click="tapclickyab(2)"
:class="{ activecllasscet: activeTotal == 2 }"
:style="{ background: activeTotal == 2 ? '#2671E2' : '#ffffff' }"
:style="{ background: activeTotal == 2 ? `var(--theme)` : '#ffffff' }"
>
公司
</div>


+ 30
- 22
src/views/inspection/ProhibitedList.vue ファイルの表示

@@ -114,7 +114,13 @@
<el-button style="margin-left: 1em" :underline="false" type="text"
>清空筛选条件</el-button
>
<el-button style="margin-left:10px;" @click="isSystoleForm" type="text">{{isOpen?'收起':'展开'}}<i style="margin-left:5px;" :class="isOpen?'el-icon-arrow-up':'el-icon-arrow-down'"></i></el-button>
<el-button style="margin-left: 10px" @click="isSystoleForm" type="text"
>{{ isOpen ? "收起" : "展开"
}}<i
style="margin-left: 5px"
:class="isOpen ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"
></i
></el-button>
</div>
</div>

@@ -131,9 +137,9 @@
@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>
<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">
@@ -238,8 +244,8 @@ export default {
pageSize: 10, // 每页显示多少条
},

pagesize:30,
isOpen:false,
pagesize: 30,
isOpen: false,
houseList: [], // 可切换的项目列表
orgType: localStorage.getItem("orgType"), // 组织类型
prohibitedSignsList: [
@@ -327,7 +333,6 @@ export default {
},

methods: {
// 获取当前页面的显隐
setTableOption() {
this.$db.getDataByKey(this.tableIdName).then((res) => {
@@ -336,8 +341,8 @@ export default {
}
});
},
isSystoleForm(){
this.isOpen = !this.isOpen
isSystoleForm() {
this.isOpen = !this.isOpen;
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
@@ -371,7 +376,9 @@ export default {
houseChange() {},

// 固定类型时间选择
tabtimetap(index) {},
tabtimetap(index) {
this.TimetoAhoose = index;
},

// 自定义时间选择
confirmtime() {},
@@ -414,6 +421,7 @@ export default {
background: #ffffff;
display: flex;
align-items: center;
cursor: pointer;

div {
margin-right: 10px;
@@ -452,29 +460,29 @@ export default {

.tophove {
color: #ffffff;
background: #2671E2;
border-color: #2671E2;
background: var(--theme);
border-color: var(--theme);
}

.div-inp {
width: 250px;
}
}
/deep/ .el-table__header-wrapper{
thead{
tr{
th{
background: #F5F7FA;
/deep/ .el-table__header-wrapper {
thead {
tr {
th {
background: #f5f7fa;
color: #333333;
}
}
}
}
/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>

読み込み中…
キャンセル
保存