You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

678 lines
28 KiB
Vue

<template>
<div>
<el-form :inline="true" :model="query" class="query-form" size="mini">
<el-row>
<el-form-item class="query-form-item">
<el-input v-model="query.key" style="width: 300px;" placeholder="搜索"></el-input>
</el-form-item>
<el-form-item class="query-form-item">
<el-select v-model="query.corpType" placeholder="往来单位类型">
<el-option label="全部" value=""></el-option>
<el-option label="客户" value="1"></el-option>
<el-option label="供应商" value="2"></el-option>
<el-option label="特殊往来" value="4"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button-group>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
></el-button>
<el-button type="primary" icon="search" @click="getList"
>查询
</el-button
>
<el-button type="primary" icon="search" @click="handleAddClick"
>添加往来单位信息
</el-button
>
</el-button-group>
</el-form-item>
</el-row>
</el-form>
<el-table
v-loading="loading"
:data="list"
style="width: 100%"
@selection-change="handleSelectionChange"
>
<el-table-column label="序号" type="index" fixed></el-table-column>
<el-table-column label="往来单位编码" prop="unitId" fixed></el-table-column>
<el-table-column label="名称" prop="name" fixed></el-table-column>
<el-table-column label="往来单位类型" prop="coryType" fixed>
<template slot-scope="scope">
<span>{{ coryTypeArr[scope.row.corpType] }}</span>
</template>
</el-table-column>
<el-table-column label="拼音码" prop="pinyinCode" fixed></el-table-column>
<el-table-column label="社会信用号" prop="creditNo" fixed></el-table-column>
<el-table-column label="第三方系统编码" prop="thirdId" fixed></el-table-column>
<el-table-column label="操作" fixed="right">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="handleModifyClick(scope.row)"
>编辑
</el-button
>
<!-- <el-button
type="text"
size="small"
@click.native.stop="handleLinkClick(scope.row)"
>关联自助平台
</el-button
>-->
<el-button
type="text"
size="small"
@click.native.stop="deleteDialog(scope.row)"
>删除
</el-button
>
</template>
</el-table-column>
</el-table>
<el-pagination
:page-size="query.limit"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="total"
></el-pagination>
<el-dialog
:title="editTypeMap[editType]"
:visible.sync="editDialogVisible"
width="60%"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-form :model="editQuery" ref="editQuery" :rules="rules">
<!--<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="10" class="el-col">
<div class="text item">
<div class="text item">
<el-form-item label="往来单位名称" prop="name">
<el-input v-model="editQuery.name" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="拼音码" prop="pinyinCode">
<el-input v-model="editQuery.pinyinCode" auto-complete="off" ></el-input>
</el-form-item>
<el-form-item label="企业自定义ID" prop="thirdId">
<el-input v-model="editQuery.thirdId"" auto-complete="off" ></el-input>
</el-form-item>
<el-form-item label="社会信用号" prop="creditNo">
<el-input type="" v-model="editQuery.creditNo" auto-complete="off" :disabled="true"></el-input>
</el-form-item>
</div>
</div>
</el-col>
<el-col :span="10" class="el-col" type="flex">
<div class="text item">
<el-form-item label="往来单位编码" prop="contact">
<el-input v-model="editQuery.contact" auto-complete="off" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="第三方往来单位ID" prop="thirdId">
<el-input v-model="editQuery.mobile" auto-complete="off" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="地址" prop="addr">
<el-input v-model="editQuery.addr" auto-complete="off" :disabled="true"></el-input>
</el-form-item>
<el-form-item v-if="spellUpdate" label="往来单位类型" prop="corpType">
<el-select v-model="editQuery.corpType" placeholder="往来单位类型">
<el-option
v-for="item in corpTypeList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>-->
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="10" class="el-col" type="flex">
<div class="text item">
<el-form-item label="往来单位名称" prop="name">
<el-input
v-model="editQuery.name"
style="width: 60%"
size="small"
@input="change()"
></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="10" class="el-col" type="flex">
<div class="text item">
<el-form-item label="拼音码" prop="pinyinCode">
<el-input
v-model="editQuery.pinyinCode"
style="width: 60%"
size="small"
></el-input>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="10" class="el-col" type="flex">
<div class="text item">
<el-form-item label="企业自定义ID" prop="thirdId">
<el-input
v-model="editQuery.thirdId"
style="width: 60%"
size="small"
></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="10" class="el-col" type="flex">
<div class="text item">
<el-form-item label="社会信用号" prop="creditNo">
<el-input
v-model="editQuery.creditNo"
style="width: 60%"
size="small"
></el-input>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="10" class="el-col" type="flex">
<div class="text item">
<el-form-item label="联系人" prop="contact">
<el-input
v-model="editQuery.contact"
style="width: 60%"
size="small"
></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="10" class="el-col" type="flex">
<div class="text item">
<el-form-item label="联系电话" prop="mobile">
<el-input
v-model="editQuery.mobile"
style="width: 60%"
size="small"
></el-input>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="10" class="el-col" type="flex">
<div class="text item">
<el-form-item label="地址" prop="addr">
<el-input
v-model="editQuery.addr"
style="width: 60%"
size="small"
></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="10" class="el-col" type="flex">
<div class="text item">
<el-form-item label="往来单位类型" prop="corpType">
<el-select v-model="editQuery.corpType" placeholder="往来单位类型">
<el-option
v-for="item in corpTypeList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="cancelDialog" size="small">取消</el-button>
<el-button type="primary" size="small" @click.native="formSubmit()"
>提交
</el-button
>
</div>
</el-dialog>
<el-dialog
:title="editTypeMap[editType]"
:visible.sync="editLoginVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="40%"
>
<el-form :model="editLogin" ref="editLogin" :rules="platformRules">
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="15" class="el-col" type="flex">
<div class="edit-text">
<el-form-item label="自助平台名称:" prop="platformId">
<el-select
v-model="editLogin.platformId"
style="width: 90%"
@change="intentPlatform"
placeholder="请选择自助平台"
>
<el-option
v-for="item in platformList"
:key="item.platformId"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="15" class="el-col" type="flex">
<div class="text item">
<el-form-item label="账号:" prop="platformUsername">
<el-input
v-model="editLogin.platformUsername"
style="width: 80%"
size="small"
@input="change()"
></el-input>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="15" class="el-col" type="flex">
<div class="text item">
<el-form-item label="密码:" prop="platformPassword">
<el-input
v-model="editLogin.platformPassword"
style="width: 80%"
size="small"
@input="change()"
></el-input>
</el-form-item>
</div>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native.stop="cancelDialog" size="small">取消</el-button>
<el-button type="primary" size="small" @click.native="linkSubmit()"
>提交
</el-button
>
</div>
</el-dialog>
<el-dialog title="选择自助平台" :visible.sync="platformVisible" width="35%">
<el-table
v-loading="loading"
@row-click="intentPlatform"
:data="platformList"
style="width: 100%"
>
<el-table-column
label="序号"
type="index"
width="80"
></el-table-column>
<el-table-column
label="自助平台名称"
prop="name"
width="140"
></el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<script>
import {
getUnitMaintain,
addUnit,
modifyUnit,
deleteUnitMaintain
} from "../../api/receipts/unitMaintain";
import {
getPlatform,
linkPlatform
} from "../../api/auth/platform";
export default {
data() {
return {
query: {
key: "",
customerId: this.$store.getters.customerId,
page: 1,
limit: 20
},
editQuery: {
unitId: null,
thirdId: null,
name: null,
spell: null,
creditNo: null,
pinyinCode: null,
contact: null,
mobile: null,
corpType: null,
outType: null
},
editLogin: {
platformId: null,
platformUsername: null,
platformPassword: null,
appid: null,
appKey: null,
sceretKey: null
},
editPlatfromQuery: {
id: null,
name: null,
host: null
},
spellUpdate: true,
platformVisible: false,
editLoginVisible: false,
checked: false,
editDialogVisible: false,
list: [],
platformList: [],
total: 0,
multipleSelection: [],
rules: {
name: [
{required: true, message: "请输入往来单位名称", trigger: "change"}
],
creditNo: [
{required: true, message: "请输入社会信用号", trigger: "change"}
],
corpType: [
{required: true, message: "请选择往来单位类型", trigger: "change"}
],
pinyinCode: [
{required: true, message: "请输入拼音码", trigger: "change"}
]
},
platformRules: {
platformId: [
{required: true, message: "请选择自助平台", trigger: "change"}
],
userName: [
{required: true, message: "请输入账号", trigger: "change"}
],
password: [
{required: true, message: "请输入密码", trigger: "change"}
]
},
editType: 0,
editTypeMap: {
0: "新增往来单位",
1: "编辑往来单位",
2: "关联自助平台"
},
corpTypeList: [
{
value: 1,
label: "客户"
},
{
value: 2,
label: "供应商"
},
{
value: 4,
label: "特殊往来"
}
],
coryTypeArr: {
1: "客户",
2: "供应商",
4: "特殊往来"
}
};
},
methods: {
onReset() {
this.$router.push({
path: ""
});
this.query = {
key: "",
customerId: this.$store.getters.customerId,
page: 1,
limit: 20
};
this.getList();
},
getList() {
this.loading = true;
getUnitMaintain(this.query)
.then((response) => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total || 0;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
//获取自助平台数据
getPlatformList() {
this.loading = true;
getPlatform()
.then((response) => {
this.loading = false;
this.platformList = response.data.list || [];
})
.catch(() => {
this.loading = false;
this.platformList = [];
});
},
deleteUnit(data) {
this.loading = true;
let tquery = {
id: data.id + ""
};
deleteUnitMaintain(tquery)
.then((response) => {
if (response.code == 20000) {
this.getList();
this.$message({
type: "success",
message: "删除成功!"
});
}
})
.catch(() => {
});
},
cancelDialog() {
this.editDialogVisible = false;
this.editLoginVisible = false;
},
handleModifyClick(row) {
this.editType = 1;
this.editDialogVisible = true;
this.editQuery = row;
},
handleLinkClick(row) {
if (row.platformId != null) {
//已经绑定过
this.$confirm("是否需要重新关联自助平台?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.editType = 2;
this.editLoginVisible = true;
this.editLogin = row;
}).catch(() => {
});
} else {
this.editType = 2;
this.editLoginVisible = true;
this.editLogin = row;
}
},
handleAddClick() {
this.editType = 0;
this.editDialogVisible = true;
this.editQuery = {
unitId: null,
thirdId: null,
name: null,
spell: null,
creditNo: null
};
var timestamp3 = new Date().getTime();
this.editQuery.unitId = timestamp3;
},
change() {
var pinyin = require("pinyin");
var py = pinyin(this.editQuery.name, {
style: pinyin.STYLE_FIRST_LETTER, // 设置拼音风格
heteronym: true
});
var str = "";
py.forEach((item) => {
str = str + item[0];
});
this.editQuery.pinyinCode = str;
},
formSubmit() {
this.$refs["editQuery"].validate((valid) => {
if (valid) {
if (this.editType == 0) {
addUnit(this.editQuery)
.then((response) => {
if (response.code == 20000) {
this.getList();
this.$message({
type: "success",
message: "添加成功"
});
this.cancelDialog();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
} else {
modifyUnit(this.editQuery)
.then((response) => {
if (response.code == 20000) {
this.getList();
this.$message({
type: "success",
message: "修改成功"
});
this.cancelDialog();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
}
}
});
},
intentPlatform(value) {
this.editPlatfromQuery.id = value;
},
deleteDialog(rowId) {
this.$confirm("此操作将永久删除该往来单位信息, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.deleteUnit(rowId);
})
.catch(() => {
});
},
linkSubmit() {
this.$refs["editLogin"].validate((valid) => {
if (valid) {
linkPlatform(this.editLogin)
.then((response) => {
if (response.code == 20000) {
this.getList();
this.$message({
type: "success",
message: "关联成功"
});
this.cancelDialog();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
}
});
},
exportTxt() {
},
handleSelectionChange(val) {
console.log("----" + val);
this.multipleSelection = val;
},
handleCurrentChange(val) {
this.query.page = val;
this.getList();
}
},
mounted() {
},
created() {
this.getList();
this.getPlatformList();
var pinyin = require("pinyin");
console.log(
pinyin("中心", {
style: pinyin.STYLE_FIRST_LETTER, // 设置拼音风格
heteronym: true
})
);
}
};
</script>
<style>
</style>