Commit 0cd49410 authored by 张冬's avatar 张冬

公司详情以及编辑

parent 8f38083a
...@@ -14,6 +14,13 @@ export function industryList() { ...@@ -14,6 +14,13 @@ export function industryList() {
method: 'get' method: 'get'
}) })
} }
// 获取单位性质列表
export function companyNatureList() {
return request({
url: '/CompanyNatureList',
method: 'get'
})
}
// 获取项目分类列表 // 获取项目分类列表
export function projectClassifyList() { export function projectClassifyList() {
return request({ return request({
......
...@@ -71,3 +71,12 @@ export function roleMenus(companyType) { ...@@ -71,3 +71,12 @@ export function roleMenus(companyType) {
method: 'get' method: 'get'
}) })
} }
// 公司信息编辑
export function companyedit(data) {
return request({
url:"company/edit",
method: 'post',
data:data
})
}
\ No newline at end of file
<template>
<div>
<div class="detail-list">
<div>
<h5>基本信息</h5>
<ul class="flex">
<li>
<div>单位名称</div>
<div>{{ detail.companyName }}</div>
</li>
<li>
<div>注册角色</div>
<div>{{ detail.type == '1' ? '采购商' : '供应商' }}</div>
</li>
<li>
<div>法人姓名</div>
<div>{{ detail.legalPersonName }}</div>
</li>
<li>
<div>法人电话</div>
<div>{{ detail.legalPersonPhone }}</div>
</li>
<li>
<div>统一社会信用代码</div>
<div>{{ detail.socialCode }}</div>
</li>
<li>
<div>行政区域</div>
<div>{{ detail.companyName }}</div>
</li>
<li>
<div>单位性质</div>
<div>{{ detail.companyNatureName }}</div>
</li>
<li>
<div>单位所在地</div>
<div>{{ detail.location }}</div>
</li>
<li>
<div>行业类型</div>
<div>{{ detail.industryName }}</div>
</li>
<li>
<div>开户银行名称</div>
<div>{{ detail.bankName }}</div>
</li>
<li>
<div>结算账户</div>
<div>{{ detail.bankAccount }}</div>
</li>
<li>
<div>结算账户名</div>
<div>{{ detail.bankName }}</div>
</li>
<li>
<div>注册资本(万元)</div>
<div>{{ detail.registeredCapital }}</div>
</li>
<li>
<div>联系地址</div>
<div>{{ detail.contactAddress }}</div>
</li>
<li>
<div>管理员姓名</div>
<div>{{ contacts.userName }}</div>
</li>
<li>
<div>手机号</div>
<div>{{ contacts.phoneNumber }}</div>
</li>
<li>
<div>身份证</div>
<div>{{ contacts.idNumber }}</div>
</li>
<li>
<div>电子邮箱</div>
<div>{{ contacts.email }}</div>
</li>
</ul>
<div class="detail-item">
<div>经营范围</div>
<div>{{ detail.businessScope }}</div>
</div>
<div class="detail-item">
<div>法人身份证正反面</div>
<div class="flex">
<el-image
v-for="(item, index) in Card"
:src="item"
:key="index"
style="margin-right: 20px; height: 200px; width: 200px"
fit="cover"
:preview-src-list="Card"
></el-image>
</div>
</div>
<div class="detail-item">
<div>三证合一扫描件</div>
<el-image
v-for="(item, index) in threeCard"
:src="item"
:key="index"
style="margin-right: 20px; height: 200px; width: 200px"
fit="cover"
:preview-src-list="threeCard"
></el-image>
</div>
<div class="detail-item">
<div>其他资料</div>
<div class="flex-between pdf">
<a :href="item.fileUrl" v-for="(item, index) in elseFile" :key="index">{{ item.fileName }}</a>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { companyDetail } from '@api/common/list';
export default {
components: {},
data() {
return {
detail: '',
breads: ['查看基本信息', '企业资质文件'],
threeCard: [],
elseFile: [],
contacts: '',
Card: []
};
},
methods: {
edit() {
this.$router.push('/purchaser/organization/informationEdit');
},
async getcompanyDetail() {
try {
let companyId = localStorage.getItem('companyId');
const { data, code } = await companyDetail(companyId);
if (code === 200) {
for (let item of data.fileList) {
if (item.type == 1 || item.type == 2) {
this.Card.push(item.fileUrl);
} else if (item.type == 3) {
this.threeCard.push(item.fileUrl);
} else if (item.type == 4) {
this.elseFile.push(item);
}
}
this.contacts = data.contacts;
this.detail = data;
}
} catch (e) {
console.log(e);
}
}
},
created() {
this.getcompanyDetail();
}
};
</script>
<style scoped>
.detail-list > div > ul > li {
margin-right: 150px;
margin-bottom: 50px;
width: 180px;
}
.detail-list > div > ul {
flex-wrap: wrap;
margin-left: 30px;
margin-top: 20px;
}
.detail-head {
margin-left: 30px;
padding-top: 10px;
}
.detail-head > h3 {
font-weight: bold;
margin-top: 10px;
margin-bottom: 10px;
}
.detail-list {
box-sizing: border-box;
padding-top: 20px;
background-color: #f0f2f5;
margin-top: 10px;
}
.detail-list > div {
background-color: #ffff;
padding-bottom: 20px;
}
.detail-list h5 {
font-weight: bold;
height: 50px;
line-height: 50px;
border-bottom: 1px solid #f0f2f5;
box-sizing: border-box;
padding-left: 30px;
}
.detail-item {
margin-left: 30px;
margin-bottom: 30px;
}
.detail-item > div:first-child {
margin-bottom: 10px;
}
.pdf {
/* width: 170px; */
}
.pdf > div:nth-child(2),
.pdf > div:last-child {
width: 50px;
height: 30px;
text-align: center;
line-height: 30px;
border-radius: 10px;
border: 1px solid #000;
}
</style>
\ No newline at end of file
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
<div>拒绝原因:{{ ruleForm.reason }}</div> <div>拒绝原因:{{ ruleForm.reason }}</div>
</div> </div>
</div> </div>
<div class="content"> <winNotice v-if="type == 2"></winNotice>
<div class="content" v-else>
<div class="message form"> <div class="message form">
<div class="flex-between"> <div class="flex-between">
<div>项目编号:{{ projectCode }}</div> <div>项目编号:{{ projectCode }}</div>
...@@ -48,7 +49,7 @@ ...@@ -48,7 +49,7 @@
</div> </div>
<div class="bottomButton flex-center"> <div class="bottomButton flex-center">
<el-button @click="back">返回</el-button> <el-button @click="back">返回</el-button>
<el-button type="primary" @click="submitData" v-if="type !== 2">提交审批</el-button> <el-button type="primary" @click="submitData" v-if="type!== 2">提交审批</el-button>
</div> </div>
</div> </div>
<el-dialog :visible.sync="dialogFormVisible" title="收货地址" width="30%"> <el-dialog :visible.sync="dialogFormVisible" title="收货地址" width="30%">
...@@ -75,12 +76,16 @@ import 'quill/dist/quill.bubble.css'; ...@@ -75,12 +76,16 @@ import 'quill/dist/quill.bubble.css';
import dataTable from '@components/nopageTable.vue'; import dataTable from '@components/nopageTable.vue';
import dataBreadcrumb from '@components/dataBreadcrumb.vue'; import dataBreadcrumb from '@components/dataBreadcrumb.vue';
import singleUpload from '@components/Upload/Upload.vue'; import singleUpload from '@components/Upload/Upload.vue';
import winNotice from '@components/detail/winNotice.vue';
export default { export default {
components: { components: {
dataTable, dataTable,
dataBreadcrumb, dataBreadcrumb,
singleUpload, singleUpload,
quillEditor quillEditor,
winNotice
}, },
data() { data() {
return { return {
......
...@@ -248,7 +248,7 @@ export default { ...@@ -248,7 +248,7 @@ export default {
this.$router.go(-1); this.$router.go(-1);
}, },
jump(mods) { jump(mods) {
if (mods.bright) { // if (mods.bright) {
if (mods.label == '项目终止') { if (mods.label == '项目终止') {
this.$confirm('确定要终止吗?', '提示', { this.$confirm('确定要终止吗?', '提示', {
type: 'warning' type: 'warning'
...@@ -273,7 +273,7 @@ export default { ...@@ -273,7 +273,7 @@ export default {
} else { } else {
this.$router.push(mods.url); this.$router.push(mods.url);
} }
} // }
}, },
async getprojectConsole() { async getprojectConsole() {
try { try {
...@@ -282,7 +282,8 @@ export default { ...@@ -282,7 +282,8 @@ export default {
message.type = 1; message.type = 1;
const { data, msg, code } = await projectConsole(message); const { data, msg, code } = await projectConsole(message);
if (code == 200) { if (code == 200) {
for (let item of this.states) { let states=this.states
for (let item of states) {
for (let item1 of item.modulars) { for (let item1 of item.modulars) {
for (let item2 of data) { for (let item2 of data) {
if (item1.id == item2.buttonId) { if (item1.id == item2.buttonId) {
...@@ -304,6 +305,8 @@ export default { ...@@ -304,6 +305,8 @@ export default {
} }
} }
} }
this.states=states
console.log(this.states)
this.remark = data[0].remark; this.remark = data[0].remark;
} else { } else {
this.$message.error(msg); this.$message.error(msg);
......
<template> <template>
<div> <div>
<div class="content-head"> <div class="content-head">
<dataBreadcrumb :breads="breads"></dataBreadcrumb> <dataBreadcrumb :breads="breads"></dataBreadcrumb>
<h3>编辑</h3> <h3>编辑</h3>
<h5>编辑基本信息、企业资质文件</h5> <h5>编辑基本信息、企业资质文件</h5>
</div>
<div class="othercontent">
<div>
<div class="describe ">
基本信息
</div> </div>
<div> <div class="othercontent">
<el-form ref="perfectForm" :model="perfectForm" :rules="rules" label-width="120px" inline>
<el-form-item label="单位名称" prop="companyName" class="item">
<el-input v-model.trim="perfectForm.companyName" placeholder="请输入" style="width:240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="注册角色" prop="role" class="item">
<el-input v-model.trim="perfectForm.role" placeholder="请输入" style="width:240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="法人姓名" prop="legalPerson" class="item">
<el-input v-model.trim="perfectForm.legalPerson" placeholder="请输入" style="width:240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="法人电话" prop="personPhone" class="item">
<el-input v-model.trim="perfectForm.personPhone" placeholder="请输入" style="width:240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="统一社会信用代码" prop="creditCode" class="item">
<el-input v-model.trim="perfectForm.creditCode" placeholder="请输入" style="width:240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="单位性质" prop="nature" class="item">
<el-input v-model.trim="perfectForm.nature" placeholder="请输入" style="width:240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="单位所在地" prop="companyLocal" class="item">
<el-input v-model.trim="perfectForm.companyLocal" placeholder="请输入" style="width:240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="行业类型" prop="type" class="item">
<el-input v-model.trim="perfectForm.type" placeholder="请输入" style="width:240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="资信等级" prop="CreditRating" class="item">
<el-input v-model.trim="perfectForm.CreditRating" placeholder="请输入" style="width:240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="开户银行名称" prop="bank" class="item">
<el-input v-model.trim="perfectForm.bank" placeholder="请输入" style="width:240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="开户行行号" prop="bankNumber" class="item">
<el-input v-model.trim="perfectForm.bankNumber" placeholder="请输入" style="width:240px"></el-input>
</el-form-item>
<el-form-item label="注册资本(万元)" prop="capital" class="item">
<el-input v-model.trim="perfectForm.capital" placeholder="请输入" style="width:240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="联系地址" prop="contactAddress" class="item">
<el-input v-model.trim="perfectForm.contactAddress" placeholder="请输入" style="width:240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="管理员" prop="admin" class="item">
<el-input v-model.trim="perfectForm.admin" disabled style="width:240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="联系电话" prop="contactNumber" class="item">
<el-input v-model.trim="perfectForm.contactNumber" disabled style="width:240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="身份证" prop="id" class="item">
<el-input v-model.trim="perfectForm.id" disabled style="width:240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="电子邮箱" prop="id" class="item">
<el-input v-model.trim="perfectForm.email" disabled style="width:240px" maxlength="30"></el-input>
</el-form-item>
<div> <div>
<el-form-item label="经营范围" prop="businessScope" class="item"> <div class="describe">基本信息</div>
<el-input v-model.trim="perfectForm.businessScope" :rows="4" type="textarea" placeholder="请输入内容" style="width:600px" maxlength="300"></el-input> <div style="margin-left: 30px">
</el-form-item> <el-form ref="form" :model="form" :rules="rules" label-width="120px" inline>
</div> <el-form-item label="单位名称" prop="companyName" class="item">
<div class="margin-left"> <el-input
<el-form-item label="法人身份证正反面" prop="identity" class="item"> v-model="form.companyName"
<el-upload placeholder="请输入单位名称"
:show-file-list="false" style="width: 240px"
:on-success="justSuccess" maxlength="30"
:before-upload="beforejust" @keyup.native="$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
class="avatar-uploader" ></el-input>
action="https://jsonplaceholder.typicode.com/posts/"> </el-form-item>
<img v-if="justimg" :src="justimg" class="avatar"> <el-form-item label="注册角色" prop="type" class="item">
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <el-select v-model="form.type" placeholder="请输入选择">
</el-upload> <el-option label="采购商" value="1"></el-option>
<el-upload <el-option label="供应商" value="2"></el-option>
:show-file-list="false" </el-select>
:on-success="backSuccess" </el-form-item>
:before-upload="beforeback" <el-form-item label="法人姓名" prop="legalPersonName" class="item">
style="margin-top: 10px;" <el-input
class="avatar-uploader" v-model="form.legalPersonName"
action="https://jsonplaceholder.typicode.com/posts/"> placeholder="请输入"
<img v-if="backimg" :src="backimg" class="avatar"> style="width: 240px"
<i v-else class="el-icon-plus avatar-uploader-icon"></i> maxlength="30"
</el-upload> @keyup.native="$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
</el-form-item> ></el-input>
</div> </el-form-item>
<div class="margin-left"> <el-form-item label="法人电话" prop="legalPersonPhone" class="item">
<el-form-item label="三证合一扫描件" prop="card" class="item"> <el-input
<el-upload v-model="form.legalPersonPhone"
:show-file-list="false" placeholder="请输入"
:on-success="justSuccess" style="width: 240px"
:before-upload="beforejust" maxlength="11"
class="avatar-uploader" @keyup.native="$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
action="https://jsonplaceholder.typicode.com/posts/"> ></el-input>
<img v-if="justimg" :src="justimg" class="avatar"> </el-form-item>
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <el-form-item label="统一社会信用代码" prop="socialCode" class="item">
</el-upload> <el-input
<div class="t1" style="color:#666666;margin-top:10px">(只可上传三张图片,大小不能超过10MB,此项为必填项)</div> v-model="form.socialCode"
</el-form-item> placeholder="请输入"
</div> style="width: 240px"
<div class="margin-left"> maxlength="18"
<el-form-item prop="file" class="item" margin-left="-180px"> @keyup.native="$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
<div class="else"> ></el-input>
<div>其他资料 <span class="red">用于上传其他证明性材料如法人变更证明,报名资料请勿在此上传,单个附件建议不超过2M。</span> </div> </el-form-item>
<el-form-item label="单位性质" prop="companyNature" class="item">
<el-select v-model="form.companyNature" placeholder="请选择">
<el-option v-for="item in companyNatures" :key="item.id" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="单位所在地" prop="location" class="item">
<el-input
v-model="form.location"
placeholder="请输入"
style="width: 240px"
maxlength="30"
@keyup.native="$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
></el-input>
</el-form-item>
<el-form-item label="行业类型" prop="industryType" class="item">
<el-select v-model="form.industryType" placeholder="请选择">
<el-option v-for="item in belongTypes" :key="item.id" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="开户银行名称" prop="bankName" class="item">
<el-input
v-model="form.bankName"
placeholder="请输入"
style="width: 240px"
maxlength="30"
@keyup.native="$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
></el-input>
</el-form-item>
<el-form-item label="结算账号" prop="bankAccount" class="item">
<el-input
v-model="form.bankAccount"
placeholder="请输入"
style="width: 240px"
minlength="12"
maxlength="30"
></el-input>
</el-form-item>
<el-form-item label="结算账号名" prop="bankAccountName" class="item">
<el-input
v-model="form.bankAccountName"
placeholder="请输入"
style="width: 240px"
minlength="2"
maxlength="30"
@keyup.native="$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
></el-input>
</el-form-item>
<el-form-item label="注册资本(万元)" prop="registeredCapital" class="item">
<el-input
v-model="form.registeredCapital"
placeholder="请输入"
style="width: 240px"
maxlength="10"
onkeyup="value=value.replace(/[^\d]/g,'')"
></el-input>
</el-form-item>
<el-form-item label="联系地址" prop="contactAddress" class="item">
<el-input
v-model="form.contactAddress"
placeholder="请输入"
style="width: 240px"
minlength="4"
maxlength="30"
@keyup.native="$event.target.value = $event.target.value.replace(/^\s+|\s+$/gm, '')"
></el-input>
</el-form-item>
<el-form-item label="管理员" class="item">
<el-input v-model.trim="form.contacts.userName" disabled style="width: 240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="联系电话" class="item">
<el-input v-model.trim="form.contacts.phoneNumber" disabled style="width: 240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="身份证" class="item">
<el-input v-model.trim="form.contacts.idNumber" disabled style="width: 240px" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="电子邮箱" class="item">
<el-input v-model.trim="form.contacts.email" disabled style="width: 240px" maxlength="30"></el-input>
</el-form-item>
<div>
<el-form-item label="经营范围" prop="businessScope" class="item">
<el-input
v-model.trim="form.businessScope"
:rows="4"
type="textarea"
placeholder="请输入内容"
style="width: 600px"
maxlength="300"
></el-input>
</el-form-item>
</div>
<div>
<el-form-item label="法人身份证正反面" prop="identity" class="item">
<imgUpload :limit="1" :max="10" @input="getJustimg" :fileList="justimg" tip=""></imgUpload>
<imgUpload :limit="1" :max="10" @input="getBackimg" :fileList="backimg" tip=""></imgUpload>
</el-form-item>
</div>
<div>
<el-form-item label="三证合一扫描件" prop="cardimg" class="item">
<imgUpload
:limit="3"
:max="10"
@input="getCardimg"
tip="只可上传三张图片,大小不能超过10MB,此项为必填项"
:fileList="cardimg"
></imgUpload>
</el-form-item>
</div>
<el-form-item prop="file" class="item" margin-left="-1.8rem">
<div class="else">
<div>
其他资料
<span class="red"
>用于上传其他证明性材料如法人变更证明,报名资料请勿在此上传,单个附件建议不超过2M。</span
>
</div>
</div>
<Upload :limit="5" :max="10" @input="getfile" :fileList="files" tip="最多上传五份文件,每份不超过10M"></Upload>
</el-form-item>
</el-form>
</div> </div>
<el-upload
:on-preview="handlePreview"
:on-pxove="handlepxove"
:file-list="fileList"
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
list-type="picture">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip">支持扩展名:.rar .zip .doc .docx .pdf .jpg...</div>
</el-upload>
</el-form-item>
</div> </div>
</el-form> <div class="bottomButton">
<el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="submit">提交审核</el-button>
</div>
</div> </div>
</div> <el-dialog :visible.sync="dialogFormVisible" title="提交审核">
<div class="bottomButton"> <el-form ref="dialogform" :model="form1" :rules="rules">
<el-button @click="cancel">取消</el-button> <el-form-item label="修改位置" prop="modifyLocation" class="item">
<el-button type="primary" @click="dialogFormVisible=true">提交审核</el-button> <el-input v-model.trim="form.modifyLocation" style="width: 240px" maxlength="30"></el-input>
</div> </el-form-item>
</el-form>
<div slot="footer" class="backButton">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="sure">确 定</el-button>
</div>
</el-dialog>
</div> </div>
<el-dialog :visible.sync="dialogFormVisible" title="提交审核">
<el-form ref="dialogform" :model="form" :rules="rules">
<el-form-item label="修改位置" prop="modifyLocation" class="item">
<el-input v-model.trim="form.modifyLocation" style="width:240px" maxlength="30"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="backButton">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="sure">确 定</el-button>
</div>
</el-dialog>
</div>
</template> </template>
<script> <script>
import dataBreadcrumb from '@components/dataBreadcrumb.vue' import { companyDetail, industryList, companyNatureList } from '@api/common/list';
import { companyedit } from '@api/purchaser/organization';
import dataBreadcrumb from '@components/dataBreadcrumb.vue';
import Upload from '@components/Upload/Upload.vue';
import imgUpload from '@components/Upload/imgUpload.vue';
export default { export default {
components: { components: {
dataBreadcrumb dataBreadcrumb,
}, Upload,
data() { imgUpload
// 测试省份
let islocal = (rule, value, callback) => {
if (this.form.province && this.form.county && this.form.city) {
callback(new Error('请选择城市'))
} else {
callback()
}
}
return {
dialogFormVisible: false,
breads: ['组织管理', '单位信息'],
perfectForm: {
personPhone: '',
personName: '',
companyLocal: '',
grade: '',
bankCard: '',
contactPhone: '',
creditCode: '',
nature: '',
type: '',
bank: '',
capital: '',
management: '',
bankNumber: '',
contactAddress: '',
admin: '',
contactNumber: '',
id: '',
email: '',
businessScope: ''
},
form: {
modifyLocation: ''
},
rules: {
identity: [
{ required: true }
],
card: [
{ required: true }
],
businessScope: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
legalPerson: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
personPhone: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
creditCode: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
type: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
CreditRating: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
bank: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
bankNumber: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
capital: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
contactAddress: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
admin: [{
required: true
}],
contactNumber: [{
required: true
}],
id: [{
required: true
}],
email: [{
required: true
}],
modifyLocation: [{
required: true,
message: '请输入修改位置',
trigger: 'blur'
}],
companyName: [{
required: true,
message: '请输入单位名称',
trigger: 'blur'
}],
local: [{
required: true,
validator: islocal,
trigger: 'blur'
}],
role: [{
required: true,
message: '请输入角色',
trigger: 'blur'
}]
}
}
},
methods: {
cancel() {
this.$router.go(-1)
}, },
sure() { data() {
this.dialogFormVisible = false // 测试省份
let islocal = (rule, value, callback) => {
console.log('1');
if (!this.form.provinceId) {
callback(new Error('请选择省份'));
} else if (!this.form.cityId) {
callback(new Error('请选择市'));
} else if (!this.form.districtId) {
callback(new Error('请选择区'));
} else {
callback();
}
};
// 测试正反图片是否上传
let checkidentity = (rule, value, callback) => {
if (this.justimg.length === 0) {
callback(new Error('请上传正面照片'));
} else if (this.backimg.length === 0) {
callback(new Error('请上传反面照片'));
} else {
callback();
}
};
// 测试三证合一是否上传
let checkcardimg = (rule, value, callback) => {
if (this.cardimg.length === 0) {
callback(new Error('请上传三证合一'));
} else {
callback();
}
};
let checkPhone = async (rule, value, callback) => {
if (!value) {
return callback(new Error('手机号不能为空'));
} else {
const reg = /^1[3|4|5|7|8][0-9]\d{8}$/;
console.log(reg.test(value));
if (reg.test(value)) {
callback();
} else {
return callback(new Error('请输入正确的手机号'));
}
}
};
//名字校验
let validateRealName = (rule, value, callback) => {
const realnameReg = /^[\u4E00-\u9FA5]{1,30}$/;
if (!realnameReg.test(value)) {
return callback(new Error('您的输入有误,请重新输入!'));
} else {
callback();
}
};
//身份证号校验
let validateRealId = (rule, value, callback) => {
const realnameReg = /(^\d{15}$)|(^\d{17}([0-9]|X|x)$)/;
if (!realnameReg.test(value)) {
return callback(new Error('您的输入有误,请重新输入!'));
} else {
callback();
}
};
//邮箱号校验
let validateEmailId = (rule, value, callback) => {
const realnameReg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
if (!realnameReg.test(value)) {
return callback(new Error('您的输入有误,请重新输入!'));
} else {
callback();
}
};
//结算账号校验
let validateAccount = (rule, value, callback) => {
const realnameReg = /^([1-9]{1})(\d{14}|\d{17})$/;
if (!realnameReg.test(value)) {
return callback(new Error('您的输入有误,请重新输入!'));
} else {
callback();
}
};
return {
files: [],
justimg: [],
backimg: [],
cardimg: [],
dialogFormVisible: false,
breads: ['组织管理', '单位信息'],
form: {},
form1: {
modifyLocation: ''
},
rules: {
companyName: [
{
required: true,
message: '请输入单位名称',
trigger: 'blur'
},
{
validator: validateRealName
}
],
local: [
{
required: true,
validator: islocal,
trigger: 'blur'
}
],
type: [
{
required: true,
message: '请选择角色',
trigger: 'blur'
}
],
name: [
{
required: true,
message: '请输入管理者姓名',
trigger: 'blur'
},
{
validator: validateRealName
}
],
idNumber: [
{
required: true,
message: '请输入身份证',
trigger: 'blur'
},
{
validator: validateRealId
}
],
password: [
{
required: true,
message: '请输入密码',
trigger: 'blur'
},
{
pattern: /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/,
message: '密码需由8-16位数字字母组合'
}
],
email: [
{
required: true,
message: '请输入电子邮箱',
trigger: 'blur'
},
{
validator: validateEmailId
}
],
phonenumber: [
{
required: true,
message: '请输入正确的验证码',
trigger: 'blur'
},
{
pattern: /^1[0-9]{10}$/,
message: '你的输入有误,请重新输入!'
}
],
code: [
{
required: true,
message: '请输入验证码',
trigger: 'blur'
}
],
phonecode: [
{
required: true,
message: '请输入短信验证码',
trigger: 'blur'
}
],
legalPersonPhone: [
{
required: true,
message: '请输入法人电话',
trigger: 'blur'
},
{
pattern: /^1[0-9]{10}$/,
message: '你的输入有误,请重新输入!'
}
],
legalPersonName: [
{
required: true,
message: '请输入法人姓名',
trigger: 'blur'
},
{
validator: validateRealName
}
],
location: [
{
required: true,
message: '请输入单位所在地',
trigger: 'blur'
},
{
validator: validateRealName
}
],
bankAccount: [
{
required: true,
message: '请输入结算账号',
trigger: 'blur'
},
{
validator: validateAccount
}
],
bankAccountName: [
{
required: true,
message: '请输入结算账号名',
trigger: 'blur'
},
{
validator: validateRealName
}
],
contactAddress: [
{
required: true,
message: '请输入联系地址',
trigger: 'blur'
},
{
validator: validateRealName
}
],
socialCode: [
{
required: true,
message: '请输入社会信用码',
trigger: 'blur'
},
{
pattern: /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/,
message: '您的输入有误,请重新输入!'
}
],
companyNature: [
{
required: true,
message: '请输入行业类型',
trigger: 'blur'
}
],
industryType: [
{
required: true,
message: '请选择行业类型',
trigger: 'blur'
}
],
bankName: [
{
required: true,
message: '开户银行名称',
trigger: 'blur'
},
{
validator: validateRealName
}
],
registeredCapital: [
{
required: true,
message: '请输入注册资本',
trigger: 'blur'
} /* {
pattern: /^[1-9]d*$/,
message: "你的输入有误,请重新输入!",
} */
],
businessScope: [
{
required: true,
message: '请输入经营范围',
trigger: 'blur'
},
{
pattern: /[\u4e00-\u9fa5]|[\(\)\《\》\—\;\,\。\“\”\<\>\!]/,
message: '你得输入有误,请重新输入!'
}
],
identity: [
{
required: true,
validator: checkidentity,
trigger: 'blur'
}
],
cardimg: [
{
required: true,
validator: checkcardimg,
trigger: 'blur'
}
]
},
companyNatures: [],
belongTypes: []
};
},
methods: {
cancel() {
this.$router.go(-1);
},
sure() {
this.dialogFormVisible = false;
},
// 获取单位性质
async getCompanyNatureList() {
const res = await companyNatureList();
this.companyNatures = res;
},
//获取所属行业
async getIndustryList() {
const res = await industryList();
this.belongTypes = res;
},
getJustimg(val) {
console.log(val);
this.justimg = val;
},
getBackimg(val) {
console.log(val);
this.backimg = val;
},
getCardimg(val) {
console.log(val);
this.cardimg = val;
},
getfile(val) {
console.log(val);
this.files = val;
},
async getcompanyDetail() {
try {
let companyId = localStorage.getItem('companyId');
const { data, code } = await companyDetail(companyId);
if (code === 200) {
for (let item of data.fileList) {
item.name = item.fileName;
item.url = item.fileUrl;
if (item.type == 1) {
this.justimg.push(item);
} else if (item.type == 2) {
this.backimg.push(item);
} else if (item.type == 3) {
this.cardimg.push(item);
} else if (item.type == 4) {
this.files.push(item);
}
}
this.form = data;
}
} catch (e) {
console.log(e);
}
},
async submit() {
try {
const valid = await this.$refs['form'].validate();
if (valid) {
let form = this.form;
let justimg = this.justimg;
let backimg = this.backimg;
let cardimg = this.cardimg;
let files = this.files;
console.log(justimg)
console.log(backimg)
console.log(cardimg)
console.log(files)
justimg.forEach(function (item, index) {
item.type = 1;
});
backimg.forEach(function (item, index) {
item.type = 2;
});
cardimg.forEach(function (item, index) {
item.type = 3;
});
files.forEach(function (item, index) {
item.type = 4;
});
form.fileList = justimg.concat(backimg).concat(cardimg).concat(files);
const { code, msg } = await companyedit(form);
if (code == 200) {
this.$message({
message: msg,
type: 'success',
duration: 1500
});
setTimeout(() => {
this.$router.go(-1);
}, 1500);
} else {
this.$message.error(msg);
}
}
} catch (e) {}
}
},
created() {
this.getcompanyDetail();
this.getIndustryList();
this.getCompanyNatureList();
} }
} };
}
</script> </script>
<style scoped> <style scoped>
.upload>div { .upload > div {
color: rgba(102, 102, 102, 1); color: rgba(102, 102, 102, 1);
font-weight: 400; font-weight: 400;
} }
.label-form { .label-form {
font-size: 16px; font-size: 16px;
margin-top: 30px; margin-top: 30px;
margin-bottom: 1opx; margin-bottom: 1opx;
font-weight: 400; font-weight: 400;
} }
.company h4 { .company h4 {
font-size: 22px; font-size: 22px;
font-weight: bold; font-weight: bold;
color: rgba(0, 0, 0, 1); color: rgba(0, 0, 0, 1);
margin-top: 62px; margin-top: 62px;
margin-bottom: 50px; margin-bottom: 50px;
} }
.el-input { .el-input {
width: 240px; width: 240px;
height: 40px; height: 40px;
} }
.nextButton { .nextButton {
width: 300px; width: 300px;
height: 48px; height: 48px;
background: rgba(4, 134, 254, 1); background: rgba(4, 134, 254, 1);
border-radius: .40px; border-radius: 0.4px;
line-height: 46px; line-height: 46px;
margin-top: 45px; margin-top: 45px;
margin-bottom: 8px; margin-bottom: 8px;
color: #fff color: #fff;
} }
.item .el-form-item__label { .item .el-form-item__label {
font-weight: bold; font-weight: bold;
} }
.password-tips { .password-tips {
margin-bottom: 0; margin-bottom: 0;
color: rgba(144, 147, 153, 1); color: rgba(144, 147, 153, 1);
font-weight: 400; font-weight: 400;
font-size: 12px; font-size: 12px;
} }
.avatar-uploader .el-upload { .avatar-uploader .el-upload {
border: 1px dashed #d9d9d9; border: 1px dashed #d9d9d9;
border-radius: 6px; border-radius: 6px;
cursor: pointer; cursor: pointer;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
} }
.avatar-uploader .el-upload:hover { .avatar-uploader .el-upload:hover {
border-color: #409EFF; border-color: #409eff;
} }
.avatar-uploader-icon { .avatar-uploader-icon {
font-size: 28px; font-size: 28px;
color: #8c939d; color: #8c939d;
width: 120px; width: 120px;
height: 120px; height: 120px;
line-height: 120px; line-height: 120px;
text-align: center; text-align: center;
background: rgba(247, 247, 247, 1); background: rgba(247, 247, 247, 1);
} }
.avatar { .avatar {
width: 120px; width: 120px;
height: 120px; height: 120px;
display: block; display: block;
} }
.getcode, .getcode,
.getphonecode { .getphonecode {
position: relative; position: relative;
} }
.getcode>.code { .getcode > .code {
/*margin: 400px auto;*/ /*margin: 400px auto;*/
width: 68px; width: 68px;
height: 32px; height: 32px;
/*border: 1px solid red;*/ /*border: 1px solid red;*/
position: absolute; position: absolute;
top: 0; top: 0;
left: 330px; left: 330px;
} }
.getphonecode>.phonecode { .getphonecode > .phonecode {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: rgba(51, 136, 255, 1); color: rgba(51, 136, 255, 1);
position: absolute; position: absolute;
top: 13px; top: 13px;
left: 400px; left: 400px;
} }
.else .red { .else .red {
color: #FF6161; color: #ff6161;
font-size: 14px; font-size: 14px;
} }
.perfect-head { .perfect-head {
width: 9px; width: 9px;
margin-top: 66px; margin-top: 66px;
margin-bottom: 37px; margin-bottom: 37px;
} }
.perfect-head>div>text { .perfect-head > div > text {
font-weight: bold; font-weight: bold;
} }
.result { .result {
width: 100%; width: 100%;
height: 300px height: 300px;
} }
.result h4 { .result h4 {
font-size: 30px; font-size: 30px;
font-weight: 600; font-weight: 600;
color: rgba(75, 193, 103, 1); color: rgba(75, 193, 103, 1);
margin-top: 100px; margin-top: 100px;
margin-bottom: 20px; margin-bottom: 20px;
} }
.result h5 { .result h5 {
font-size: 18px; font-size: 18px;
font-weight: 400; font-weight: 400;
color: rgba(128, 128, 128, 1); color: rgba(128, 128, 128, 1);
line-height: 30px; line-height: 30px;
text-align: center; text-align: center;
} }
.othercontent>div { .othercontent > div {
background: #fff; background: #fff;
} }
.margin-left { .margin-left {
margin-left: 30px; margin-left: 30px;
} }
</style> </style>
<template> <template>
<div class="userDetail"> <div class="userDetail">
<div class="content-head"> <div class="content-head">
<dataBreadcrumb :breads="breads"></dataBreadcrumb> <dataBreadcrumb :breads="breads"></dataBreadcrumb>
<h3>查看</h3> <h3>查看</h3>
<div>查看基本信息、企业资质文件</div> <div>查看基本信息、企业资质文件</div>
</div> </div>
<div class="detail-list"> <companyDetail></companyDetail>
<div> <div class="bottomButton">
<h5>基本信息</h5> <el-button @click="edit">编辑</el-button>
<ul class="flex"> </div>
<li> </div>
<div>单位名称</div>
<div>{{detail.companyName}}</div>
</li>
<li>
<div>注册角色</div>
<div>{{detail.type=="1"?"采购商":"供应商"}}</div>
</li>
<li>
<div>法人姓名</div>
<div>{{detail.legalPersonName}}</div>
</li>
<li>
<div>法人电话</div>
<div>{{detail.legalPersonPhone}}</div>
</li>
<li>
<div>统一社会信用代码</div>
<div>{{detail.socialCode}}</div>
</li>
<li>
<div>行政区域 </div>
<div>{{detail.companyName}}</div>
</li>
<li>
<div>单位性质</div>
<div>{{detail.companyNature}}</div>
</li>
<li>
<div>单位所在地</div>
<div>{{detail.location}}</div>
</li>
<li>
<div>行业类型</div>
<div>222</div>
</li>
<li>
<div>开户银行名称</div>
<div>{{detail.bankName}}</div>
</li>
<li>
<div>结算账户</div>
<div>{{detail.bankAccount}}</div>
</li>
<li>
<div>结算账户名</div>
<div>{{detail.bankName}}</div>
</li>
<li>
<div>注册资本(万元)</div>
<div>{{detail.registeredCapital}}</div>
</li>
<li>
<div>联系地址</div>
<div>{{detail.contactAddress}}</div>
</li>
<li>
<div>管理员姓名</div>
<div>{{detail.companyName}}</div>
</li>
<li>
<div> 手机号 </div>
<div>{{detail.legalPersonPhone}}</div>
</li>
<li>
<div> 身份证 </div>
<div>222</div>
</li>
<li>
<div>电子邮箱 </div>
<div>{{detail.companyName}}</div>
</li>
</ul>
<div class="detail-item">
<div>经营范围</div>
<div>一般项目:技术服务,技术开发</div>
</div>
<div class="detail-item">
<div>法人身份证正反面</div>
<el-image v-for="(item,index) in imglist" :src="item.src" :key="index" style="margin-right:20px"></el-image>
</div>
<div class="detail-item">
<div>三证合一扫描件</div>
<el-image v-for="(item,index) in imglist" :src="item.src" :key="index" style="margin-right:20px"></el-image>
</div>
<div class="detail-item">
<div>其他资料</div>
<div class="flex-between pdf">
<div>pdf文件</div>
<div>预览</div>
<div>下载</div>
</div>
</div>
</div>
</div>
<div class="operation">
<button @click="edit">编辑</button>
</div>
</div>
</template> </template>
<script> <script>
import { import companyDetail from '@components/detail/companyDetail.vue';
companyDetail import dataBreadcrumb from '@components/dataBreadcrumb.vue';
} from '@api/common/list' export default {
import dataBreadcrumb from '@components/dataBreadcrumb.vue' components: {
export default { dataBreadcrumb,
components: { companyDetail
dataBreadcrumb },
}, data() {
data() { return {
return { breads: ['查看基本信息', '企业资质文件']
detail: "", };
breads: ['查看基本信息', '企业资质文件'], },
informationList: [{ methods: {
title: '单位名称', edit() {
message: '腾讯' this.$router.push('/purchaser/organization/informationEdit');
}, { }
title: '注册角色', },
message: '采购商' created() {}
}, { };
title: '法人姓名',
message: '谢墩满'
}, {
title: '法人电话',
message: '1784574567'
}, {
title: '统一社会信用代码',
message: '91330104MA27YU1X0K'
}, {
title: '行政区域',
message: '浙江省 杭州市 滨江区'
}, {
title: '单位性质',
message: '有限责任公司'
}, {
title: '单位所在地',
message: '浙江 温州'
}, {
title: '行业类型',
message: '娱乐业'
}, {
title: '开户银行名称',
message: '农行'
}, {
title: '结算账号',
message: '34567567856789'
}, {
title: '结算账户名',
message: '谢天'
}, {
title: '注册资本(万元)',
message: '100'
}, {
title: '联系地址',
message: '浙江温州'
}, {
title: '管理员姓名',
message: '谢'
}, {
title: '手机号',
message: '18957015590'
}, {
title: '身份证',
message: '456789056789078'
}, {
title: '电子邮箱',
message: '34567890@qq.com'
}],
imglist: [{
src: require('@static/images/img.png')
}, {
src: require('@static/images/img.png')
}]
}
},
methods: {
edit() {
this.$router.push('/purchaser/organization/informationEdit')
},
async getcompanyDetail() {
try {
let companyId = localStorage.getItem("companyId")
const {
data,
code
} = await companyDetail(companyId)
if (code === 200) {
this.detail = data
}
} catch (e) {
console.log(e)
}
}
},
created() {
this.getcompanyDetail()
}
}
</script> </script>
<style scoped> <style scoped>
.detail-list>div>ul>li {
margin-right: 150px;
margin-bottom: 50px;
width: 180px
}
.detail-list>div>ul {
flex-wrap: wrap;
margin-left: 30px;
margin-top: 20px;
}
.detail-head {
margin-left: 30px;
padding-top: 10px;
}
.detail-head>h3 {
font-weight: bold;
margin-top: 10px;
margin-bottom: 10px;
}
.detail-list {
box-sizing: border-box;
padding-top: 20px;
background-color: #F0F2F5;
margin-top: 10px;
}
.detail-list>div {
background-color: #FFFF;
padding-bottom: 20px;
}
.detail-list h5 {
font-weight: bold;
height: 50px;
line-height: 50px;
border-bottom: 1px solid #F0F2F5;
box-sizing: border-box;
padding-left: 30px;
}
.detail-item {
margin-left: 30px;
margin-bottom: 30px;
}
.detail-item>div:first-child {
margin-bottom: 10px;
}
.pdf {
width: 170px
}
.pdf>div:nth-child(2),
.pdf>div:last-child {
width: 50px;
height: 30px;
text-align: center;
line-height: 30px;
border-radius: 10px;
border: 1px solid #000
}
.operation {
margin-bottom: 10px;
display: flex;
justify-content: flex-end;
}
.operation>button {
width: 50px;
height: 30px;
border-radius: 2px;
background: #fff;
border: 1px solid #999;
}
.flex-button>button {
margin-left: 10px;
}
.flex-button>button:last-child {
background: #28e;
color: #fff
}
</style> </style>
...@@ -18,8 +18,8 @@ export function getSearchString(key) { ...@@ -18,8 +18,8 @@ export function getSearchString(key) {
export function down(url) { export function down(url) {
window.open(url) window.open(url)
} }
// export let requestUrl = 'http://192.168.3.35:8085'; export let requestUrl = 'http://192.168.3.35:8085';
export let requestUrl = 'http://60.205.251.80:8082'; // export let requestUrl = 'http://60.205.251.80:8082';
// export let homeUrl = 'http://localhost:3000'; // export let homeUrl = 'http://localhost:3000';
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment