lixuan #3

Merged
lixuan merged 2 commits from lixuan into master 2023-02-28 11:22:52 +08:00
18 changed files with 486 additions and 1022 deletions
Showing only changes of commit f1155ab567 - Show all commits

View File

@@ -6,6 +6,10 @@ const getRefineryCompanyList = (params) => {
params
);
};
// 远程总公司
const getCompanyNames = (query) => {
return request.get(`oil-user/oilCompanyInfo/getCompanyNames/${query}`);
};
// 远程搜索用户
const liekQuery = (query) => {
return request.get(`oil-user/sysCustomerInfo/liekQuery/${query}`);
@@ -14,10 +18,6 @@ const liekQuery = (query) => {
const getInfo = (id) => {
return request.get(`/oil-user/oilCompanyInfo/get/${id}`);
};
//公司账户信息
const getByCompanyIdAccount = (query) => {
return request.get(`/oil-finance/oilCompanyAccount/getByCompanyId/${query}`);
};
//公司财务信息
const getByCompanyIdFinance = (query) => {
return request.get(`/oil-user/oilCompanyFinance/getByCompanyId/${query}`);
@@ -26,12 +26,21 @@ const getByCompanyIdFinance = (query) => {
const getByCompanyIdAuth = (id) => {
return request.get(`/oil-user/oilCompanyAuth/getByCompanyId/${id}`);
};
//公司账户信息
const getByCompanyIdAccount = (query) => {
return request.get(`/oil-finance/oilCompanyAccount/getByCompanyId/${query}`);
};
// 银行信息
const getByCompanyIdBankCard = (id) => {
return request.get(`/oil-finance/oilCompanyBankCard/getByCompanyId/${id}`);
};
export default {
getRefineryCompanyList,
getCompanyNames,
liekQuery,
getInfo,
getByCompanyIdAccount,
getByCompanyIdFinance,
getByCompanyIdAuth,
getByCompanyIdFinance,
getByCompanyIdBankCard,
};

View File

@@ -27,6 +27,17 @@ const saveAttestation = (params) => {
const updateAttestation = (params) => {
return request.postPut("oil-user/oilCompanyAuth/update", params);
};
//银行信息保存/修改
const saveBank = (params) => {
return request.postJson(
"/oil-finance/oilCompanyBankCard/saveBatchCompanyRelationBank",
params
);
};
// //银行信息修改
// const updateBank = (params) => {
// return request.postPut("oil-user/oilCompanyAuth/update", params);
// };
//财务信息保存
const saveFinance = (params) => {
return request.postJson("/oil-user/oilCompanyFinance/save", params);
@@ -39,6 +50,10 @@ const updateFinance = (params) => {
const liekQuery = (query) => {
return request.get(`/oil-user/sysCustomerInfo/liekQuery/${query}`);
};
// 开户行名称 远程搜索
const findAllByName = (query) => {
return request.get(`/oil-site/sysSheet/findAllByName?name=${query}`);
};
// 级联
const getTree = () => {
return request.get("/oil-dict/areaCode/getTree");
@@ -48,10 +63,13 @@ export default {
getCompanyAccountRecord,
update,
liekQuery,
findAllByName,
save,
getTree,
saveAttestation,
updateAttestation,
saveBank,
// updateBank,
saveFinance,
updateFinance,
// getInfo,

View File

@@ -3,10 +3,14 @@ import request from "utils/axios.js";
const login = (params) => {
return request.postJson("/oil-identity/oilRefinery/loginOMSByPwd", params);
};
// 登出
const loginOut = () => {
return request.get("/oil-identity/authorization/logout");
};
// info
const info = () => {
return request.get("/oil-identity/unionAuth/info");
};
//路由
const getCustomerRouters = () => {
@@ -14,4 +18,4 @@ const getCustomerRouters = () => {
"/oil-identity/oilRefinery/getCustomerRouters/REFINERY_OMS_WEB"
);
};
export default { login, loginOut, getCustomerRouters };
export default { login, loginOut, info, getCustomerRouters };

View File

@@ -11,13 +11,31 @@
:disabled="isDisabled"
@change="change"
>
<el-option
v-for="(item, index) in list"
:key="item.id + index"
:label="item[config.labelKey]"
:value="item[config.valueKey]"
>
</el-option>
<template v-if="labelIsMore">
<el-option
v-for="(item, index) in list"
:key="item.id + index"
:label="
item[config.labelKey[0]] +
'(' +
item[config.labelKey[1]] +
'-' +
item[config.labelKey[2]] +
')'
"
:value="item[config.valueKey]"
>
</el-option>
</template>
<template>
<el-option
v-for="(item, index) in list"
:key="item.id + index"
:label="item[config.labelKey]"
:value="item[config.valueKey]"
>
</el-option>
</template>
</el-select>
</template>
@@ -37,6 +55,8 @@ export default {
data() {
return {
text: "",
labelIsMore: false,
// labelKeyArr:[],
list: [],
isDisabled: false,
};
@@ -45,7 +65,7 @@ export default {
"config.echoId": {
handler(nval, oval) {
this.list = [];
this.isDisabled = !!this.config.isDisabled;
// this.isDisabled = !!this.config.isDisabled;
if (nval) {
let resultName = this.config.echoName.replace(/\s*/g, "");
if (!resultName) return;
@@ -55,6 +75,26 @@ export default {
deep: true,
immediate: true,
},
"config.isDisabled": {
handler(nval, oval) {
let type = this.$utils.typeJudgment(nval);
if (["Boolean", "String"].includes(type)) {
this.isDisabled = !!this.config.isDisabled;
}
},
deep: true,
immediate: true,
},
},
created() {
let { labelKey } = this.config;
let type = this.$utils.typeJudgment(labelKey);
// console.log(type);
if (type === "Array") {
// let
this.labelIsMore = true;
// console.log(this.labelIsMore);
}
},
methods: {
// 远程搜索
@@ -68,17 +108,12 @@ export default {
// return;
// }
let params = {};
if (type.includes("Object")) {
if (["Object"].includes(type)) {
params[this.config.autocompleteKey.key] = query;
params["enableMark"] = this.config.autocompleteKey.enableMark;
}
if (
type.includes("String") ||
type.includes("Undefined") ||
type.includes("Null")
) {
if (["String", "Undefined", "Null"].includes(type)) {
// 接口为get类型时需将autocompleteKey值设为空
console.log();
this.config.autocompleteKey
? (params[this.config.autocompleteKey] = query)
: (params = query);
@@ -94,7 +129,7 @@ export default {
}
},
change(val) {
this.$emit("change", val);
this.$emit("change", val, this.list);
},
},
};

View File

@@ -28,11 +28,9 @@ router.beforeEach(async (to, from, next) => {
try {
// let infoRes = await serve.getUserInfo();
// infoRes.data.authList = [1];
let infoRes = {
data: {
authList: [1],
},
};
let infoRes = await serve.info();
// infoRes.data.authList = infoRes.authList;
store.dispatch("user/info", infoRes.data);
let routerRes = await serve.getCustomerRouters();

View File

@@ -1,4 +1,5 @@
import Vue from "vue";
import store from "@/store";
const handle = (e, vNode) => {
let val = e.target.value;
@@ -29,3 +30,24 @@ Vue.directive("checkNum", {
// }
},
});
Vue.directive("permission", {
inserted(el, binding, vnode) {
const { value } = binding;
const auth = store.getters && store.getters.auth;
if (value && value instanceof Array && value.length > 0) {
const permissionRoles = value;
const hasPermission = auth.some((role) => {
return permissionRoles.includes(role);
});
if (!hasPermission) {
el.parentNode && el.parentNode.removeChild(el);
}
} else {
throw new Error(`need auths! Like v-permission="['admin','editor']"`);
}
},
});

View File

@@ -58,5 +58,6 @@ export function cellStyle() {
// 类型判断
export function typeJudgment(object) {
let res = {}.__proto__.toString.call(object);
return res || "";
let type = /(?<= ).+(?=\])/.exec(res);
return type.length ? type[0] : "";
}

View File

@@ -1,457 +0,0 @@
<template>
<div style="padding: 30px 75px 50px">
<div style="width: 100%; position: absolute; top: 15px; left: 0">
<div style="display: flex; align-items: center; padding-left: 20px">
<svg-icon
icon-class="iconsiji2"
style="font-size: 30px; margin-right: 10px"
/>
<span>添加认证信息</span>
</div>
<el-divider style="width: 100%"></el-divider>
</div>
<el-row>
<el-form
ref="form"
:rules="rules"
:model="oilCompanyAuth"
label-width="100px"
:size="$store.getters.size"
>
<el-row :gutter="gridNum.row.gutter">
<el-col :span="12">
<el-form-item label="企业名称" prop="companyName">
<el-input
v-model="oilCompanyAuth.companyName"
clearable
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="注册省市区" prop="addrCode">
<el-cascader
v-model="addrCode"
placeholder="注册省市区"
:size="$store.getters.size"
style="width: 100%"
:options="areaTree"
:props="{
value: 'id',
label: 'areaName',
children: 'childList',
}"
filterable
clearable
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="详细地址" prop="address">
<el-input
v-model="oilCompanyAuth.address"
clearable
placeholder="不包含省市区"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="法人代表" prop="companyLegalPerson">
<el-input
v-model="oilCompanyAuth.companyLegalPerson"
clearable
placeholder="法人姓名"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="注册资本" prop="registeredCapital">
<el-input
v-model="oilCompanyAuth.registeredCapital"
clearable
placeholder="小写数字"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="经营资质" prop="businessQualia">
<el-input
v-model="oilCompanyAuth.businessQualia"
clearable
placeholder="企业经营资质"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系方式" prop="contactPhone">
<el-input
v-model="oilCompanyAuth.contactPhone"
clearable
placeholder="手机号"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="企业网址" prop="website">
<el-input
v-model="oilCompanyAuth.website"
clearable
placeholder="企业门户"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-col :span="12">
<el-form-item label="营业执照号码" prop="businessLienceId">
<el-input
v-model="oilCompanyAuth.businessLienceId"
clearable
placeholder="营业执照号码"
/> </el-form-item
></el-col>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="打款名称" prop="bankCardName">
<el-input v-model="oilCompanyAuth.bankCardName" placeholder="请输入打款名称" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="银行卡号" prop="bankCardNo">
<el-input v-model="oilCompanyAuth.bankCardNo" placeholder="请输入银行卡号" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开户行名称" prop="bankName">
<el-select
@clear="oilCompanyAuth.interBankCode=''"
:loading="loading"
filterable
@change="handleSelect"
:remote-method="userRemoteMethod"
remote
style="width:100%"
v-model="oilCompanyAuth.bankName"
placeholder="请输入开户行名称或联行号"
clearable >
<el-option
v-for="item in userList"
:key="item.id"
:label="item.bankName"
:value="item.bankName"
/>
</el-select>
<el-button type="text" icon="el-icon-document-copy" size="mini" @click="copyBankName(oilCompanyAuth.bankName,$event)" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联行号" prop="interBankCode">
<el-input :disabled="true" v-model="oilCompanyAuth.interBankCode" placeholder="根据请输入开户行名称自动匹配" clearable />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="经营范围" prop="businessScope">
<el-input v-model="oilCompanyAuth.businessScope" type="textarea" clearable placeholder="经营范围" />
</el-form-item>
</el-col> -->
<el-col :span="24">
<el-form-item label="营业执照照片" prop="businessLienceImg">
<!-- <el-upload
action="/lsm/ocr/business"
list-type="picture-card"
:on-preview="businessLienceImgPreview"
:on-success="businessLienceImgSuccess"
:before-upload="imgCompress"
:on-remove="businessLienceImgRemove"
:limit="1"
>
<i class="el-icon-plus" />
</el-upload> -->
</el-form-item>
<el-dialog
v-el-drag-dialog
:visible.sync="imgeDialogVisible"
title="营业执照"
:modal="false"
>
<img
width="100%"
:src="oilCompanyAuth.ibusinessLienceImgImageShow"
alt=""
/>
</el-dialog>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="是否审核通过" prop="auth">
<el-switch
v-model="oilCompanyAuth.auth"
active-color="#13ce66"
inactive-color="#ff4949"
/>
</el-form-item>
</el-col> -->
</el-row>
</el-form>
</el-row>
<div
:span="24"
style="
background: #fff;
margin-top: 20px;
text-align: right;
width: 100%;
position: absolute;
bottom: 15px;
left: 0;
"
>
<el-divider style="width: 100%"></el-divider>
<el-button @click="close">取消</el-button>
<el-button type="primary" @click="submit" style="margin-right: 10px"
>提交</el-button
>
</div>
</div>
</template>
<script>
import oilCompanyAuthApi from "@/api/customerManagement/oilCompanyAuth";
import AreaCodeApi from "@/api/customerManagement/areaCode";
// import { imgCompress } from "@/utils";
import axios from "axios";
export default {
props: {
oilCompanyInfo: {
type: Object,
default() {},
},
},
data() {
return {
gridNum: {
row: {
gutter: 2,
},
cols: {
xs: 24,
sm: 24,
md: 12,
lg: 12,
xl: 6,
},
},
loading: false,
// imgCompress,
userList: [],
uploadUrl: process.env.VUE_APP_UPLOAD_PRIVATE_URL, // 加密图片url
imgeDialogVisible: false,
areaTree: [], // 省市区树形结构
addrCode: [], // 省市区code
oilCompanyAuth: {
companyId: undefined,
companyName: undefined,
provinceCode: undefined,
cityCode: undefined,
areaCode: undefined,
businessLienceImg: undefined,
businessLienceImgImageShow: undefined,
address: undefined,
companyLegalPerson: undefined,
registeredCapital: undefined,
businessScope: undefined,
businessQualia: undefined,
contactPhone: undefined,
website: undefined,
businessLienceId: undefined,
auth: false,
auditMark: undefined,
createSource: "WEBM",
},
rules: {
companyName: [
{ required: true, message: "请输入企业名称", trigger: "blur" },
{
min: 3,
max: 50,
message: "长度在 3 到 50 个字符",
trigger: "blur",
},
],
bankCardName: [
{ required: true, message: "请输入打款名称", trigger: "blur" },
],
bankCardNo: [
{ required: true, message: "请输入银行卡号", trigger: "blur" },
],
bankName: [
{ required: true, message: "请输入开户行名称", trigger: "change" },
],
interBankCode: [
{ required: true, message: "请输入联行号", trigger: "blur" },
],
address: [
{
min: 1,
max: 300,
message: "长度在 1 到 300 个字符",
trigger: "blur",
},
],
companyLegalPerson: [
{
min: 1,
max: 50,
message: "长度在 1 到 50 个字符",
trigger: "blur",
},
],
registeredCapital: [{ pattern: /^\d*$/, message: "只能输入数值" }],
businessQualia: [
{
min: 1,
max: 255,
message: "长度在 1 到 255 个字符",
trigger: "blur",
},
],
contactPhone: [
{
pattern: /^1[3456789]\d{9}$/,
message: "目前只支持中国大陆的手机号码",
},
],
website: [
{
pattern:
/^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\*\+,;=.]+$/,
message: "请输入正确网址",
},
],
businessLienceId: [
{
min: 1,
max: 50,
message: "长度在 1 到 50 个字符",
trigger: "blur",
},
],
businessScope: [
{
min: 1,
max: 255,
message: "长度在 1 到 255 个字符",
trigger: "blur",
},
],
},
};
},
created() {
this.oilCompanyAuth.companyId = this.oilCompanyInfo.id;
this.oilCompanyAuth.companyName = this.oilCompanyInfo.name;
AreaCodeApi.getTree().then((res) => {
this.areaTree = res.data;
});
},
methods: {
handleSelect(e) {
console.log(e);
if (e) {
console.log(
this.userList.filter((item, index) => item.bankName == e)[0].cnaps
);
this.oilCompanyAuth.interBankCode = this.userList.filter(
(item, index) => item.bankName == e
)[0].cnaps;
}
},
userRemoteMethod(queryString) {
this.loading = true;
if (this.timer) {
clearTimeout(this.timer);
}
this.timer = setTimeout(() => {
AreaCodeApi.findAllByName({ name: queryString }).then((res) => {
this.loading = false;
this.userList = res.data;
});
}, 300);
},
businessLienceImgPreview(file) {
// 查询大图
this.oilCompanyAuth.ibusinessLienceImgImageShow = file.url;
this.imgeDialogVisible = true;
},
businessLienceImgSuccess(response, file) {
// 营业执照上传成功
if (response.code === "0") {
this.oilCompanyAuth.businessLienceId =
response.data.words_result.creditCode.words;
this.oilCompanyAuth.companyName =
response.data.words_result.unitName.words;
this.oilCompanyAuth.companyLegalPerson =
response.data.words_result.legal.words;
this.oilCompanyAuth.businessScope =
response.data.words_result.scope.words;
}
// imgCompress(file.raw).then((res) => {
// const form = new FormData();
// res.fileName = file.fileName;
// form.append("file", res);
// form.append("code", "A003");
// // 上传到oss
// axios
// .post(this.uploadUrl, form, {
// headers: { "Content-type": "application/x-www-form-urlencoded" },
// })
// .then((res) => {
// if (res.data.code === 20000) {
// this.oilCompanyAuth.businessLienceImg = res.data.data.path;
// }
// });
// });
},
businessLienceImgRemove() {
// 营业执照删除
this.oilCompanyAuth.ibusinessLienceImgImageShow = undefined;
this.oilCompanyAuth.businessLienceImg = undefined;
},
submit() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.save(this.oilCompanyAuth);
}
});
},
save() {
const data = { ...this.oilCompanyAuth };
if (data.auth) {
data.auditMark = 1;
} else {
data.auditMark = 2;
}
if (this.addrCode.length > 1) {
data.provinceCode = this.addrCode[0];
data.cityCode = this.addrCode[1];
data.areaCode = this.addrCode[2];
}
// 保存
oilCompanyAuthApi.save(data).then((res) => {
this.$message.success(res.msg);
this.$emit("closeDialog");
this.$emit("getByPage");
});
},
close() {
this.$emit("closeDialog");
},
},
};
</script>
<style scoped>
.el-divider--horizontal {
margin: 10px 0;
}
</style>

View File

@@ -1,197 +0,0 @@
<template>
<div>
<el-row>
<el-form ref="form" :rules="rules" :model="oilCompanyInfo" label-width="100px" :size="$store.getters.size">
<el-row :gutter="gridNum.row.gutter">
<el-col :span="12">
<el-form-item label="企业名称" prop="name">
<el-input v-model="oilCompanyInfo.name" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="企业简称" prop="abbreviaName">
<el-input v-model="oilCompanyInfo.abbreviaName" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公司级别" prop="parentMark">
<el-select v-model="oilCompanyInfo.parentMark" placeholder="请选择">
<el-option label="主体公司" :value="0" />
<el-option label="分公司" :value="1" />
</el-select>
</el-form-item>
</el-col>
<el-col v-if="oilCompanyInfo.parentMark === 1" :span="12">
<el-form-item label="上级公司" prop="parentId">
<el-select v-model="oilCompanyInfo.parentId" remote filterable :remote-method="companyOrginQuery" style="width: 100%" placeholder="请输入公司名称">
<el-option
v-for="item in queryCompanyList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="企业性质" prop="companyNature">
<el-select v-model="oilCompanyInfo.companyNature" placeholder="请选择">
<el-option label="零售客户" :value="0" />
<el-option label="外请客户" :value="1" />
<el-option label="渠道客户" :value="2" />
<el-option label="存量客户" :value="3" />
<el-option label="批发客户" :value="4" />
<el-option label="LNG客户" :value="5" />
<el-option label="推广业务" :value="6" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="账户类型" prop="companyType">
<el-select v-model="oilCompanyInfo.companyType" placeholder="请选择">
<el-option label="油批账户" :value="4" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="企业负责人" prop="businessLeader">
<el-select
v-model="oilCompanyInfo.businessLeader"
clearable
filterable
remote
reserve-keyword
placeholder="企业负责人姓名或联系方式"
:remote-method="userRemoteMethod"
>
<el-option
v-for="item in userList"
:key="item.id"
:label="item.phone+'('+(item.nickName?item.nickName+'-':'')+item.userCode+')'"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公司对接类型" prop="companyDockType">
<el-select v-model="oilCompanyInfo.companyDockType" placeholder="请选择">
<el-option label="对接客户" :value="0" />
<el-option label="平台客户" :value="1" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-col :span="24" style="text-align: right">
<el-button @click="close">取消</el-button>
<el-button
:disabled="!twoNo"
type="primary"
@click="submit"
>提交</el-button>
</el-col>
</el-form>
</el-row>
</div>
</template>
<script>
import oilCompanyInfoApi from '@/api/customerManagement/oilCompanyInfo'
import sysCustomerInfoApi from '@/api/user/sysCustomerInfo'
export default {
data() {
return {
queryCompanyList: [], // 企业列表
twoNo:true,
gridNum: {
row: {
gutter: 2
},
cols: {
xs: 24,
sm: 24,
md: 12,
lg: 12,
xl: 6
}
},
oilCompanyInfo: {
name: undefined,
abbreviaName: undefined,
parentMark: 0,
parentId: undefined,
companyNature: 0,
companyType: 4,
createSource: 'WEBM',
enableMark: 1,
auditMark: 0
},
userList: [],
rules: {
name: [
{ required: true, message: '请输入企业名称', trigger: 'blur' },
{ min: 3, max: 50, message: '长度在 3 到 50 个字符', trigger: 'blur' }
],
abbreviaName: [
{ min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur' }
],
parentMark: [
{ required: true, message: '请选择是否主体公司', trigger: 'change' }
],
companyNature: [
{ required: true, message: '请选择企业性质', trigger: 'change' }
],
companyType: [
{ required: true, message: '请选择账户类型', trigger: 'change' }
],
parentId: [
{ required: true, message: '请选择上级公司', trigger: 'change' }
]
}
}
},
created() {
},
methods: {
companyOrginQuery(value) { // 远程搜索
if (value) {
oilCompanyInfoApi.getLikeByName({ 'name': value }).then(res => {
this.queryCompanyList = res.data
})
}
},
userRemoteMethod(value) { // 远程搜索
if (value) {
sysCustomerInfoApi.liekQuery(value).then(res => {
this.userList = res.data
})
}
},
submit() {
this.$refs['form'].validate((valid) => {
if (valid) {
this.save(this.oilCompanyInfo)
this.twoNo = false
setTimeout(()=>{
this.twoNo=true
},1000)
}
})
},
save() {
if (this.oilCompanyInfo.parentMark === 0) {
this.oilCompanyInfo.parentId = 0
}
// 保存
oilCompanyInfoApi.save(this.oilCompanyInfo).then(res => {
this.$message.success(res.msg)
this.$emit('closeDialog')
this.$emit('getByPage')
})
},
close() {
this.$emit('closeDialog')
}
}
}
</script>

View File

@@ -1,215 +0,0 @@
<template>
<div>
<el-row>
<el-form ref="form" :rules="rules" :model="updateOilCompanyInfo" label-width="100px" :size="$store.getters.size">
<el-row :gutter="gridNum.row.gutter">
<el-col :span="12">
<el-form-item label="企业名称" prop="name">
<el-input v-model="updateOilCompanyInfo.name" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="企业简称" prop="abbreviaName">
<el-input v-model="updateOilCompanyInfo.abbreviaName" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公司级别" prop="parentMark">
<el-select v-model="updateOilCompanyInfo.parentMark" placeholder="请选择">
<el-option label="主体公司" :value="0" />
<el-option label="分公司" :value="1" />
</el-select>
</el-form-item>
</el-col>
<el-col v-if="updateOilCompanyInfo.parentMark === 1" :span="12">
<el-form-item label="上级公司" prop="parentId">
<el-select v-model="updateOilCompanyInfo.parentId" remote filterable :remote-method="companyOrginQuery" style="width: 100%" placeholder="请输入公司名称">
<el-option
v-for="item in queryCompanyList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="企业性质" prop="companyNature">
<el-select v-model="updateOilCompanyInfo.companyNature" placeholder="请选择">
<el-option label="零售客户" :value="0" />
<el-option label="外请客户" :value="1" />
<el-option label="渠道客户" :value="2" />
<el-option label="存量客户" :value="3" />
<el-option label="批发客户" :value="4" />
<el-option label="LNG客户" :value="5" />
<el-option label="推广业务" :value="6" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="账户类型" prop="companyType">
<el-select v-model="updateOilCompanyInfo.companyType" :disabled="updateOilCompanyInfo.auditMark === 1 ? true : false" placeholder="请选择">
<el-option label="油批账户" value="4" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="企业负责人" prop="businessLeader">
<el-select
v-model="updateOilCompanyInfo.businessLeader"
clearable
filterable
remote
reserve-keyword
placeholder="企业负责人姓名或联系方式"
:remote-method="userRemoteMethod"
>
<el-option
v-for="item in userList"
:key="item.id"
:label="item.phone+'('+(item.nickName?item.nickName+'-':'')+item.userCode+')'"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公司对接类型" prop="companyDockType">
<el-select v-model="updateOilCompanyInfo.companyDockType" placeholder="请选择">
<el-option label="对接客户" :value="0" />
<el-option label="平台客户" :value="1" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-col :span="24" style="text-align: right">
<el-button @click="close">取消</el-button>
<el-button
type="primary"
@click="submit"
>提交</el-button>
</el-col>
</el-form>
</el-row>
</div>
</template>
<script>
import oilCompanyInfoApi from '@/api/customerManagement/oilCompanyInfo'
import sysCustomerInfoApi from '@/api/user/sysCustomerInfo'
export default {
props: {
oilCompanyInfo: {
type: Object,
default() {
}
}
},
data() {
return {
queryCompanyList: [], // 企业列表
updateOilCompanyInfo: {
id: undefined,
name: undefined,
abbreviaName: undefined,
parentMark: undefined,
parentId: undefined,
companyNature: undefined,
updateSource: 'WEBM',
businessLeader: ''
},
userList: [],
rules: {
name: [
{ required: true, message: '请输入企业名称', trigger: 'blur' },
{ min: 3, max: 50, message: '长度在 3 到 50 个字符', trigger: 'blur' }
],
abbreviaName: [
{ min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur' }
],
parentMark: [
{ required: true, message: '请选择是否主体公司', trigger: 'change' }
],
companyNature: [
{ required: true, message: '请选择企业性质', trigger: 'change' }
],
companyType: [
{ required: true, message: '请选择账户类型', trigger: 'change' }
],
parentId: [
{ required: true, message: '请选择上级公司', trigger: 'change' }
]
},
gridNum: {
row: {
gutter: 2
},
cols: {
xs: 24,
sm: 24,
md: 12,
lg: 12,
xl: 6
}
}
}
},
created() {
this.updateOilCompanyInfo = { ...this.oilCompanyInfo }
console.log('修改值')
console.log(this.updateOilCompanyInfo)
sysCustomerInfoApi.getByBusinessLeader(this.updateOilCompanyInfo.businessLeader).then(res => {
if (res && res.data != null) {
this.userList = [res.data]
} else {
this.userList = []
}
})
if (this.oilCompanyInfo.parentMark === 1) {
oilCompanyInfoApi.getLikeByName({ 'id': this.updateOilCompanyInfo.parentId }).then(res => {
this.queryCompanyList = res.data
})
}
},
methods: {
companyOrginQuery(value) { // 远程搜索
if (value) {
oilCompanyInfoApi.getLikeByNameAndId({ name: value, id: this.updateOilCompanyInfo.id }).then(res => {
this.queryCompanyList = res.data
})
}
},
userRemoteMethod(value) { // 远程搜索
if (value) {
sysCustomerInfoApi.liekQuery(value).then(res => {
this.userList = res.data
})
}
},
submit() {
this.$refs['form'].validate((valid) => {
if (valid) {
this.update(this.updateOilCompanyInfo)
}
})
},
update() {
if (this.updateOilCompanyInfo.parentMark === 0) {
this.updateOilCompanyInfo.parentId = 0
}
// 更新
oilCompanyInfoApi.update(this.updateOilCompanyInfo).then(res => {
this.$message.success(res.msg)
this.$emit('closeDialog')
this.$emit('getByPage')
})
},
close() {
this.$emit('closeDialog')
}
}
}
</script>

View File

@@ -0,0 +1,297 @@
<template>
<el-drawer
:title="controlWindows.addInfo.title"
direction="ltr"
size="60%"
:visible.sync="controlWindows.bank"
@opened="openDrawer"
:before-close="closeWindow"
>
<div class="bank">
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="date" label="默认选项" width="80px">
<template slot-scope="{ $index, row }">
<el-radio
v-model="commonMark"
:label="$index"
@change="changeRadio(row)"
>
<span></span>
</el-radio>
</template>
</el-table-column>
<el-table-column prop="name" label="银行性质">
<template slot-scope="{ row }">
<el-select
clearable
:disabled="row.isDisabled"
v-model="row.bankNature"
placeholder="请选择"
style="width: 100%"
>
<el-option label="公户" value="0" />
<el-option label="个人账户" value="1" />
</el-select>
</template>
</el-table-column>
<el-table-column prop="address" label="打款名称">
<template slot-scope="{ row }">
<el-input
:disabled="row.isDisabled"
v-model="row.bankCardName"
placeholder="打款名称"
clearable
/>
</template>
</el-table-column>
<el-table-column prop="address" label="银行卡号">
<template slot-scope="{ row }">
<el-input
:disabled="row.isDisabled"
v-model="row.bankCardNo"
placeholder="银行卡号"
clearable
/>
</template>
</el-table-column>
<el-table-column prop="address" label="开户行名称">
<template slot-scope="{ row }">
<autocomplete
class="mr20"
:params="row"
:config="row.configAutocomplete"
@change="
(val, list) => {
changeBnak(val, list, row);
}
"
/>
</template>
</el-table-column>
<el-table-column prop="address" label="联行号">
<template slot-scope="{ row }">
<el-input
disabled
v-model="row.interBankCode"
placeholder="根据开户行名称自动匹配"
clearable
/>
</template>
</el-table-column>
<el-table-column prop="address" label="操作">
<template slot-scope="{ $index, row }">
<el-link type="primary" :underline="false">编辑 </el-link>
<el-link type="primary" :underline="false" @click="complete(row)"
>完成
</el-link>
<el-link
type="primary"
:underline="false"
v-if="tableData.length > 1"
@click="deleteRow($index, row)"
>删除
</el-link>
</template>
</el-table-column>
</el-table>
<el-button @click="add">新增</el-button>
</div>
<div class="buttons">
<el-button @click="closeWindow">取消 </el-button>
<el-button @click="submit">提交</el-button>
</div>
</el-drawer>
</template>
<script>
import serve from "api/customerManagement/companyManagement.js";
import commonServe from "api/common.js";
import autocomplete from "components/autocomplete/index.vue";
export default {
components: {
autocomplete,
},
props: {
controlWindows: Object,
},
data() {
let validatorParentId = (rule, value, callback) => {
if (this.form.parentId) callback();
else callback("请选择企业");
};
return {
commonMark: 0,
tableData: [],
// uploadUrl:
// process.env.VUE_APP_ENV === "development"
// ? "/api/oil-oss/obejct/uploadFile"
// : "/adminapi/oil-oss/obejct/uploadFile",
// fileList: [],
// imgDialog: false,
// areaTree: [],
form: {},
rules: {
parentMark: [
{ required: true, message: "请选择是否主体公司", trigger: "change" },
],
},
// siteConsumRebateScales: [3, 2, 1, 0],
};
},
created() {
// this.getTree();
},
methods: {
add() {
let index = this.tableData.length;
if (this.tableData.length && !this.tableData[index - 1].isDisabled) {
return this.$message.warning("有未保存的银行信息");
}
let { id } = this.controlWindows.addInfo;
this.tableData.push({
bankNature: "",
bankCardName: "",
bankCardNo: "",
bankName: "",
interBankCode: "",
isDisabled: false,
commonMark: 0,
companyId: id,
configAutocomplete: {
serveTarget: serve.findAllByName,
autocompleteKey: "",
labelKey: "bankName",
valueKey: "bankName",
placeholder: "开户行名称",
querykey: "bankName",
echoId: "",
echoName: "",
isDisabled: false,
},
});
},
// changeAddress(val) {
// this.form.provinceCode = val[0] || "";
// this.form.cityCode = val[1] || "";
// this.form.areaCode = val[2] || "";
// },
openDrawer() {
// console.log("this.controlWindows.addInfo", this.controlWindows.addInfo);
let { id, list } = this.controlWindows.addInfo;
if (list.length) {
// list
this.tableData = JSON.parse(JSON.stringify(list));
//回显
// this.form = JSON.parse(JSON.stringify(this.controlWindows.addInfo));
} else {
this.add();
// this.form = { companyId: companyId || id };
// console.log(" this.form", this.form);
}
},
// 开户行变更
changeBnak(val, list, row) {
row.interBankCode = val
? (row.interBankCode = list.filter(
(item) => item.bankName === val
)[0].cnaps)
: "";
},
changeRadio(row) {
// this.tableData.map((item) => {
// item.commonMark = 0;
// });
// row.commonMark = 1;
},
// 删除
deleteRow(index) {
this.tableData.splice(index, 1);
},
// 完成
complete(row) {
let { bankNature, bankCardName, bankCardNo, bankName } = row;
if (!bankNature) {
return this.$message.warning("请选择银行性质");
}
if (!bankCardName) {
return this.$message.warning("请输入打款名称");
}
if (!bankCardNo) {
return this.$message.warning("请输入银行卡号");
}
if (!bankName) {
return this.$message.warning("请选择开户行名称");
}
row.isDisabled = row.configAutocomplete.isDisabled = true;
},
submit() {
let index = this.tableData.length;
if (this.tableData.length && !this.tableData[index - 1].isDisabled) {
return this.$message.warning("有未保存的银行信息");
}
this.tableData.map((item, index) => {
return (item.commonMark = index === this.commonMark ? 1 : 0);
});
serve.saveBank(this.tableData).then((res) => {
this.$message.success(res.msg);
this.closeWindow();
});
},
judgeInterface(form) {
let { list } = this.controlWindows.addInfo;
if (list.length) return serve.updateFinance(form);
else return serve.saveFinance(form);
},
closeWindow() {
this.$emit("closeWindow");
this.tableData = [];
// this.fileList = [];
this.controlWindows.addInfo = {};
this.$nextTick(() => {
// this.$refs.form.clearValidate();
this.controlWindows.bank = false;
});
},
},
};
</script>
<style lang="scss" scoped>
.bank {
padding: 20px;
// .el-input,
// .el-select,
// .el-cascader,
// .el-autocomplete {
// width: 200px;
// }
// .el-textarea {
// width: 100%;
// }
.el-link {
margin-right: 5px;
}
}
.buttons {
position: absolute;
left: 0;
bottom: 0;
padding-right: 40px;
width: 100%;
height: 80px;
line-height: 80px;
text-align: right;
border-top: 1px solid #f2f3f5;
.el-button {
text-align: right;
font-size: 14px;
border-radius: 5px;
}
}
</style>

View File

@@ -69,31 +69,11 @@
/>
</el-select>
<el-form-item>
<!-- <el-select
v-model="parameter.params.businessLeader"
clearable
filterable
remote
reserve-keyword
placeholder="企业负责人姓名或联系方式"
:remote-method="userRemoteMethod"
@keyup.enter.native="getByPage"
>
<el-option
v-for="item in userList"
:key="item.id"
:label="
item.phone +
'(' +
(item.nickName ? item.nickName + '-' : '') +
item.userCode +
')'
"
:value="item.id"
/>
</el-select> -->
</el-form-item>
<!-- 企业负责人或联系方式 -->
<autocomplete
:params="parameter.params"
:config="configAutocompleteLeader"
/>
<el-select
v-model="parameter.params.companyDockType"
@@ -262,18 +242,13 @@
{{ row.phone || "暂无电话" }}
</template>
</el-table-column>
<el-table-column label="创建信息">
<el-table-column label="创建信息" width="160">
<template slot-scope="{ row }">
{{ row.createUserName || "创建人" }} <br />
{{ row.createTime || "创建时间" }}
</template>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="180px"
align="center"
>
<el-table-column fixed="right" label="操作" width="130" align="center">
<template slot-scope="{ row }">
<span class="el-dropdown-link" @click="detail(row)">详情</span>
<el-dropdown
@@ -287,15 +262,29 @@
更多<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="base"> 基础资料 </el-dropdown-item>
<el-dropdown-item
v-permission="['company:info:base']"
command="base"
>
基础资料
</el-dropdown-item>
<el-dropdown-item
command="attestation"
v-if="row.auditMark === 0"
v-permission="['company:info:auth']"
>
认证信息
</el-dropdown-item>
<el-dropdown-item command="bank"> 银行信息 </el-dropdown-item>
<el-dropdown-item command="finance">
<el-dropdown-item
v-permission="['company:info:auth']"
command="bank"
>
银行信息
</el-dropdown-item>
<el-dropdown-item
v-permission="['company:info:finance']"
command="finance"
>
财务信息
</el-dropdown-item>
</el-dropdown-menu>
@@ -316,6 +305,8 @@
/>
<!-- 认证 -->
<attestation :controlWindows="controlWindows" @closeWindow="search" />
<!-- 银行 -->
<bank :controlWindows="controlWindows" @closeWindow="search" />
<!-- 财务 -->
<finance :controlWindows="controlWindows" @closeWindow="search" />
@@ -454,26 +445,22 @@
import serve from "api/customerManagement/companyManagement.js";
import commonServe from "api/common.js";
import OilCompanyInfoAdd from "@/views/customerManagement/companyManagement/OilCompanyInfoAdd";
import OilCompanyInfoUpdate from "@/views/customerManagement/companyManagement/OilCompanyInfoUpdate";
import oilCompanyInfoApi from "@/api/customerManagement/oilCompanyInfo";
import autocomplete from "components/autocomplete/index.vue";
import pagination from "components/pagination/index.vue";
import generalDetails from "components/generalDetails/index.vue";
import add from "./components/add.vue";
import attestation from "./components/attestation.vue";
import bank from "./components/bank.vue";
import finance from "./components/finance.vue";
import { rechargeTypeEnum, rechargeStatusEnum } from "utils/dataType.js";
export default {
components: {
// OilCompanyInfoUpdate,
// OilCompanyInfoAdd,
add,
attestation,
bank,
finance,
pagination,
@@ -487,11 +474,12 @@ export default {
addInfo: {},
detail: false,
attestation: false,
bank: false,
finance: false,
},
tableData: [],
userList: [],
oilCompanyAuth: {},
// userList: [],
// oilCompanyAuth: {},
tableHeight: 0,
// 查询参数
@@ -503,23 +491,30 @@ export default {
rechargeTypeEnum: rechargeTypeEnum,
rechargeStatusEnum: rechargeStatusEnum,
// datetime: [],
tableData: [],
configAutocomplete: {
serveTarget: commonServe.getRefineryCompanyList,
autocompleteKey: "name",
labelKey: "name",
valueKey: "id",
valueKey: "name",
placeholder: "企业名称",
querykey: "companyId",
querykey: "companyName",
},
configAutocompleteHead: {
serveTarget: commonServe.liekQuery,
serveTarget: commonServe.getCompanyNames,
labelKey: "name",
valueKey: "name",
placeholder: "总公司名称",
querykey: "name",
},
configAutocompleteLeader: {
serveTarget: commonServe.liekQuery,
labelKey: ["id", "nickName", "phone"],
valueKey: "id",
placeholder: "企业负责人姓名或联系方式",
querykey: "businessLeader",
},
//
parameter: {
currentPage: 1,
pageSize: 10,
@@ -535,7 +530,7 @@ export default {
{
label: "审核通过",
value: "1",
type: "dark",
type: "success",
},
{
label: "待审核",
@@ -589,11 +584,8 @@ export default {
carTitle: "基础信息",
// 标记
carItems: [
// { label: "账户ID", value: "id" },
{ label: "企业名称", value: "name" },
{ label: "企业简称", value: "abbreviaName" },
// { label: "是否为主体公司", value: "parentMark" },
// { label: "上级公司", value: "name" },
{ label: "公司性质", value: "parentMark" },
{ label: "企业性质", value: "companyNature" },
{ label: "公司对接类型", value: "companyDockType" },
@@ -657,7 +649,6 @@ export default {
};
},
created() {
// this.initDateTime();
this.getByPage();
},
updated() {
@@ -680,40 +671,14 @@ export default {
this.getByPage();
},
getByPage() {
this.parameter.params.companyType = "4";
serve.getByPage(this.parameter).then((res) => {
this.tableData = res.data.list;
this.parameter.total = res.data.totalCount;
});
// console.log(this.tableData);
},
// closeDialog() {
// this.addDialog = false;
// this.updateDialog = false;
// this.addAuthDialog = false;
// this.updateAuthDialog = false;
// this.addFinanceDialog = false;
// this.updateFinanceDialog = false;
// this.piliangDialog = false;
// this.BatchModifyingDialog = false;
// this.showTableDrawer = false;
// this.bankFinanceDialog = false;
// this.syncDialog = false;
// },
enableMarkOpem(row) {
// 启用禁用点击
// const data = {
// id: row.id,
// shareDistribute: row.shareDistribute,
// };
// oilCompanyInfoApi.openShareDistribute(data).then((res) => {
// if (res.code === 20000) {
// this.$message.success(res.msg);
// }
// this.getByPage();
// });
},
enableMarkOpem(row) {},
//新增
addition() {
this.controlWindows.addInfo = {
@@ -746,6 +711,16 @@ export default {
console.log(this.controlWindows.attestation);
});
}
if (val === "bank") {
commonServe.getByCompanyIdBankCard(row.id).then((res) => {
this.controlWindows.addInfo = {
title: res.data.length ? "修改财务信息" : "新增财务信息",
id: row.id,
list: res.data,
};
this.controlWindows.bank = true;
});
}
if (val === "finance") {
commonServe.getByCompanyIdFinance(row.id).then((res) => {
if (res.data) {
@@ -768,37 +743,33 @@ export default {
}
},
detail(row) {
// commonServe.getInfo(row.id).then((res) => {
Promise.allSettled([
commonServe.getInfo(row.id),
commonServe.getByCompanyIdAuth(row.id),
commonServe.getByCompanyIdFinance(row.id),
commonServe.getByCompanyIdAccount(row.id),
]).then((res) => {
// console.log("res", res);
// return;
this.oilCompanyMatch = [];
res.forEach((item) => {
let result = item.status === "fulfilled" ? item.value.data : null;
this.oilCompanyMatch.push(result);
});
// this.oilCompanyMatch = [infoRes, financeRes, authRes, accountRes];
console.log("this.oilCompanyMatch", this.oilCompanyMatch);
this.controlWindows.detail = true;
});
// });
},
// 启用禁用点击
enableMark(val, row) {
row.enableMark = val == 1 ? 0 : 1;
update.updateBatchEnable([row]).then((res) => {
if (!res.code === 20000) {
this.$message.error(res.msg);
return;
}
this.getByPage();
});
},
// enableMark(val, row) {
// row.enableMark = val == 1 ? 0 : 1;
// update.updateBatchEnable([row]).then((res) => {
// if (!res.code === 20000) {
// this.$message.error(res.msg);
// return;
// }
// this.getByPage();
// });
// },
//重置
reset() {
Object.assign(this.parameter, {
@@ -816,14 +787,7 @@ export default {
this.tableHeight =
bodyHeight - frameHeight - operationHeight - paginationHeight - 145;
},
handleSizeChange(val) {
this.page.pageSize = val;
this.getByPage();
},
handleCurrentChange(val) {
this.page.currentPage = val;
this.getByPage();
},
indexMethod(index) {
return index + 1;
},
@@ -842,24 +806,6 @@ export default {
// this.addDialog = true;
this.controlWindows.add = true;
},
toUpdate(id) {
console.log(id);
console.log(this.updateDialog);
// 跳转到更新
oilCompanyInfoApi.get(id).then((res) => {
console.log(res);
this.oilCompanyInfo = res.data;
this.updateDialog = true;
console.log(this.updateDialog);
});
},
toAddAuth(id) {
// 跳转添加认证信息
oilCompanyInfoApi.get(id).then((res) => {
this.oilCompanyInfo = res.data;
this.addAuthDialog = true;
});
},
handleSelectionChange(val) {
// 选择表格数据
this.multipleSelection = val;

View File

@@ -275,7 +275,7 @@ export default {
configAutocompleteBusinessLeader: {
serveTarget: commonServe.liekQuery,
autocompleteKey: "",
labelKey: "nickName",
labelKey: ["id", "nickName", "phone"],
valueKey: "id",
placeholder: "业务负责人",
querykey: "businessLeader",

View File

@@ -194,6 +194,7 @@ export default {
querykey: "companyId",
echoId: "",
echoName: "",
isDisabled: false,
},
rules: {
companyId: [
@@ -347,6 +348,7 @@ export default {
closeWindow() {
this.$emit("closeWindow");
this.form = {};
this.companyFinance = {};
this.fileList = [];
this.controlWindows.addInfo = {};
this.$nextTick(() => {

View File

@@ -132,6 +132,7 @@ export default {
querykey: "companyId",
echoId: "",
echoName: "",
isDisabled: false,
},
rules: {
// companyId: [

View File

@@ -395,7 +395,7 @@ export default {
configAutocompleteSec: {
serveTarget: commonServe.liekQuery,
autocompleteKey: "",
labelKey: "nickName",
labelKey: ["id", "nickName", "phone"],
valueKey: "id",
placeholder: "业务负责人",
querykey: "businessLeader",

View File

@@ -257,7 +257,7 @@ export default {
configAutocompleteSec: {
serveTarget: commonServe.liekQuery,
autocompleteKey: "",
labelKey: "nickName",
labelKey: ["id", "nickName", "phone"],
valueKey: "id",
placeholder: "业务负责人",
querykey: "businessLeader",