Browse Source

市场监督

dev_kxc
xzt 1 year ago
parent
commit
ebf68f43cd
  1. 1027
      jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/index.vue
  2. 676
      jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/basePage.vue
  3. 3
      jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/behaviorAndCredit.vue
  4. 403
      jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/components/SubCompany.vue
  5. 453
      jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/components/managementSystem.vue
  6. 3
      jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/dynamicCredit.vue
  7. 149
      jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/index.vue
  8. 3
      jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/performanceRecord.vue
  9. 3
      jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/qualification.vue
  10. 3
      jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/resourcesArchives.vue

1027
jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/index.vue

File diff suppressed because it is too large

676
jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/basePage.vue

@ -0,0 +1,676 @@
<template>
<div class="app-container">
<!-- 企业基本信息 -->
<div class="listTitle" style="margin-top: 0">
<span>企业基本信息</span>
</div>
<el-row :gutter="15">
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="80px"
label-position="top"
>
<el-col :span="8">
<el-form-item label="企业名称" prop="enterpriseName">
<el-input
v-model="form.enterpriseName"
placeholder="请输入企业名称"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="投资组成" prop="investmentComposition">
<el-input
v-model="form.investmentComposition"
placeholder="请输入投资组成"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="企业所属区划" prop="adcd">
<el-cascader
:options="areasOptions"
v-model="form.adcd"
:props="areasOptionProps"
placeholder="请选择企业所属区划"
clearable
size="small"
style="width: 100%"
>
</el-cascader>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="成立日期" prop="establishmentDate">
<el-date-picker
clearable
size="small"
style="width: 100%"
v-model="form.establishmentDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择成立日期"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="法定代表人" prop="legalRepresentative">
<el-input
v-model="form.legalRepresentative"
placeholder="请输入法定代表人"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="法人身份证号" prop="corporateIdNumber">
<el-input
v-model="form.corporateIdNumber"
placeholder="请输入法人身份证号"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="注册资本金" prop="registeredCapital">
<el-input
v-model="form.registeredCapital"
placeholder="请输入注册资本金"
>
<template slot="append">万元</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实缴注册资本" prop="paidRegisteredCapital">
<el-input
v-model="form.paidRegisteredCapital"
placeholder="请输入实缴注册资本"
>
<template slot="append">万元</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="单位社保编号" prop="unitSecurityNumber">
<el-input
v-model="form.unitSecurityNumber"
placeholder="请输入单位社保编号"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="统一社会信用代码" prop="unifiedSocialCreditCode">
<el-input
v-model="form.unifiedSocialCreditCode"
placeholder="请输入统一社会信用代码"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="信用代码发证机关"
prop="creditCodeIssuingAuthority"
>
<el-input
v-model="form.creditCodeIssuingAuthority"
placeholder="请输入信用代码发证机关"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="注册地址" prop="registeredAddress">
<el-input
v-model="form.registeredAddress"
placeholder="请输入注册地址"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="安全生产许可证" prop="safetyProductionLicense">
<el-input
v-model="form.safetyProductionLicense"
placeholder="请输入安全生产许可证"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="许可证发证机关" prop="licenseIssuingAuthority">
<el-input
v-model="form.licenseIssuingAuthority"
placeholder="请输入许可证发证机关"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="办公电话" prop="officePhone">
<el-input v-model="form.officePhone" placeholder="请输入办公电话" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系人" prop="contacts">
<el-input v-model="form.contacts" placeholder="请输入联系人" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系人电话" prop="contactsPhone">
<el-input
v-model="form.contactsPhone"
placeholder="请输入联系人电话"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="传真" prop="fax">
<el-input v-model="form.fax" placeholder="请输入传真" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="企业网址" prop="enterpriseWebsite">
<el-input
v-model="form.enterpriseWebsite"
placeholder="请输入企业网址"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="邮政编码" prop="postalCode">
<el-input v-model="form.postalCode" placeholder="请输入邮政编码" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="电子邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入电子邮箱" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="经营范围" prop="businessScope">
<el-input
v-model="form.businessScope"
placeholder="请输入经营范围"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="信用分数" prop="score">
<el-input v-model="form.score" placeholder="请输入信用分数" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="统一社会信用代码证"
prop="socialCreditCodeAttachment"
>
<el-upload
class="upload-demo"
action="thinking/common/upload"
:headers="headers"
:on-preview="handleOpinionPreview"
:on-remove="(file) => handleOpinionRemove(file, 'fileList1')"
:before-remove="beforeOpinionRemove"
multiple
:on-exceed="handleOpinionExceed"
:on-success="
(_, fileList) => submitOpinionUpload(fileList, 'fileList1')
"
:file-list="fileList1"
>
<el-button size="small" type="primary" plain>
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div slot="tip" class="el-upload__tip">
支持jpg/png/pdf/word/excel文件等不超过100M
</div>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="安全生产许可证附件"
prop="safetyProductionAttachment"
>
<el-upload
class="upload-demo"
action="thinking/common/upload"
:headers="headers"
:on-preview="handleOpinionPreview"
:on-remove="(file) => handleOpinionRemove(file, 'fileList2')"
:before-remove="beforeOpinionRemove"
multiple
:on-exceed="handleOpinionExceed"
:on-success="
(_, fileList) => submitOpinionUpload(fileList, 'fileList2')
"
:file-list="fileList2"
>
<el-button size="small" type="primary" plain>
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div slot="tip" class="el-upload__tip">
支持jpg/png/pdf/word/excel文件等不超过100M
</div>
</el-upload>
</el-form-item>
</el-col>
</el-form>
</el-row>
<div class="btnList">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
<!-- 管理体系信息 -->
<div class="listTitle">
<span>管理体系信息</span>
<span class="addBtn" @click="handleAdd('0')">
<i class="el-icon-plus"></i>
添加
</span>
</div>
<managementSystem ref="managementSystem" :enterpriseId="form.id" />
<!-- 分公司信息 -->
<div class="listTitle">
<span>分公司信息</span>
<span class="addBtn" @click="handleAdd('1')">
<i class="el-icon-plus"></i>
添加
</span>
</div>
<SubCompany ref="SubCompany" :enterpriseId="form.id" />
</div>
</template>
<script>
import {
listEnterpriseInfo,
getEnterpriseInfo,
delEnterpriseInfo,
addEnterpriseInfo,
updateEnterpriseInfo,
exportEnterpriseInfo,
} from "@/api/enterprise/enterpriseInfo";
import { getAreasData } from "@/api/areas/index";
import { regionData, codeToText, TextToCode } from "element-china-area-data";
import { getToken } from "@/utils/auth";
import { getFileStream } from "@/api/system/upload";
import managementSystem from "./components/managementSystem.vue";
import SubCompany from "./components/SubCompany.vue";
export default {
name: "EnterpriseInfo",
components: {
managementSystem,
SubCompany,
},
data() {
return {
areasOptionProps: {
emitPath: false, //value
checkStrictly: true, //
},
areasOptions: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
enterpriseName: null,
adcd: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
//
form: {},
//
rules: {
enterpriseName: [
{ required: true, message: "请输入企业名称", trigger: "blur" },
],
registeredCapital: [
{
pattern:
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
message: "请输入数字,可保留两位小数",
trigger: "blur",
},
],
paidRegisteredCapital: [
{
pattern:
/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
message: "请输入数字,可保留两位小数",
trigger: "blur",
},
],
officePhone: [
{
pattern:
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/,
message: "请输入正确的手机号",
trigger: "blur",
},
],
contactsPhone: [
{
pattern:
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/,
message: "请输入正确的手机号",
trigger: "blur",
},
],
enterpriseWebsite: [
{
pattern:
/^(https|http|ftp)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}(:[0-9]{1,5})?(\/[\S]*)?$/,
message: "请输入正确的网址",
trigger: "blur",
},
],
postalCode: [
{
pattern: /^[1-9]\d{5}$/,
message: "请输入正确的6位数字(1-9开头)邮政编码",
trigger: "blur",
},
],
email: [
{
pattern: /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/,
message: "请输入正确的邮箱",
trigger: "blur",
},
],
},
//
routeList: [
{
path: "/marketSupervision/enterpriseInformation",
routeName: "企业信息管理",
},
],
//
headers: {
jianwei: "jwtech " + getToken(),
},
fileList1: [],
fileList2: [],
};
},
created() {
this.getTreeData();
this.getList();
},
methods: {
handleAdd(key) {
if (key == 0) this.$refs.managementSystem.handleAdd();
if (key == 1) this.$refs.SubCompany.handleAdd();
},
formatAdcd(row) {
if (row.adcd) {
let provinceCode = row.adcd.slice(0, 2);
let cityCode = row.adcd.slice(2, 4);
let areaCode = row.adcd.slice(4, 6);
if (areaCode != "00") {
return (
codeToText[provinceCode] +
"-" +
codeToText[provinceCode + cityCode] +
"-" +
codeToText[provinceCode + cityCode + areaCode]
);
} else if (cityCode != "00") {
return (
codeToText[provinceCode] + "-" + codeToText[provinceCode + cityCode]
);
} else {
return codeToText[provinceCode];
}
}
},
getTreeData() {
getAreasData().then((items) => {
// console.log("getAreasData", items.data);
let res = [];
let getChildren = (res, pid) => {
for (const i of items.data) {
if (i.parentid === pid) {
const newItem = {
label: i.name,
value: i.id,
};
if (i.layer != 3) newItem.children = [];
res.push(newItem);
getChildren(newItem.children, newItem.value);
}
}
};
getChildren(res, items.data[0].parentid);
console.log("areasOptions", res);
this.areasOptions = res;
// admin
// if (this.$userProfile.createUid != "admin") {
// this.queryParams.data.adcd = this.areasOptions[0].value;
// }
// return res;
});
},
/** 查询企业基本信息列表 */
getList() {
getEnterpriseInfo(this.$route.query.baseDataId).then((response) => {
this.form = response.data;
if (this.form.socialCreditCodeAttachment) {
this.fileList1 = JSON.parse(this.form.socialCreditCodeAttachment);
}
if (this.form.safetyProductionAttachment) {
this.fileList2 = JSON.parse(this.form.safetyProductionAttachment);
}
});
},
//
cancel() {
this.$router.back();
this.reset();
},
//
reset() {
this.form = {
id: null,
enterpriseName: null,
investmentComposition: null,
adcd: null,
establishmentDate: null,
legalRepresentative: null,
corporateIdNumber: null,
registeredCapital: null,
paidRegisteredCapital: null,
unitSecurityNumber: null,
unifiedSocialCreditCode: null,
socialCreditCodeAttachment: null,
creditCodeIssuingAuthority: null,
registeredAddress: null,
safetyProductionLicense: null,
safetyProductionAttachment: null,
licenseIssuingAuthority: null,
officePhone: null,
contacts: null,
contactsPhone: null,
fax: null,
enterpriseWebsite: null,
postalCode: null,
email: null,
remark: null,
businessScope: null,
createUid: null,
updateUid: null,
createTime: null,
updateTime: null,
owerDept: null,
score: null,
};
this.resetForm("form");
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
enterpriseName: null,
investmentComposition: null,
adcd: null,
establishmentDate: null,
legalRepresentative: null,
corporateIdNumber: null,
registeredCapital: null,
paidRegisteredCapital: null,
unitSecurityNumber: null,
unifiedSocialCreditCode: null,
socialCreditCodeAttachment: null,
creditCodeIssuingAuthority: null,
registeredAddress: null,
safetyProductionLicense: null,
safetyProductionAttachment: null,
licenseIssuingAuthority: null,
officePhone: null,
contacts: null,
contactsPhone: null,
fax: null,
enterpriseWebsite: null,
postalCode: null,
email: null,
remark: null,
businessScope: null,
createUid: null,
updateUid: null,
createTime: null,
updateTime: null,
owerDept: null,
score: null,
},
};
this.resetForm("form");
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.form.socialCreditCodeAttachment = JSON.stringify(this.fileList1);
this.form.safetyProductionAttachment = JSON.stringify(this.fileList2);
if (this.form.id != null) {
updateEnterpriseInfo(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.getList();
}
});
} else {
addEnterpriseInfo(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.getList();
}
});
}
}
});
},
//
submitOpinionUpload(fileList, name) {
console.log(name, fileList);
this[name].push({
name: fileList.name,
fileName: fileList.response.fileName,
url: fileList.response.url,
uid: fileList.uid,
});
console.log(name, this[name]);
},
handleOpinionRemove(file, name) {
// console.log(file, fileList1);
let index = this[name].findIndex((item) => item.uid === file.uid);
//
this[name].splice(index, 1);
},
//
handleOpinionPreview(file) {
// console.log(file);
getFileStream({ fileName: file.fileName }).then((res) => {
const blob = new Blob([res], {
// type
// application/xlsx application/zip
type: "application/xlsx",
}); //excel,pdf
const href = URL.createObjectURL(blob); //URLblob
const a = document.createElement("a"); //a
a.style.display = "none";
a.href = href; //
a.download = file.name; //
a.click(); //
URL.revokeObjectURL(a.href); //URL
});
},
handleOpinionExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
files.length + fileList.length
} 个文件`
);
},
beforeOpinionRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}`);
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/css/dialog.scss";
::v-deep {
.el-dialog {
margin-top: 2vh !important;
}
}
// .btnList {
// position: fixed;
// bottom: 20px;
// right: 20px;
// z-index: 1;
// }
.listTitle {
font-size: 14px;
padding-left: 10px;
padding-right: 30px;
margin: 20px 0;
border-left: 2px solid #36b29e;
display: flex;
justify-content: space-between;
span:nth-child(1) {
font-weight: bold;
}
.addBtn {
color: #36b29e;
cursor: pointer;
}
.addBtn:hover {
color: #31a08e;
}
}
</style>

3
jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/behaviorAndCredit.vue

@ -0,0 +1,3 @@
<template>
<div>市场行为与信用</div>
</template>

403
jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/components/SubCompany.vue

@ -0,0 +1,403 @@
<template>
<div class="app-container">
<el-table
v-loading="loading"
:data="officeList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" fixed />
<el-table-column
label="序号"
type="index"
width="50"
align="center"
fixed
/>
<!-- <el-table-column
label="企业id"
align="center"
prop="enterpriseId"
min-width="120"
/> -->
<el-table-column
label="分公司名称"
align="center"
prop="branchOfficeName"
min-width="120"
/>
<el-table-column
label="公司类型"
align="center"
prop="companyType"
:formatter="companyTypeFormat"
min-width="120"
/>
<el-table-column
label="统一社会信用代码"
align="center"
prop="unifiedSocialCreditCode"
min-width="150"
/>
<el-table-column
label="统一社会信用代码证"
align="center"
prop="socialCreditCodeAttachment"
min-width="150"
/>
<el-table-column
label="注册资本金"
align="center"
prop="registeredCapital"
min-width="120"
/>
<el-table-column
label="法人代表"
align="center"
prop="legalRepresentative"
min-width="120"
/>
<el-table-column
label="注册地址"
align="center"
prop="registeredAddress"
min-width="120"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="180"
fixed="right"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['enterprise:office:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['enterprise:office:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改分公司信息对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="1200px"
append-to-body
:close-on-click-modal="false"
>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="分公司名称" prop="branchOfficeName">
<el-input
v-model="form.branchOfficeName"
placeholder="请输入分公司名称"
/>
</el-form-item>
<el-form-item label="公司类型" prop="companyType">
<el-select
v-model="form.companyType"
placeholder="请选择公司类型"
style="width: 100%"
>
<el-option
v-for="dict in companyTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="统一社会信用代码" prop="unifiedSocialCreditCode">
<el-input
v-model="form.unifiedSocialCreditCode"
placeholder="请输入统一社会信用代码"
/>
</el-form-item>
<el-form-item
label="统一社会信用代码证"
prop="socialCreditCodeAttachment"
>
<el-input
v-model="form.socialCreditCodeAttachment"
placeholder="请输入统一社会信用代码证"
/>
</el-form-item>
<el-form-item label="注册资本金" prop="registeredCapital">
<el-input
v-model="form.registeredCapital"
placeholder="请输入注册资本金"
/>
</el-form-item>
<el-form-item label="法人代表" prop="legalRepresentative">
<el-input
v-model="form.legalRepresentative"
placeholder="请输入法人代表"
/>
</el-form-item>
<el-form-item label="注册地址" prop="registeredAddress">
<el-input
v-model="form.registeredAddress"
placeholder="请输入注册地址"
/>
</el-form-item>
<!-- <el-form-item label="企业id" prop="enterpriseId">
<el-input v-model="form.enterpriseId" placeholder="请输入企业id" />
</el-form-item> -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listOffice,
getOffice,
delOffice,
addOffice,
updateOffice,
exportOffice,
} from "@/api/enterprise/office";
export default {
name: "Office",
props: ["enterpriseId"],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
officeList: [],
//
title: "",
//
open: false,
//
companyTypeOptions: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
branchOfficeName: null,
unifiedSocialCreditCode: null,
socialCreditCodeAttachment: null,
registeredCapital: null,
legalRepresentative: null,
companyType: null,
registeredAddress: null,
enterpriseId: null,
createUid: null,
updateUid: null,
owerDept: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
//
form: {},
//
rules: {},
};
},
created() {
this.getList();
this.getDicts("company_type").then((response) => {
this.companyTypeOptions = response.data;
});
},
methods: {
/** 查询分公司信息列表 */
getList() {
this.loading = true;
listOffice(this.queryParams).then((response) => {
this.officeList = response.records;
this.total = response.total;
this.loading = false;
});
},
//
companyTypeFormat(row, column) {
return this.selectDictLabel(this.companyTypeOptions, row.companyType);
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
branchOfficeName: null,
unifiedSocialCreditCode: null,
socialCreditCodeAttachment: null,
registeredCapital: null,
legalRepresentative: null,
companyType: null,
registeredAddress: null,
enterpriseId: null,
createUid: null,
updateUid: null,
createTime: null,
updateTime: null,
remark: null,
owerDept: null,
};
this.resetForm("form");
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
branchOfficeName: null,
unifiedSocialCreditCode: null,
socialCreditCodeAttachment: null,
registeredCapital: null,
legalRepresentative: null,
companyType: null,
registeredAddress: null,
enterpriseId: null,
createUid: null,
updateUid: null,
createTime: null,
updateTime: null,
remark: null,
owerDept: null,
},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetQueryForm();
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加分公司信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getOffice(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改分公司信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.form.enterpriseId = this.enterpriseId;
if (this.form.id != null) {
updateOffice(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addOffice(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delOffice(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/css/dialog.scss";
//::v-deep {
// .el-dialog {
// margin-top: 10vh !important;
// }
//}
</style>

453
jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/components/managementSystem.vue

@ -0,0 +1,453 @@
<template>
<div class="app-container">
<el-table
v-loading="loading"
:data="systemList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" fixed />
<el-table-column
label="序号"
type="index"
width="50"
align="center"
fixed
/>
<!-- <el-table-column
label="企业id"
align="center"
prop="enterpriseId"
min-width="120"
/> -->
<el-table-column
label="体系名称"
align="center"
prop="systemName"
min-width="120"
/>
<el-table-column
label="有效期至"
align="center"
prop="validityPeriod"
min-width="120"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.validityPeriod, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="发证机关"
align="center"
prop="licenceIssuingAuthority"
min-width="120"
/>
<el-table-column
label="认证范围"
align="center"
prop="certificationScope"
min-width="120"
/>
<el-table-column
label="标准规范"
align="center"
prop="standardSpecification"
min-width="120"
>
<template slot-scope="scope">
<div
v-for="(item, index) in JSON.parse(scope.row.standardSpecification)"
:key="item + index"
>
<i class="el-icon-document"></i>
{{ item.name }}
<i
class="el-icon-download"
@click="downloadFile(scope, index)"
style="cursor: pointer"
></i>
</div>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="180"
fixed="right"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['enterprise:system:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['enterprise:system:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改管理体系信息对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="1200px"
append-to-body
:close-on-click-modal="false"
>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<!-- <el-form-item label="企业id" prop="enterpriseId">
<el-input v-model="form.enterpriseId" placeholder="请输入企业id" />
</el-form-item> -->
<el-form-item label="体系名称" prop="systemName">
<el-input v-model="form.systemName" placeholder="请输入体系名称" />
</el-form-item>
<el-form-item label="有效期至" prop="validityPeriod">
<el-date-picker
clearable
size="small"
style="width: 100%"
v-model="form.validityPeriod"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择有效期至"
>
</el-date-picker>
</el-form-item>
<el-form-item label="发证机关" prop="licenceIssuingAuthority">
<el-input
v-model="form.licenceIssuingAuthority"
placeholder="请输入发证机关"
/>
</el-form-item>
<el-form-item label="认证范围" prop="certificationScope">
<el-input
v-model="form.certificationScope"
placeholder="请输入认证范围"
/>
</el-form-item>
<el-form-item label="标准规范" prop="standardSpecification">
<!-- <el-input
v-model="form.standardSpecification"
placeholder="请输入标准规范"
/> -->
<el-upload
class="upload-demo"
action="thinking/common/upload"
:headers="headers"
:on-preview="handlePreview"
:on-remove="(file) => handleRemove(file, 'fileList')"
:before-remove="beforeRemove"
multiple
:on-exceed="handleExceed"
:on-success="(_, fileList) => submitUpload(fileList, 'fileList')"
:file-list="fileList"
>
<el-button size="small" type="primary" plain>
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div slot="tip" class="el-upload__tip">
支持jpg/png/pdf/word/excel文件等不超过100M
</div>
</el-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listSystem,
getSystem,
delSystem,
addSystem,
updateSystem,
exportSystem,
} from "@/api/enterprise/system";
import { getToken } from "@/utils/auth";
import { getFileStream } from "@/api/system/upload";
export default {
name: "System",
props: ["enterpriseId"],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
systemList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
enterpriseId: null,
systemName: null,
validityPeriod: null,
licenceIssuingAuthority: null,
certificationScope: null,
standardSpecification: null,
createUid: null,
updateUid: null,
owerDept: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
//
form: {},
//
rules: {},
//
headers: {
jianwei: "jwtech " + getToken(),
},
fileList: [],
};
},
created() {
this.getList();
},
methods: {
/** 查询管理体系信息列表 */
getList() {
this.loading = true;
listSystem(this.queryParams).then((response) => {
this.systemList = response.records;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
enterpriseId: null,
systemName: null,
validityPeriod: null,
licenceIssuingAuthority: null,
certificationScope: null,
standardSpecification: null,
createUid: null,
updateUid: null,
createTime: null,
updateTime: null,
remark: null,
owerDept: null,
};
this.resetForm("form");
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
enterpriseId: null,
systemName: null,
validityPeriod: null,
licenceIssuingAuthority: null,
certificationScope: null,
standardSpecification: null,
createUid: null,
updateUid: null,
createTime: null,
updateTime: null,
remark: null,
owerDept: null,
},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetQueryForm();
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加管理体系信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getSystem(id).then((response) => {
this.form = response.data;
if (this.form.standardSpecification) {
this.fileList = JSON.parse(this.form.standardSpecification);
}
this.open = true;
this.title = "修改管理体系信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.form.enterpriseId = this.enterpriseId;
this.form.standardSpecification = JSON.stringify(this.fileList);
if (this.form.id != null) {
updateSystem(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addSystem(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delSystem(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
submitOpinionUpload(fileList, name) {
console.log(name, fileList);
this[name].push({
name: fileList.name,
fileName: fileList.response.fileName,
url: fileList.response.url,
uid: fileList.uid,
});
console.log(name, this[name]);
},
handleRemove(file, name) {
// console.log(file, fileList1);
let index = this[name].findIndex((item) => item.uid === file.uid);
//
this[name].splice(index, 1);
},
downloadFile(scope, index) {
// console.log(scope);
let file = JSON.parse(scope.row.standardSpecification)[index];
this.handlePreview(file);
},
//
handlePreview(file) {
// console.log(file);
getFileStream({ fileName: file.fileName }).then((res) => {
const blob = new Blob([res], {
// type
// application/xlsx application/zip
type: "application/xlsx",
}); //excel,pdf
const href = URL.createObjectURL(blob); //URLblob
const a = document.createElement("a"); //a
a.style.display = "none";
a.href = href; //
a.download = file.name; //
a.click(); //
URL.revokeObjectURL(a.href); //URL
});
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
files.length + fileList.length
} 个文件`
);
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}`);
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/css/dialog.scss";
//::v-deep {
// .el-dialog {
// margin-top: 10vh !important;
// }
//}
</style>

3
jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/dynamicCredit.vue

@ -0,0 +1,3 @@
<template>
<div>动态信用</div>
</template>

149
jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/index.vue

@ -0,0 +1,149 @@
<template>
<div class="app-container">
<!-- 面包屑 -->
<el-breadcrumb separator="/" style="margin-bottom: 20px">
<el-breadcrumb-item
v-for="(item, index) in routeList"
:key="item + index"
:to="routeList.length !== index + 1 ? { path: item.path } : undefined"
>{{ item.routeName }}</el-breadcrumb-item
>
</el-breadcrumb>
<el-page-header
@back="goBack"
:content="routeList[1].routeName"
style="margin-bottom: 15px"
>
</el-page-header>
<el-tabs
v-model="activeName"
@tab-click="handleClick"
style="margin-bottom: 20px"
>
<el-tab-pane label="企业基础情况" name="basePage" :lazy="true">
<basePage ref="basePage" />
</el-tab-pane>
<el-tab-pane
label="企业资质"
name="qualification"
:disabled="!routeList[1].isEdit"
:lazy="true"
>
<qualification />
</el-tab-pane>
<el-tab-pane
label="人力资源档案"
name=" resourcesArchives"
:disabled="!routeList[1].isEdit"
:lazy="true"
>
<resourcesArchives />
</el-tab-pane>
<el-tab-pane
label="工程业绩记录"
name=" performanceRecord"
:disabled="!routeList[1].isEdit"
:lazy="true"
>
<performanceRecord />
</el-tab-pane>
<el-tab-pane
label="市场行为与信用"
name=" behaviorAndCredit"
:disabled="!routeList[1].isEdit"
:lazy="true"
>
<behaviorAndCredit />
</el-tab-pane>
<el-tab-pane
label="动态信用"
name=" dynamicCredit"
:disabled="!routeList[1].isEdit"
:lazy="true"
>
<dynamicCredit />
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import basePage from "./basePage.vue";
import qualification from "./qualification.vue";
import resourcesArchives from "./resourcesArchives.vue";
import performanceRecord from "./performanceRecord.vue";
import behaviorAndCredit from "./behaviorAndCredit.vue";
import dynamicCredit from "./dynamicCredit.vue";
// import {
// listProjectinfo,
// getProjectinfo,
// delProjectinfo,
// addProjectinfo,
// updateProjectinfo,
// exportProjectinfo,
// } from "@/api/earlyStage/projectinfo";
export default {
components: {
basePage,
qualification,
resourcesArchives,
performanceRecord,
behaviorAndCredit,
dynamicCredit,
},
data() {
return {
activeName: "basePage",
routeList: [],
formData: {},
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
projectName: null,
projectType: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
};
},
created() {
this.routeList = JSON.parse(this.$store.state.basePageData.routeList);
// if (this.routeList[1].isEdit) {
// // this.formData = JSON.parse(this.$store.state.basePageData.baseFormData);
// this.formData = JSON.parse(this.$store.state.basePageData.baseFormData);
// }
this.getList();
},
methods: {
goBack() {
this.$router.back();
},
/** 查询专题项目前期背景信息列表 */
getList() {
this.queryParams.data.id = this.$route.query.baseDataId;
// listProjectinfo(this.queryParams).then((response) => {
// this.formData = response.records[0];
// });
},
//
handleClick(tab, event) {
// console.log("", tab, event);
// console.log("", this.routeList[1].routeName);
this.routeList[1].routeName = tab.label;
},
},
};
</script>

3
jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/performanceRecord.vue

@ -0,0 +1,3 @@
<template>
<div>工程业绩记录</div>
</template>

3
jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/qualification.vue

@ -0,0 +1,3 @@
<template>
<div>企业资质</div>
</template>

3
jwtech-admin-page/src/views/marketSupervision/enterpriseInformation/options/resourcesArchives.vue

@ -0,0 +1,3 @@
<template>
<div>人力资源档案</div>
</template>
Loading…
Cancel
Save