初始化项目

This commit is contained in:
18500206848
2024-02-02 15:04:47 +08:00
parent 12664d0204
commit 7aec486f06
718 changed files with 152280 additions and 1 deletions

View File

@@ -0,0 +1,232 @@
<template>
<div v-loading="loading">
<el-row>
<el-col :sm="24" :md="{ span: 12, offset: 6 }">
<el-form
:model="form"
ref="form"
class="content"
label-position="right"
label-width="140px"
:rules="rules"
>
<el-form-item label="企业名称" prop="companyName">
<el-input
maxlength="50"
placeholder="请输入"
v-model.trim="form.companyName"
></el-input>
</el-form-item>
<el-form-item label="统一社会信用代码" prop="companyTid">
<el-input
placeholder="请输入18位有效社会统一信用代码"
v-model.trim="form.companyTid"
></el-input>
</el-form-item>
<el-form-item label="所在地区" prop="cityId">
<jl-city-cascader
:disabled="disabled"
v-model="form.cityId"
></jl-city-cascader>
</el-form-item>
<el-form-item label="详细地址" prop="companyAddress">
<el-input
placeholder="请输入"
v-model.trim="form.companyAddress"
></el-input>
</el-form-item>
<el-form-item label="所属行业" prop="tradeId">
<el-select placeholder="请选择" v-model="form.tradeId">
<el-option
v-for="item in tradeDic"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="企业营业执照:" prop="authUrlId">
<el-upload
:action="putFile"
:show-file-list="false"
:on-progress="
() => {
uploading = true;
}
"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
:http-request="httpRequest"
>
<div v-loading="uploading">
<img
class="companyInfo-upload-image"
:src="form.authUrlId || imageUrl"
/>
</div>
<!-- <div class="companyInfo-upload-tip" slot="tip">
请上传营业执照
</div> -->
</el-upload>
<p class="uploadImgP">上传图片大小限制2M以内</p>
</el-form-item>
<el-form-item>
<el-button @click="next" type="primary">下一步</el-button>
</el-form-item>
</el-form>
</el-col>
</el-row>
</div>
</template>
<script>
import { putFile } from "@/api/resource/oss";
import { getTradeDic } from "@/api/manage/trade";
import { checkIdentity } from "@/api/tenant/auth";
import lodash from "lodash";
import httpRequest from "./httpRequest";
const accept = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"];
export default {
props: {
value: Object,
},
data() {
const validateId = (rule, value, callback) => {
checkIdentity(value)
.then(() => {
callback();
})
.catch((err) => {
callback(err);
this.$message.closeAll();
});
};
return {
uploading: false,
putFile,
imageUrl: "/img/license.png",
rules: {
companyName: [
{ required: true, message: "请输入企业名称", trigger: "blur" },
],
companyTid: [
{
required: true,
message: "请输入统一社会信用代码",
trigger: "blur",
},
{
max: 18,
min: 18,
trigger: "blur",
message: "请输入18位有效社会统一信用代码",
},
{
trigger: "blur",
validator: validateId,
},
],
cityId: [
{
required: true,
message: "请选择所在地区",
trigger: "blur",
},
],
companyAddress: [
{
required: true,
message: "请输入详细地址",
trigger: "blur",
},
],
tradeId: [
{
required: true,
message: "请选择所属行业",
trigger: "blur",
},
],
authUrlId: [
{
required: true,
message: "请上传营业执照",
trigger: "change",
},
],
},
form: lodash.clone(this.value || {}),
tradeDic: [],
};
},
created() {
this.init();
},
methods: {
init() {
getTradeDic(true).then((res) => {
this.tradeDic = res.data.data;
});
},
next() {
this.$refs.form.validate((valid) => {
if (valid) {
this.$emit("submit", this.form);
this.$emit("input", this.form);
}
});
},
/**上传图片**/
handleAvatarSuccess(res, file) {
this.imageUrl = URL.createObjectURL(file.raw);
this.$set(this.form, "authUrlId", res.data.link);
this.uploading = false;
},
beforeAvatarUpload(file) {
const isJPG = accept.includes(file.type);
const is2M=file.size/1024/1024<2;
if (!isJPG) {
this.$message.error("图片格式不正确!");
}
if(!is2M){
this.$message.error("上传图片大小不能超过2M!");
}
return isJPG && is2M;
},
/**上传图片*/
httpRequest,
},
watch: {
value(val) {
this.form = val;
},
form: {
handler(val) {
this.$emit("input", val);
},
deep: true,
},
},
};
</script>
<style scoped>
.companyInfo-upload-image {
height: 100px;
width: 160px;
}
.companyInfo-upload-tip {
line-height: 12px;
font-size: 12px;
color: #999999;
}
.el-form-item__content{
line-height: normal;
}
.uploadImgP{
padding: 0;
margin: 0;
line-height: 18px;
}
</style>