Commit 86fbe47f by 王昆

gsb

parent fa88f61a
......@@ -1355,7 +1355,27 @@ module.exports = {
},
],
},
{
"code": "sycpzx",
"isleft":true,
"label": "商业产品中心",
"icon":"el-icon-menu",
"isSubmenu": true,
"children": [
{
"code": "sycpzx_bpo", "isGroup": true,"icon":"fa fa-bars", "label": "BPO管理", "children": [
{
"code": "bpodepartmentstat",
"label": "发薪业绩",
"isMenu": true,
"bizCode": "bpodepartmentstat",
"bizConfig": null,
"path": ""
},
],
},
],
},
{
"code": "toolCenter",
"label": "H5",
......@@ -1635,7 +1655,7 @@ module.exports = {
"enttemplatemy": {"title": "模板管理", "config": null, "path": "/enttemplatemy", "comname": "enttemplatemy"},
"entcontractmy": {"title": "签约管理", "config": null, "path": "/entcontractmy", "comname": "entcontractmy"},
// "dkcompanyadmin": {"title": "企业管理", "config": null, "path": "/dkcompanyadmin", "comname": "dkcompanyadmin"},
"bpodepartmentstat": {"title": "发薪业绩", "config": null, "path": "/bpodepartmentstat", "comname": "bpodepartmentstat"},
},
"pauths": [
"add", "edit", "delete", "export", "show"
......
module.exports={
"bizName":"bpodepartmentstat",
"list":{
columnMetaData:[
]
},
"form":[
],
"search":[
],
"auth":{
"add":[
],
"edit":[
],
"delete":[
// {"icon":"el-icon-remove","title":"删除","type":"default","key":"delete","isInRow":true},
],
"common":[
],
}
}
<gsb-pcpage>
<div style="padding:20px;">
<div style="height: auto;min-width: 1000px; max-width: 1500px;">
<el-card style="background-color: #FFFFFF;padding:10px 10px 30px 10px;margin-top: 20px;">
<div style="width:100%;line-height: 40px;">
<div style="float:left;width: 300px;">
<span style="color:2F2F2F;font-size: 14px;" >模板名称: </span>
<el-input v-model="search.name" placeholder="请输入模板名称" maxlength="100" clearable style="max-width:200px;height: 36px;" ></el-input>
</div>
<div style="float:left;">
<span style="color:2F2F2F;font-size: 14px;" >所属公司: </span>
<el-select
v-model="search.ecompanyName"
filterable
remote
clearable
reserve-keyword
style="width:340px;"
placeholder="请搜索公司名称"
@change="nameChange"
:remote-method="getCompanyNames"
:loading="nameLoading">
<el-option
v-for="item in nameList"
:key="item.id"
:label="item.name"
:value="item.name">
<span style="float: left;width:150px;">{{ item.name }}</span>
</el-option>
</el-select>
</div>
<div style="float:left;margin-top:5px;">
<el-button @click="resetSearch()" style="float:right;width:68px;height:36px;background-color: #54C4A7;color: #FFFFFF;font-size: 14px;padding-top:10px;" >重置</el-button>
<el-button @click="opSearch" style="float:right;width:68px;height:36px;background-color: #54C4A7;color: #FFFFFF;font-size: 14px;padding-top:10px;margin-right: 10px;" >搜索</el-button>
</div>
</div>
</el-card>
<el-card style="background-color: #FFFFFF;padding:10px 10px 30px 10px;margin-top: 20px;">
<div>
<div style="line-height: 36px;padding-bottom: 20px;">
<span style="float:left;color:#2F2F2F;font-size: 14px;">共{{search.total}}条记录</span>
<el-button @click="exportList()" style="float:right;width:110px;height:36px;color: #FFFFFF;font-weight: 400;border-radius: 4px;font-size: 14px;background-color: #59C1A6;padding-top:11px">导出二维码</el-button>
<el-button @click="openEdit()" style="float:right;width:100px;height:36px;color: #FFFFFF;font-weight: 400;border-radius: 4px;font-size: 14px;background-color: #59C1A6;padding-top:11px">新增模板</el-button>
</div>
<div>
<el-table
stripe
fix="true"
:data="search.list"
tooltip-effect="light"
style="min-width: 1000px;max-width: 1500px;margin-top: 23px;min-height: 500px;"
empty-text="暂无需求"
header-cell-style="background-color: #F5F5F5;color: #2F2F2F;font-size: 14px;font-weight:400;"
row-style="height:50px;" >
<el-table-column prop="id" label="序号" :formatter="onColFormater" width="80" align="center" ></el-table-column>
<el-table-column prop="name" label="模板名称" :formatter="onColFormater" align="center" ></el-table-column>
<el-table-column prop="ecompany.name" label="公司名称" :formatter="onColFormater" align="center" ></el-table-column>
<el-table-column prop="ecompanyMain.alias" label="签约主体" :formatter="onColFormater" align="center" ></el-table-column>
<el-table-column label="二维码" >
<template slot-scope="scope" >
<a v-if="scope.row.qrcodeurl" :href="scope.row.qrcodeurl" target="_blank" style="text-decoration: none;color:#59C1A6;font-size: 14px;">二维码</a>
</template>
</el-table-column>
<el-table-column label="模板文件" >
<template slot-scope="scope" >
<a v-if="scope.row.filepath" :href="scope.row.filepath" target="_blank" style="text-decoration: none;color:#59C1A6;font-size: 14px;">查看</a>
</template>
</el-table-column>
<el-table-column prop="filekey" label="模板key" :formatter="onColFormater" align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="created_at" label="创建日期" :formatter="onColFormater" align="center" ></el-table-column>
<el-table-column prop="updated_at" label="修改日期" :formatter="onColFormater" align="center" ></el-table-column>
<el-table-column label="操作" align="center" >
<template slot-scope="scope">
<a href="javascript:;" @click="openEdit(scope.row.id)" style="text-decoration: none;color:#59C1A6;font-size: 14px;">修改</a>
<a href="javascript:;" @click="relevance(scope.row.id)" style="text-decoration: none;color:#59C1A6;font-size: 14px;">关联</a>
</template>
</el-table-column>
</el-table>
<div style="width:100%;text-align: center;margin-top: 20px">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="search.currentPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="search.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="search.total">
</el-pagination>
</div>
</div>
</div>
</el-card>
<el-dialog width="862px" :visible.sync="showEdit">
<div slot="title">
<span style="margin-left:9px;margin-top:-3px;;width:72px; height:25px; font-size:18px; font-family:PingFangSC-Regular; font-weight:400; color:rgba(51,51,51,1); line-height:25px;">{{editTitle}}模板</span>
<div style="width: 862px; height: 1px;background-color: #E3E3E3;margin: 17px 20px 0px -20px"></div>
</div>
<el-form :model="etemplate" :rules="rules" ref="etemplate" label-width="100px" label="right" style="padding:0px 100px;" >
<div style="0px 10px; line-height: 15px;padding-bottom:40px;">
<div style="width:2px;height:15px;float: left;background-color: #54C4A7">
</div>
<span style="font-size:15px;color: #333333;float: left;font-weight:bold;margin-left: 7px;">模板信息</span>
</div>
<el-form-item label="模板名称:" prop="name" >
<el-input v-model="etemplate.name" placeholder="请输入模板名称:例如韵达、沐冉" maxlength="50" style="width:468px;" clearable ></el-input>
</el-form-item>
<el-form-item label="所属公司:" prop="ecompanyName">
<el-select
v-model="etemplate.ecompanyName"
filterable
remote
clearable
reserve-keyword
style="width:468px;"
placeholder="请搜索公司名称"
@change="nameChange2"
:remote-method="getCompanyNames2"
:loading="nameLoading2">
<el-option
v-for="item in nameList2"
:key="item.id"
:label="item.name"
:value="item.name">
<span style="float: left;width:150px;">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="签约主体:" prop="ecompanyMainId" >
<el-select v-model="etemplate.ecompanyMainId" style="width:468px;" filterable placeholder="请选择">
<el-option
v-for="item in mainList"
:key="item.id"
:label="item.alias"
:value="item.id">
</el-option>
</el-select>
<!-- <el-input v-model="etemplate.nameA" placeholder="请输入签约主体" maxlength="50" style="width:468px;" clearable ></el-input> -->
</el-form-item>
<el-form-item label="签约协议:" prop="filepath">
<gsb-upload3 ref="upload3" v-model="uploadResult" @uploadsuccess="uploadsuccess" :fileList="fileList" filetype="pdf"></gsb-upload3>
</el-form-item>
<el-form-item label="备注信息:" prop="remark" >
<el-input type="textarea" v-model="etemplate.remark" placeholder="请输入备注信息" maxlength="50" style="width:468px;" clearable ></el-input>
</el-form-item>
<el-form-item label="模板参数:" prop="placeholderkey" >
<el-input v-model="etemplate.placeholderkey" placeholder="请输入模板参数" maxlength="255" style="width:468px;" showlist="true" :file-list="fileList" clearable ></el-input>
</el-form-item>
</el-form>
<div style="margin-left: 200px;">
<el-button :loading="saveLoading" @click="saveTemplate" style="width:120px;height:36px; background:#54C4A7; border-radius:4px;color: #FFFFFF;font-size: 16px;padding-top: 10px;">保存</el-button>
</div>
</el-dialog>
<el-dialog width="862px" :visible.sync="showrelevances" @close="clearInput">
<div slot="title">
<span style="margin-left:9px;margin-top:-3px;;width:72px; height:25px; font-size:18px; font-family:PingFangSC-Regular; font-weight:400; color:rgba(51,51,51,1); line-height:25px;">关联信息</span>
<div style="width: 862px; height: 1px;background-color: #E3E3E3;margin: 17px 20px 0px -20px"></div>
</div>
<el-form :model="etemplatebusi" :rules="rules" ref="etemplatebusi" label-width="85px" label="right" style="padding:0px 100px;" >
<el-form-item label="公司:" prop="company_id">
<el-select
v-model="etemplatebusi.company_id"
filterable
remote
clearable
reserve-keyword
style="width:420px;float: left;"
placeholder="请搜索公司名称"
@change="nameChange3"
:remote-method="getCompanyNames3"
:loading="nameLoading2">
<el-option
v-for="item in nameList2"
:key="item.id"
:label="item.company_name"
:value="item.id">
<span style="float: left;width:150px;">{{ item.company_name }}--{{ item.id }}</span>
</el-option>
</el-select>
<el-button :loading="saveLoading" @click="saveTemplatebusi" style="width:80px;height:41px; background:#54C4A7; border-radius:4px;color: #FFFFFF;font-size: 16px;padding-top: 10px;">保存</el-button>
</el-form-item>
</el-form>
<el-table :data="busiData">
<el-table-column prop="id" label="序号" :formatter="onColFormater" width="80" align="center" ></el-table-column>
<el-table-column prop="busi_id" label="公司ID" :formatter="onColFormater" align="center" ></el-table-column>
<el-table-column prop="busi_company_name" label="公司名称" :formatter="onColFormater" align="center" ></el-table-column>
<el-table-column label="操作" align="center" >
<template slot-scope="scope">
<a href="javascript:;" @click="deleteTetId(scope.row.id)" style="text-decoration: none;color:;font-size: 14px;">删除</a>
</template>
</el-table-column>
</el-table>
</el-dialog>
</div>
</gsb-pcpage>
\ No newline at end of file
{
template: '${tmpl}',
data: function () {
var validMethod = (rule, value, callback) => {
return this.validfileds(rule, value, callback);
};
return {
etemplate: {isEnabled:true},
etemplatebusi: {isEnabled:true},
editTitle: "新增",
showEdit: false,
showrelevances: false,
saveLoading: false,
busiData:[],
nameLoading: false,
nameList: [],
nameMap: [],
nameLoading2: false,
nameList2: [],
nameMap2:[],
uploadResult: null,
fileList:[],
mainList:[],
search: {
list: [],
currentPage: 1,
pageSize: 20,
total : 0,
name:'',
},
rules: {
ecompanyName : [
{ required: true, message: '请输入公司名称', trigger: 'blur' },
{ validator: validMethod, trigger: 'blur' }
],
company_id : [
{ required: true, message: '请输入公司名称', trigger: 'blur' },
{ validator: validMethod, trigger: 'blur' }
],
ecompanyMainId: [
{ required: true, message: '请选择签约主体', trigger: 'blur' },
],
filepath: [
{ required: true, message: '请上传签约协议', trigger: 'blur' },
],
a : [],
},
busi_id: 0,
}
},
mounted: function () {
this.resetSearch(true);
this.getMainList();
},
created: function () {},
methods: {
getEmptySearch() {
return {
list: [],
currentPage: 1,
pageSize: 20,
total : 0,
name:'',
}
},
resetSearch() {
this.search = this.getEmptySearch();
this.getList();
},
tableHeaderColor({ row, column, rowIndex, columnIndex }) {
if (rowIndex === 0) {
return 'background-color: #F5F5F5;color: #2F2F2F;font-size: 14px;font-weight:400;'
}
},
opSearch() {
this.search.currentPage = 1;
this.search.total = 0;
this.getList();
},
getMainList() {
var self = this;
this.$root.postReq("/web/ecompanymainCtl/all", {
}).then(function (d) {
if (d.status == 0) {
self.mainList = d.data || [];
} else {
}
});
},
getList() {
var self = this;
var params = this.getParams();
this.$root.postReq("/web/etemplateCtl/signList", {
search: params
}).then(function (d) {
if (d.status == 0) {
self.search.list = d.data.rows || [];
self.search.total = d.data.count || 0;
} else {
}
});
},
exportList() {
window.open("/web/etemplateCtl/signExport" + this.getExportParams());
},
getParams() {
var params = {};
for(var f in this.search) {
if(f == "list") {
continue;
}
params[f] = this.search[f];
}
return params;
},
getExportParams() {
var params = {};
for(var f in this.search) {
if(f == "list") {
continue;
}
params[f] = this.search[f];
}
return "?search=" + encodeURIComponent(JSON.stringify(params));
},
onColFormater(row, column, cellValue, index) {
return cellValue || "---";
},
getEtemplate(id) {
var self = this;
self.$root.postReq("/web/etemplateCtl/info", {
id: id,
}).then(function (d) {
if (d.status == 0) {
if(d.data) {
d.data.isEnabled = d.data.isEnabled ? true : false;
}
self.etemplate = d.data;
if(self.etemplate.filepath) {
self.fileList = [{
name: "模板文件",
url: self.etemplate.filepath,
}];
} else {
self.uploadResult = null;
}
} else {
self.$message.warning(d.msg || `您的网络不稳定, 请稍后重试`);
}
});
},
clearInput(){
this.$refs.etemplatebusi.resetFields();
},
addCompany() {
this.companysForm.bpoCompanyList.push({
companyName: '',
key: Date.now(),
rules: {required: true, message: '公司名称不能为空', trigger: 'blur'},
});
},
getEtemplate_relevance(id) {
var self = this;
this.busi_id = id;
this.$root.postReq("/web/etemplatebusiCtl/getlist", {
id: id,
type:1,
}).then(function (d) {
self.template_id = id;
self.busiData = d || [];
});
},
toDetail(id) {
},
openEdit(id) {
this.clearUpload();
if(id) {
this.editTitle = "修改";
this.getEtemplate(id);
} else {
this.editTitle = "新增";
this.etemplate = {isEnabled:true};
}
this.showEdit = true;
},
relevance(id){
this.getEtemplate_relevance(id);
this.showrelevances = true;
},
handleSizeChange(val) {
this.search.pageSize = val;
this.resetSearch();
},
handleCurrentChange(val) {
this.search.currentPage = val;
this.getList();
},
validfileds(rule, value, callback) {
var self = this;
if(rule.field == "ecompanyName") {
if(!self.etemplate.ecompany_id) {
return callback(new Error("请重新选择公司名称"));
}
}
return callback();
},
nameChange(val) {
var self = this;
var item = self.nameMap[val];
self.search.ecompany_id = (item || {}).id || "";
},
nameChange2(val) {
var self = this;
var item = self.nameMap2[val];
self.etemplate.ecompany_id = (item || {}).id || "";
},
nameChange3(val) {
var self = this;
var item = self.nameMap2[val];
self.etemplate.ecompany_id = (item || {}).id || "";
},
getCompanyNames(query) {
var self = this;
self.nameLoading = true;
self.$root.postReq("/web/ecompanyCtl/suggest", {
name: query
}).then(function (d) {
self.nameLoading = false;
self.nameList = d.data || [];
self.nameMap = [];
for(var item of self.nameList) {
self.nameMap[item.name] = item;
}
});
setTimeout(() => {
self.nameLoading = false;
}, 15000);
},
getCompanyNames2(query) {
var self = this;
self.nameLoading2 = true;
self.$root.postReq("/web/ecompanyCtl/suggest", {
name: query
}).then(function (d) {
self.nameLoading2 = false;
self.nameList2 = d.data || [];
self.nameMap2 = [];
for(var item of self.nameList2) {
self.nameMap2[item.name] = item;
}
});
setTimeout(() => {
self.nameLoading2 = false;
}, 15000);
},
getCompanyNames3(query) {
var self = this;
self.nameLoading2 = true;
self.$root.postReq("/web/etemplatebusiCtl/suggest", {
name: query
}).then(function (d) {
self.nameLoading2 = false;
self.nameList2 = d.data || [];
self.nameMap2 = [];
for(var item of self.nameList2) {
self.nameMap2[item.name] = item;
}
});
setTimeout(() => {
self.nameLoading2 = false;
}, 15000);
},
clearUpload() {
var self = this;
self.uploadResult = null;
self.etemplate.filepath = "";
if(self.$refs.upload3 && self.$refs.upload3.$refs && self.$refs.upload3.$refs.upload) {
self.$refs.upload3.$refs.upload.clearFiles();
}
},
uploadsuccess(v) {
if(!v || !v[0] || !v[0].url) {
this.$message.warning("上传失败");
return;
}
this.etemplate.filepath = v[0].url;
},
saveTemplate() {
var self = this;
self.$refs.etemplate.validate((valid) => {
if (valid) {
self.saveLoading = true;
setTimeout(() => {
self.saveLoading = false;
}, 15000);
self.$root.postReq("/web/etemplateCtl/mysave", self.etemplate).then(function (d) {
if (d.status == 0) {
self.$message.success(`保存成功`);
self.showEdit = false;
self.getList();
} else {
self.$alert(d.msg || '保存失败', '提示', {
confirmButtonText: '确定',
callback: action => {}
});
}
self.saveLoading = false;
});
} else {
self.saveLoading = false;
return false;
}
});
},
saveTemplatebusi() {
var self = this;
self.$refs.etemplatebusi.validate((valid) => {
if (valid) {
self.saveLoading = true;
setTimeout(() => {
self.saveLoading = false;
}, 15000);
self.etemplatebusi.template_id = self.busi_id;
self.etemplatebusi.template_type = 1;
self.$root.postReq("/web/etemplatebusiCtl/mysave", self.etemplatebusi).then(function (d) {
if (d.status == 0) {
self.$message.success(`保存成功`);
self.showEdit = false;
self.getEtemplate_relevance(self.busi_id);
} else {
self.$alert(d.msg || '保存失败', '提示', {
confirmButtonText: '确定',
callback: action => {}
});
}
self.saveLoading = false;
});
} else {
self.saveLoading = false;
return false;
}
});
},
deleteTetId(id){
var self = this;
self.$root.postReq("/web/etemplatebusiCtl/deleteTetId", {
id: id,
}).then(function (d) {
if (d.status == 0) {
self.$message.success(`已删除`);
self.showrelevances = true;
self.getEtemplate_relevance(self.busi_id);
} else {
self.$message.warning(d.msg || `您的网络不稳定, 请稍后重试`);
}
});
}
},
vname: "gsb-ecompanyadmin"
}
\ No newline at end of file
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