<template>
|
<div class="product">
|
<div class="borrower">
|
<p class="title">
|
<span></span>
|
担保人信息
|
</p>
|
<el-button
|
type="primary"
|
icon="el-icon-circle-plus-outline"
|
v-if="applyInfo.phaseNo <= '0060' && !isReadonly"
|
@click="addGuarantor"
|
size="medium"
|
>新增</el-button
|
>
|
<el-table
|
stripe
|
:data="guarantorData"
|
style="margin-top: 30px"
|
highlight-current-row
|
:cell-style="cell"
|
:header-cell-style="{ background: '#f5f5f5', color: '#222222' }"
|
>
|
<el-table-column min-width="200">
|
<template slot="header">
|
<span>
|
<!-- <span class="red-star">*</span> -->
|
<span style="padding-left: 8px">担保人类型</span>
|
</span>
|
</template>
|
<template slot-scope="{ row }">
|
<span style="padding-left: 8px" v-show="!row.isEdit">{{
|
row.borrowertypeCn
|
}}</span>
|
<el-select
|
style="display: block; padding-left: 15px"
|
v-model="row.borrowertype"
|
filterable
|
placeholder="请选择"
|
size="small"
|
v-show="row.isEdit"
|
@change="handleBorrowertypeChange(row, row.borrowertype)"
|
>
|
<el-option
|
v-for="item in guarantorTypeList"
|
:key="item.itemno"
|
:label="item.itemname"
|
:value="item.itemno"
|
></el-option>
|
</el-select>
|
</template>
|
</el-table-column>
|
<el-table-column min-width="200">
|
<template slot="header">
|
<span>
|
<span style="padding-left: 8px">担保人名称</span>
|
</span>
|
</template>
|
<template slot-scope="{ row }">
|
<span style="padding-left: 15px" v-show="!row.isEdit">{{
|
row.relativecustomername
|
}}</span>
|
<!-- <el-input
|
style="padding-left: 15px"
|
size="small"
|
v-show="row.isEdit"
|
v-model="row.relativecustomername"
|
placeholder="请输入"
|
></el-input> -->
|
<el-autocomplete
|
v-show="row.isEdit"
|
style="width: 100%"
|
clearable
|
v-model="row.relativecustomername"
|
:fetch-suggestions="remoteMethod"
|
placeholder="请输入内容"
|
@select="setCertid"
|
></el-autocomplete>
|
</template>
|
</el-table-column>
|
<el-table-column min-width="200">
|
<template slot="header">
|
<span>
|
<span style="padding-left: 8px">证件类型</span>
|
</span>
|
</template>
|
<template slot-scope="{ row }">
|
<span style="padding-left: 8px" v-show="!row.isEdit">{{
|
row.certtypeCn
|
}}</span>
|
<el-select
|
style="display: block; padding-left: 15px"
|
v-model="row.certtype"
|
filterable
|
placeholder="请选择"
|
size="small"
|
v-show="row.isEdit"
|
>
|
<el-option
|
v-for="item in certtypeList"
|
:key="item.itemno"
|
:label="item.itemname"
|
:value="item.itemno"
|
></el-option>
|
</el-select>
|
</template>
|
</el-table-column>
|
|
<el-table-column min-width="200">
|
<template slot="header">
|
<span>
|
<span style="padding-left: 8px">证件号码</span>
|
</span>
|
</template>
|
<template slot-scope="{ row }">
|
<span style="padding-left: 8px" v-show="!row.isEdit">{{
|
row.certid
|
}}</span>
|
<el-input
|
style="padding-left: 15px"
|
maxlength="50"
|
size="small"
|
v-show="row.isEdit"
|
v-model="row.certid"
|
placeholder="请输入"
|
@change="row.certid = row.certid.toUpperCase()"
|
></el-input>
|
</template>
|
</el-table-column>
|
|
<el-table-column min-width="200">
|
<template slot="header">
|
<span>
|
<span style="padding-left: 8px">电话号码</span>
|
</span>
|
</template>
|
<template slot-scope="{ row }">
|
<span style="padding-left: 8px" v-show="!row.isEdit">{{
|
row.phone ? row.phone : "--"
|
}}</span>
|
<el-input
|
style="padding-left: 15px"
|
maxlength="50"
|
size="small"
|
v-show="row.isEdit"
|
v-model.trim="row.phone"
|
placeholder="请输入"
|
></el-input>
|
</template>
|
</el-table-column>
|
|
<el-table-column min-width="130">
|
<template slot="header">
|
<span>
|
<span style="padding-left: 8px">联系人姓名</span>
|
</span>
|
</template>
|
<template slot-scope="{ row }">
|
<span style="padding-left: 8px" v-show="!row.isEdit">{{
|
row.contactsname ? row.contactsname : "--"
|
}}</span>
|
<el-input
|
style="padding-left: 15px"
|
maxlength="50"
|
size="small"
|
v-show="row.isEdit"
|
v-model="row.contactsname"
|
placeholder="请输入"
|
></el-input>
|
</template>
|
</el-table-column>
|
|
<el-table-column min-width="200">
|
<template slot="header">
|
<span>
|
<span style="padding-left: 8px">联系人证件号码</span>
|
</span>
|
</template>
|
<template slot-scope="{ row }">
|
<span style="padding-left: 8px" v-show="!row.isEdit">{{
|
row.contactsidnum ? row.contactsidnum : "--"
|
}}</span>
|
<el-input
|
style="padding-left: 15px"
|
maxlength="50"
|
size="small"
|
v-show="row.isEdit"
|
v-model="row.contactsidnum"
|
placeholder="担保人为企业时输入"
|
></el-input>
|
</template>
|
</el-table-column>
|
|
<el-table-column min-width="200">
|
<template slot="header">
|
<span>
|
<span style="padding-left: 8px">联系人手机号</span>
|
</span>
|
</template>
|
<template slot-scope="{ row }">
|
<span style="padding-left: 8px" v-show="!row.isEdit">{{
|
row.contactsphone ? row.contactsphone : "--"
|
}}</span>
|
<el-input
|
style="padding-left: 15px"
|
maxlength="50"
|
size="small"
|
v-show="row.isEdit"
|
v-model="row.contactsphone"
|
placeholder="担保人为企业时输入"
|
></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column min-width="200" v-if="applyInfo.productID == 'YZD'">
|
<template slot="header">
|
<span>
|
<span style="padding-left: 8px">与借款人关系</span>
|
</span>
|
</template>
|
<template slot-scope="{ row }">
|
<span style="padding-left: 8px" v-show="!row.isEdit">{{
|
row.relationshipDesc ? row.relationshipDesc : "--"
|
}}</span>
|
</template>
|
</el-table-column>
|
|
<el-table-column min-width="230">
|
<template slot="header">
|
<span>
|
<span style="padding-left: 8px">担保人地址(省市区)</span>
|
</span>
|
</template>
|
<template slot-scope="{ row }">
|
<span style="padding-left: 8px" v-if="!row.isEdit">{{
|
row.permanentprovinceCn
|
? row.permanentprovinceCn +
|
row.permanentcityCn +
|
row.permanentcountyCn
|
: "--"
|
}}</span>
|
<el-cascader
|
class="permanentprovinceCn"
|
:placeholder="
|
!row.permanentprovinceCn
|
? '请选择'
|
: row.permanentprovinceCn +
|
row.permanentcityCn +
|
row.permanentcountyCn
|
"
|
:v-model="row.defaulArea"
|
style="width: 100%"
|
v-else
|
:props="props"
|
@change="
|
(data) => {
|
setAreaList(data, row);
|
}
|
"
|
></el-cascader>
|
</template>
|
</el-table-column>
|
|
<el-table-column min-width="170">
|
<template slot="header">
|
<span>
|
<span style="padding-left: 8px">担保人详细地址</span>
|
</span>
|
</template>
|
<template slot-scope="{ row }">
|
<span style="padding-left: 8px" v-if="!row.isEdit">{{
|
row.permanentaddress ? row.permanentaddress : "--"
|
}}</span>
|
<el-input
|
v-else
|
size="small"
|
v-model="row.permanentaddress"
|
placeholder="请输入详细地址"
|
></el-input>
|
</template>
|
</el-table-column>
|
|
<el-table-column
|
label="操作"
|
min-width="110"
|
v-if="applyInfo.phaseNo <= '0060' && !isReadonly"
|
>
|
<template slot-scope="scope">
|
<el-button
|
type="text"
|
@click.native="handleEdit(scope.row)"
|
v-if="!scope.row.isEdit"
|
>修改</el-button
|
>
|
<el-button
|
type="text"
|
@click.native="handleSave(scope.row, scope.$index)"
|
v-else
|
>保存</el-button
|
>
|
<el-button
|
type="text"
|
@click.native="handleCancel(scope.row, scope.$index)"
|
v-if="scope.row.isCancel"
|
>取消</el-button
|
>
|
<el-button
|
type="text"
|
@click.native="handleDelete(scope.row, scope.$index)"
|
v-else
|
>删除</el-button
|
>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
|
<div class="btn">
|
<!-- <el-button
|
size="medium"
|
plain
|
@click="saveDraft(guarantorForm)"
|
v-if="applyInfo.phaseNo == '0040' || applyInfo.phaseNo == '0010'"
|
>保存草稿</el-button
|
> -->
|
|
<el-button
|
size="medium"
|
type="primary"
|
@click="submitNo(guarantorForm)"
|
v-if="
|
(applyInfo.phaseNo == '0040' ||
|
applyInfo.phaseNo == '0010' ||
|
applyInfo.phaseNo == '0060') &&
|
applyInfo.borrowertype == '02' &&
|
!isReadonly
|
"
|
>无担保人</el-button
|
>
|
<el-button
|
size="medium"
|
plain
|
@click="prevStep"
|
v-if="
|
(applyInfo.phaseNo == '0040' || applyInfo.phaseNo == '0010') &&
|
!isReadonly
|
"
|
>上一步</el-button
|
>
|
<el-button size="medium" plain @click="prevStep" v-else>上一步</el-button>
|
<el-button
|
size="medium"
|
type="primary"
|
@click="submit(guarantorForm)"
|
v-if="
|
(applyInfo.phaseNo == '0040' ||
|
applyInfo.phaseNo == '0010' ||
|
applyInfo.phaseNo == '0060') &&
|
!isReadonly
|
"
|
>下一步</el-button
|
>
|
<el-button size="medium" type="primary" @click="nextPage" v-else
|
>下一步</el-button
|
>
|
</div>
|
</div>
|
</template>
|
<script>
|
import {
|
getDictionaryList,
|
qryGuarantorOrCoBorrower, //查询担保人信息
|
saveGuarantorOrCoBorrower, //新增担保人信息
|
delGuarantorOrCoBorrower, //删除担保人信息
|
submitNoGuarantCoBorrow, // 无担保人提交
|
findDataByNameOrCodes,
|
} from "@api/product";
|
import {
|
getProvinceCodeList,
|
getCityCodeList,
|
getAreaCodeList,
|
} from "@/api/area";
|
import common from "@/utils/common";
|
import { CPCHANNELOPTIONS } from "../../../../comprehensiveTransaction/utils/optionsConfig";
|
let phoneExp = new RegExp(/^1(2|3|4|5|6|7|8|9)\d{9}$/);
|
let representativeIDExp = new RegExp(
|
/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|[xX])$/
|
);
|
|
export default {
|
data() {
|
return {
|
applyInfo: this.$store.state.product.applyInfo,
|
applyMenu: this.$store.state.product.applyMenu,
|
ownerData: [],
|
ownerForm: [],
|
initialArr: [],
|
certtypeList: [],
|
currentRow: {},
|
props: {
|
lazy: true,
|
value: "itemno",
|
label: "itemname",
|
lazyLoad(node, resolve) {
|
const { level } = node;
|
console.log("node", node);
|
if (level == 0) {
|
getProvinceCodeList({}).then((res) => {
|
const list = res.result.map((item) => {
|
return item;
|
});
|
resolve(list);
|
});
|
}
|
if (level == 1) {
|
getCityCodeList({ codeNo: "AreaCode", itmeNo: node.value }).then(
|
(res) => {
|
const list = res.result.map((item) => {
|
return item;
|
});
|
resolve(list);
|
}
|
);
|
}
|
if (level == 2) {
|
getAreaCodeList({ codeNo: "AreaCode", itmeNo: node.value }).then(
|
(res) => {
|
const list = res.result.map((item) => {
|
item.leaf = level >= 2;
|
return item;
|
});
|
resolve(list);
|
}
|
);
|
}
|
},
|
},
|
guarantorData: [], //担保人数据本地增删改
|
guarantorForm: [], //服务器返回担保人数据
|
guarantorTypeList: [], //担保人类型
|
};
|
},
|
computed: {
|
isReadonly() {
|
return (
|
this.$parent._data.applyMenu[this.$parent._data.activeIndex].readonly ==
|
"Y"
|
);
|
},
|
// isowner() {
|
// return this.propertyData.isowner;
|
// },
|
},
|
watch: {
|
// isowner(val) {
|
// this.getOwnerInfo(val);
|
// },
|
// propertyData() {
|
// this.getEnpGuarantorInfo();
|
// },
|
},
|
created() {
|
const that = this;
|
//查询担保人信息
|
qryGuarantorOrCoBorrower({
|
applySerialNo: this.applyInfo.serialNo,
|
customerId: this.applyInfo.customerid,
|
relationtype: "02",
|
}).then((res) => {
|
this.guarantorData = [];
|
this.initialArr = [];
|
this.guarantorForm = res.result;
|
if (res.result.length) {
|
res.result.forEach((val) => {
|
const obj = {};
|
for (const key in val) {
|
obj[key] = val[key];
|
// obj.certtypeDesc = val["certtype"].valueDesc;
|
}
|
|
this.guarantorData.push(obj);
|
this.initialArr.push(Object.assign({}, obj));
|
});
|
}
|
console.log(this.guarantorData, this.guarantorForm, this.initialArr);
|
});
|
// 证件类型列表
|
this.qryDictionaryList("BorrowerType", function (arr) {
|
that.guarantorTypeList = arr;
|
});
|
this.qryDictionaryList("CertType", function (arr) {
|
that.certtypeList = arr;
|
});
|
//担保人类别
|
},
|
methods: {
|
setAreaList(node, row) {
|
row.permanentprovince = node[0];
|
row.permanentcity = node[1];
|
row.permanentcounty = node[2];
|
},
|
//单元格css
|
cell({ row, column, rowIndex, columnIndex }) {
|
const { applyInfo, index } = this;
|
const { refuseFlag } = applyInfo;
|
if (refuseFlag == 1) {
|
const { houseInfoBatch } = this.$store.state.product.fields;
|
const { propertyList } = houseInfoBatch[index];
|
for (let i = 0; i < propertyList.length; i++) {
|
const object = propertyList[i];
|
for (const key in object) {
|
if (row[key] != object[key] && column.property == key) {
|
return { color: "#222", "font-weight": "700" };
|
}
|
}
|
}
|
}
|
},
|
|
qryDictionaryList(code, callback) {
|
getDictionaryList({
|
codeNo: code,
|
}).then((res) => {
|
callback(res.result);
|
});
|
},
|
handleBorrowertypeChange(row, val) {
|
if (val === "01") {
|
row.certtype = "05";
|
} else if (val === "02") {
|
row.certtype = "01";
|
}
|
},
|
//查询担保人信息
|
getEnpGuarantorInfo() {
|
if (!this.applyInfo.serialNo) return;
|
qryGuarantorOrCoBorrower({
|
applySerialNo: this.applyInfo.serialNo,
|
customerId: this.applyInfo.customerid,
|
relationtype: "02",
|
}).then((res) => {
|
this.guarantorData = [];
|
this.guarantorForm = res.result;
|
if (res.result.length) {
|
res.result.forEach((val) => {
|
const obj = {};
|
for (const key in val) {
|
obj[key] = val[key];
|
}
|
|
this.guarantorData.push(obj);
|
});
|
}
|
});
|
},
|
// 新增担保人
|
addGuarantor() {
|
for (let i = 0; i < this.guarantorData.length; i++) {
|
if (this.guarantorData[i].isEdit) {
|
this.$message.warning("请先保存当前担保人信息再新增");
|
return;
|
}
|
}
|
this.guarantorData.unshift({
|
certid: "",
|
certtype: "",
|
borrowertype: "",
|
relativecustomername: "",
|
phone: "",
|
isEdit: true,
|
});
|
this.currentRow = this.guarantorData[0];
|
},
|
handleEdit(row) {
|
this.$set(row, "isEdit", true);
|
this.$set(row, "isCancel", true);
|
},
|
selcerttype(row) {
|
for (let i = 0; i < this.certtypeList.length; i++) {
|
if (this.certtypeList[i].itemno == row.certtype) {
|
this.$set(row, "certtypedesc", this.certtypeList[i].itemname);
|
break;
|
}
|
}
|
},
|
handleSave(row, index) {
|
if (!row.relativecustomername) {
|
this.$message.warning("担保人名称不能为空");
|
return;
|
}
|
if (!row.certtype) {
|
this.$message.warning("证件类型不能为空");
|
return;
|
}
|
if (!row.certid) {
|
this.$message.warning("担保人证件号码不能为空");
|
return;
|
}
|
if (!representativeIDExp.test(row.certid) && row.certtype == "01") {
|
this.$message.warning("证件号码格式不正确");
|
return;
|
}
|
if (!row.permanentprovince) {
|
console.log("row.permanentprovince", row.permanentprovince, row);
|
this.$message.warning("担保人地址(省市区)不能为空");
|
return;
|
}
|
if (!row.permanentaddress) {
|
this.$message.warning("担保人详细地址不能为空");
|
return;
|
}
|
//担保人为企业,添加判断
|
if (row.borrowertype === "01") {
|
if (!row.contactsname) {
|
this.$message.warning("联系人不能为空");
|
return;
|
}
|
if (!representativeIDExp.test(row.contactsidnum)) {
|
this.$message.warning("联系人证件号码格式不正确");
|
return;
|
}
|
|
if (!phoneExp.test(row.contactsphone)) {
|
this.$message.warning("联系人手机号码格式不正确");
|
return;
|
}
|
} else {
|
if (!phoneExp.test(row.phone)) {
|
this.$message.warning("电话号码格式不正确");
|
return;
|
}
|
}
|
|
(row.applyserialno = this.applyInfo.serialNo),
|
(row.customerid = this.applyInfo.customerid),
|
(row.relationtype = "02"),
|
saveGuarantorOrCoBorrower(row).then((res) => {
|
if (res.code == "00") {
|
this.getEnpGuarantorInfo();
|
} else {
|
// this.$message.warning("系统错误,请重试");
|
return;
|
}
|
});
|
},
|
// 取消
|
handleCancel(row, index) {
|
const arr = [];
|
for (let i = 0; i < this.initialArr.length; i++) {
|
if (i == index) {
|
for (const key in row) {
|
if (
|
key != "isEdit" &&
|
key != "isCancel" &&
|
row[key] != this.initialArr[i][key]
|
) {
|
console.log(this.initialArr);
|
arr.push(key);
|
}
|
}
|
}
|
}
|
if (arr.length) {
|
common.comfirm("提示", "当前有数据未保存,是否放弃保存?", () => {
|
this.$set(row, "isEdit", false);
|
this.$set(row, "isCancel", false);
|
arr.forEach((val) => {
|
for (const key in this.initialArr[index]) {
|
if (this.initialArr[index].hasOwnProperty(val)) {
|
this.guarantorData[index][key] = this.initialArr[index][key];
|
}
|
}
|
});
|
});
|
} else {
|
this.$set(row, "isEdit", false);
|
this.$set(row, "isCancel", false);
|
}
|
},
|
handleDelete(row, index) {
|
if (!row.isEdit) {
|
common.comfirm(
|
"提示",
|
`请确认是否删除担保人: ${row.relativecustomername}`,
|
async () => {
|
if (row.serialno) {
|
const res = await delGuarantorOrCoBorrower([row.serialno]);
|
if (res.code != "00") return;
|
}
|
this.$message.success("删除成功");
|
this.guarantorData.splice(index, 1);
|
this.initialArr.splice(index, 1);
|
this.currentRow = {};
|
}
|
);
|
} else {
|
this.currentRow = {};
|
this.guarantorData.splice(index, 1);
|
this.initialArr.splice(index, 1);
|
}
|
},
|
// 保存接口
|
save(row) {
|
this.currentRow = {};
|
return new Promise((resolve) => {
|
addOrUpdateGuarantorInfo(row).then((res) => {
|
resolve(res);
|
});
|
});
|
},
|
// 修改
|
handleEdit(row) {
|
this.currentRow = row;
|
for (let i = 0; i < this.guarantorData.length; i++) {
|
if (this.guarantorData.length > 1 && this.guarantorData[i].isEdit) {
|
this.$message.warning("请先保存当前担保人信息");
|
return;
|
}
|
}
|
this.$set(row, "isEdit", true);
|
this.$set(row, "isCancel", true);
|
},
|
// 取消
|
handleCancel(row, index) {
|
const arr = [];
|
for (let i = 0; i < this.initialArr.length; i++) {
|
if (i == index) {
|
for (const key in row) {
|
if (
|
key != "isEdit" &&
|
key != "isCancel" &&
|
row[key] != this.initialArr[i][key]
|
) {
|
arr.push(key);
|
}
|
}
|
}
|
}
|
if (arr.length) {
|
common.comfirm("提示", "当前有数据未保存,是否放弃保存?", () => {
|
this.$set(row, "isEdit", false);
|
this.$set(row, "isCancel", false);
|
arr.forEach((val) => {
|
for (const key in this.initialArr[index]) {
|
if (this.initialArr[index].hasOwnProperty(val)) {
|
this.guarantorData[index][key] = this.initialArr[index][key];
|
}
|
}
|
});
|
this.currentRow = {};
|
});
|
} else {
|
this.currentRow = {};
|
this.$set(row, "isEdit", false);
|
this.$set(row, "isCancel", false);
|
}
|
},
|
//保存草稿
|
async saveDraft(arr) {},
|
// 上一步
|
prevStep() {
|
this.currentRow = {};
|
this.applyMenu.forEach((val, index) => {
|
if (val.tabname == "担保人信息") {
|
let objectTypeOFF;
|
const ispubile =
|
this.applyInfo.borrowertype == "01" &&
|
this.applyInfo.objectType == "CreditApplyCommon";
|
if (this.applyInfo.productID.indexOf("OFF_") > -1 || ispubile) {
|
objectTypeOFF = "CreditFlowPublic";
|
}
|
common.tabInfo(
|
this.applyMenu[index - 1].tabname,
|
objectTypeOFF ? objectTypeOFF : this.applyInfo.flowno,
|
this
|
);
|
}
|
});
|
},
|
//提交下一步
|
async submit(arr) {
|
this.currentRow = {};
|
// 线下产品不需要校验
|
if (this.applyInfo.productID.indexOf("OFF_") > -1) {
|
this.nextPage();
|
return;
|
}
|
console.log(arr);
|
arr.length > 0
|
? this.nextPage()
|
: this.$message.warning("请添加担保人信息");
|
},
|
async submitNo() {
|
await submitNoGuarantCoBorrow({
|
applyserialno: this.applyInfo.serialNo,
|
relationtype: "02",
|
});
|
this.nextPage();
|
},
|
// 下一页
|
nextPage() {
|
// 调用父组件的查询左侧tab的方法
|
this.$parent.updateApplyTabTree("担保人信息");
|
},
|
async remoteMethod(columnValue = "", cb) {
|
console.log("guarantor remoteMethod", columnValue, this.currentRow);
|
if (!columnValue) {
|
return;
|
}
|
await findDataByNameOrCodes({
|
code: columnValue,
|
borrowerType: this.currentRow.borrowertype,
|
})
|
.then((res) => {
|
if (res.result) {
|
const list = res.result.map((res) => {
|
res.value = res.name;
|
res.id = res.creditCode;
|
return res;
|
});
|
cb(list);
|
}
|
})
|
.catch((err) => {
|
// this.options = [];
|
// this.lodingy = false;
|
});
|
},
|
setCertid(e) {
|
console.log("guarantor setCertid", e, this.currentRow);
|
if (e.creditCode) {
|
this.currentRow.certid = e.creditCode;
|
this.currentRow.phone = e.phone;
|
}
|
},
|
},
|
};
|
</script>
|
<style lang="stylus">
|
.owner {
|
width: 100%;
|
padding-left: 10px;
|
|
.red-star {
|
width: 7px;
|
display: inline-block;
|
vertical-align: middle;
|
color: #FF4300;
|
}
|
|
>.el-button {
|
padding: 9px 12px;
|
}
|
|
>p {
|
height: 20px;
|
color: #222222;
|
font-weight: 500;
|
font-size: 14px;
|
position: relative;
|
margin-bottom: 30px;
|
|
span {
|
width: 2px;
|
height: 14px;
|
background-color: #0081F0;
|
position: absolute;
|
left: -10px;
|
top: 50%;
|
transform: translateY(-50%);
|
}
|
}
|
}
|
|
.permanentprovinceCn .el-input__inner::placeholder {
|
color: #333;
|
}
|
</style>
|