Commit e9bcfe76 by crushh

update: temp

parent 6a9bfeea
...@@ -15,6 +15,13 @@ module.exports = { ...@@ -15,6 +15,13 @@ module.exports = {
'^/haoban-manage3-web': '' '^/haoban-manage3-web': ''
} }
}, },
'/gic-member-tag-web/': {
target: 'https://haoban.gicdev.com/gic-member-tag-web/',
changeOrigin: true,
pathRewrite: {
'^/gic-member-tag-web': ''
}
},
'/api-plug/': { '/api-plug/': {
target: 'https://www.gicdev.com/api-plug/', target: 'https://www.gicdev.com/api-plug/',
changeOrigin: true, changeOrigin: true,
......
...@@ -62,3 +62,12 @@ export const statisticsClerk = params => postJsonRequest('/haoban-manage3-web/hm ...@@ -62,3 +62,12 @@ export const statisticsClerk = params => postJsonRequest('/haoban-manage3-web/hm
// 【活码链接】-- 门店列表 // 【活码链接】-- 门店列表
export const storeListApi = params => getRequest('/haoban-manage3-web/hm/store-list', params); export const storeListApi = params => getRequest('/haoban-manage3-web/hm/store-list', params);
// 日志查询列表
export const logList = params => getRequest('/haoban-manage3-web/log-record/list', params);
// 获取 业务模块
export const businessType = params => getRequest('/haoban-manage3-web/log-record/business-types', params);
// 获取 操作类型
export const optTypes = params => getRequest('/haoban-manage3-web/log-record/opt-types', params);
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
</div> </div>
</dm-simple-transfer> </dm-simple-transfer>
<div class="show-select-num cursor-pointer w-250" slot="reference"> <div class="show-select-num cursor-pointer w-250" slot="reference">
已经选择{{ selected.length }}家门店 已经选择{{ selected && selected.length }}家门店
<span class="el-input__suffix" <span class="el-input__suffix"
><span class="el-input__suffix-inner"><i :class="['el-select__caret el-input__icon el-icon-arrow-up', departmentVisible ? 'is-reverse' : '']"></i></span ><span class="el-input__suffix-inner"><i :class="['el-select__caret el-input__icon el-icon-arrow-up', departmentVisible ? 'is-reverse' : '']"></i></span
></span> ></span>
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<el-form-item label="链接标签" required prop="memberLabelId"> <el-form-item label="链接标签" required prop="memberLabelId">
<el-button plain v-if="!form.memberLabelId" @click="tagsDialogVisible = true"><i class="iconfont-components3 icon-cp-PlusOutlined addPic"></i>添加标签</el-button> <el-button plain v-if="!form.memberLabelId" @click="tagsDialogVisible = true"><i class="iconfont-components3 icon-cp-PlusOutlined addPic"></i>添加标签</el-button>
<el-tag v-else closable @close="handleTagCloseTag">{{ form.memberLabelName }}</el-tag> <el-tag v-else closable @close="handleTagCloseTag">{{ form.memberLabelName }}</el-tag>
<dm-memberTag-group :visiable.sync="tagsDialogVisible" projectName="haobao-3" @save="saveTagPop"></dm-memberTag-group> <dm-memberTag-group :visiable.sync="tagsDialogVisible" isHb projectName="haobao-3" @save="saveTagPop"></dm-memberTag-group>
</el-form-item> </el-form-item>
</div> </div>
<dm-sub-title type="line">分配规则</dm-sub-title> <dm-sub-title type="line">分配规则</dm-sub-title>
...@@ -264,6 +264,7 @@ export default { ...@@ -264,6 +264,7 @@ export default {
const { link, page } = result; const { link, page } = result;
link.storeRuleJson = JSON.parse(link.storeRuleJson); link.storeRuleJson = JSON.parse(link.storeRuleJson);
link.customRuleJson = JSON.parse(link.customRuleJson); link.customRuleJson = JSON.parse(link.customRuleJson);
link.storeList = link.storeList ? link.storeList : [];
this.form = link; this.form = link;
this.landingForm = page; this.landingForm = page;
this.getStoreList(); this.getStoreList();
...@@ -485,4 +486,7 @@ export default { ...@@ -485,4 +486,7 @@ export default {
justify-content: center; justify-content: center;
z-index: 100; z-index: 100;
} }
.el-pagination {
padding: 0 !important;
}
</style> </style>
...@@ -49,6 +49,17 @@ export default { ...@@ -49,6 +49,17 @@ export default {
width: this.width, width: this.width,
padding: [20, 40, 80, 80] padding: [20, 40, 80, 80]
}); });
this.charData = [
{ addNum: 1, bizDate: '2022-07-11', clickNum: 11, clickTimes: 12 },
{ addNum: 2, bizDate: '2022-07-12', clickNum: 22, clickTimes: 13 },
{ addNum: 3, bizDate: '2022-07-13', clickNum: 33, clickTimes: 14 },
{ addNum: 4, bizDate: '2022-07-14', clickNum: 44, clickTimes: 15 },
{ addNum: 5, bizDate: '2022-07-15', clickNum: 55, clickTimes: 15 },
{ addNum: 6, bizDate: '2022-07-16', clickNum: 66, clickTimes: 14 },
{ addNum: 7, bizDate: '2022-07-17', clickNum: 77, clickTimes: 14 },
{ addNum: 8, bizDate: '2022-07-18', clickNum: 88, clickTimes: 10 },
{ addNum: 9, bizDate: '2022-07-19', clickNum: 99, clickTimes: 120 }
];
this.chart.data(this.charData, { this.chart.data(this.charData, {
bizDate: { bizDate: {
// type: 'cat', //分类 // type: 'cat', //分类
......
<template>
<div class="right-wrap">
<div class="right-box" v-loading="loading">
<div style="font-size: 0">
<el-select placeholder="选择业务模块" v-model="search.businessType" style="width: 160px" clearable @change="onSearch">
<el-option v-for="el in moduleList" :key="el.key" :label="el.value" :value="el.key"></el-option>
</el-select>
<el-select placeholder="选择操作事项" v-model="search.optType" style="width: 160px;margin-left: 10px" clearable @change="onSearch">
<el-option v-for="el in businessList" :key="el.key" :label="el.value" :value="el.key"></el-option>
</el-select>
<el-select placeholder="操作人姓名/手机号" v-model="search.optUser" style="width: 170px;margin-left: 10px" popper-class="operate-clerk-list" clearable filterable :filter-method="searchClerk" v-select-loadmore="loadMoreClerk" @change="onSearch">
<el-option v-for="el in userList" :key="el.clerkId" :value="el.clerkId" :label="el.clerkName">
<p>{{ el.clerkName }}</p>
<p>{{ el.phoneNumber }}</p>
</el-option>
</el-select>
<el-input placeholder="操作内容" v-model="search.search" style="width: 260px;margin-left: 10px" clearable prefix-icon="el-icon-search" @change="onSearch"></el-input>
<el-date-picker v-model="search.dateRange" @change="onSearch" :picker-options="pickerOptions" clearable style="width: 256px;margin-left: 10px" type="daterange" value-format="yyyy-MM-dd" range-separator="~" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
</div>
<el-table :data="tableData" style="margin: 20px 0" v-loading="loading">
<el-table-column label="业务模块" prop="businessTypeName" :formatter="(row, col, val) => val || '--'"></el-table-column>
<el-table-column label="操作事项" prop="optTypeName" :formatter="(row, col, val) => val || '--'"></el-table-column>
<el-table-column label="操作页面" prop="optPage" :formatter="(row, col, val) => val || '--'"></el-table-column>
<el-table-column label="操作账号" show-overflow-tooltip>
<template slot-scope="{ row }">
<template v-if="row.userName || row.phoneNumber">
<p class="text-overflow">
{{ row.userName ? row.userName : '' }}
<span v-if="row.ywName" style="color: #909399">{{ row.ywName }}</span>
</p>
<p>{{ row.phoneNumber ? row.phoneNumber : '' }}</p>
</template>
<template v-else>--</template>
</template>
</el-table-column>
<el-table-column label="操作内容" prop="content" :formatter="(row, col, val) => val || '--'" show-overflow-tooltip></el-table-column>
<el-table-column label="操作时间" prop="createTime">
<template slot-scope="{ row }" v-if="row.createTime"> {{ row.createTime }} {{ row.createTime }} </template>
<template v-else>--</template>
</el-table-column>
</el-table>
<el-pagination v-if="pager.total > 0" background style="text-align: right" layout="total, sizes, prev, pager, next" @size-change="handleSizeChange" @current-change="handleCurrentChange" :total="pager.total" :current-page="pager.currentPage" :page-size="pager.pageSize" :page-sizes="[20, 40, 60, 80]"></el-pagination>
</div>
</div>
</template>
<script>
import { logList, businessType, optTypes } from '@/api/actCode';
export default {
name: 'operateLog',
data() {
return {
requestProject: 'gic-web',
loading: false,
search: {
businessType: '',
optType: '',
optUser: '',
search: '',
dateRange: []
},
clerkListPager: {
searchName: '',
pageNum: 1,
pageSize: 20,
totalPage: 1
},
moduleList: [],
businessList: [],
userList: [],
tableData: [],
pager: {
currentPage: 1,
pageSize: 20,
total: 0
},
enterpriseId: JSON.parse(sessionStorage.getItem('userInfos')).enterpriseId,
pickerOptions: {
disabledDate(date) {
const now = new Date();
let start = new Date();
start = new Date(start.setMonth(now.getMonth() - 3));
return date.getTime() < start.getTime() || date.getTime() > now.getTime();
}
}
};
},
mounted() {
this.initData();
this.getTableData();
},
methods: {
initData() {
const params = {};
params.requestProject = this.requestProject;
businessType(params).then(res => {
const { errorCode, result } = res.data || {};
if (errorCode == 0) {
this.moduleList = (result || []).filter(el => el.key != 1001);
}
});
optTypes({ params }).then(res => {
const { errorCode, result } = res.data || {};
if (errorCode == 0) {
this.businessList = (result || []).filter(el => el.key != 1001);
}
});
this.getClerkList();
},
loadMoreClerk() {
if (this.clerkListPager.pageNum >= this.clerkListPager.totalPage) return;
this.clerkListPager.pageNum += 1;
this.getClerkList();
},
searchClerk(searchName) {
this.clerkListPager.searchName = searchName;
this.clerkListPager.pageNum = 1;
this.clerkListPager.totalPage = 1;
document.querySelector('.operate-clerk-list .el-scrollbar__wrap').scrollTop = 0;
this.getClerkList();
},
getClerkList() {
const { pageNum, pageSize, searchName } = this.clerkListPager;
const params = { searchName, pageNum, pageSize };
params.requestProject = this.requestProject;
this.axios.get('/api-admin/list-user-by-search-name', { params }).then(res => {
const { errorCode, result } = res.data || {};
if (pageNum == 1) {
this.userList = [];
}
if (errorCode == 0) {
this.userList = this.userList.concat(result.result || []);
this.clerkListPager.totalPage = result.totalPage;
}
});
},
getTableData() {
this.loading = true;
const { pageSize, currentPage } = this.pager;
const { businessType, optType, optUser, search, dateRange } = this.search;
let para = {
businessType,
optType,
optUser,
search,
startDate: Array.isArray(dateRange) ? dateRange[0] : '',
endDate: Array.isArray(dateRange) ? dateRange[1] : '',
pageSize,
pageNum: currentPage,
enterpriseId: this.enterpriseId
};
para.requestProject = this.requestProject;
logList(para).then(res => {
let data = res.data;
if (data.errorCode == 0) {
this.tableData = data.result.result;
this.pager.total = data.result.totalCount;
}
this.loading = false;
});
},
onSearch() {
this.handleCurrentChange(1);
},
handleCurrentChange(val) {
this.pager.currentPage = val;
this.getTableData();
},
handleSizeChange(val) {
this.pager.pageSize = val;
this.handleCurrentChange(1);
}
}
};
</script>
<style scoped lang="less">
.right-wrap {
height: auto;
}
.text-overflow {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/deep/ .el-table::before {
display: none;
}
.operate-clerk-list .el-select-dropdown__item {
padding: 8px 12px;
height: 52px;
line-height: normal;
p:first-child {
line-height: 20px;
}
p:last-child {
line-height: 17px;
}
&:hover p {
color: #2f54eb;
}
}
</style>
...@@ -173,8 +173,6 @@ export default { ...@@ -173,8 +173,6 @@ export default {
this.getWelcomeTable(); this.getWelcomeTable();
} }
}); });
} else {
this.welcomesType = 2;
} }
}, },
immediate: true, immediate: true,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment