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

539 lines
18 KiB

<template>
<div class="body">
<p class="title">资产挂牌</p>
<div class="listing_title">基础信息</div>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm1" label-width="150px" class="ruleForm" label-position="left">
<el-form-item label="上传资产图片" prop="serial_img" >
<p class="listing_tips">上传高清质量资产正面图有助快速通过审核方便购买方了解资产图片尺寸建议为800px * 800px</p>
<div class="listing_upload">
<el-upload
class="avatar-uploader"
:action="action"
:show-file-list="false"
:on-change="fileChange"
:on-success="(res)=>{handleAvatarSuccess(0,res,index)}" v-for="(item,index) in 5" :key="index">
<img v-if="ruleForm.serial_img[index]" :src="ruleForm.serial_img[index]" class="avatar">
<template v-else>
<i class="el-icon-plus avatar-uploader-icon"></i>
<p class="avatar_p">添加上传图片</p>
</template>
</el-upload>
</div>
</el-form-item>
<el-form-item label="资产名称" prop="serial_name" >
<el-input v-model="ruleForm.serial_name" placeholder="最多允许输入30个汉字(60字符)" class="serial_name"></el-input>
</el-form-item>
<el-form-item label="资产类型" prop="asset_type_id" >
<p class="listing_tips">请确认或修改资产类型</p>
<el-cascader filterable :props="props" :options="options" class="serial_name" v-model="ruleForm.asset_type_id"></el-cascader>
</el-form-item>
<el-form-item label="资产所在地" prop="province">
<el-select placeholder="选择具体省份" clearable filterable v-model="ruleForm.province" class="select_city" @change="changeDate(0)">
<el-option
v-for="item in province"
:key="item.id"
:label="item.name"
:value="item.province_code" >
</el-option>
</el-select>
<el-select placeholder="选择具体城市" clearable filterable v-model="ruleForm.city" class="select_city" @change="changeDate(1)">
<el-option
v-for="item in city"
:key="item.id"
:label="item.name"
:value="item.city_code" >
</el-option>
</el-select>
<el-select placeholder="选择具体区镇" clearable filterable v-model="ruleForm.area" class="select_city">
<el-option
v-for="item in area"
:key="item.id"
:label="item.name"
:value="item.area_code">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="资产基本情况" prop="serial_content" >
<div class="listing_title1">
<p class="listing_tips">请确认或修改资产类型</p>
<div class="listing_title1_right">
<button class="listing_button">下载模板</button>
<button class="listing_button">上传文件</button>
</div>
</div>
<mavon-editor
v-model="ruleForm.serial_content"
:subfield="false" ref="md" :boxShadow="false"
@imgAdd="$imgAdd" @change="change"
class="listing_editor"/>
<div class="upload_file">
<p class="listing_tips">已上传文件:</p>
</div>
</el-form-item>
<el-form-item label="其他资产材料" :prop="ruleForm.buy_mode==2?'serial_img' :'' " >
<p class="listing_tips">请上传与资产相关的证明材料(线上交易请在此处上传相关资产)</p>
<button class="listing_button">上传文件</button>
</el-form-item>
<el-form-item label="内部决策情况" prop="decision" >
<el-radio v-model="ruleForm.decision" :label="1">个人同意</el-radio>
<el-radio v-model="ruleForm.decision" :label="2">股东会决议</el-radio>
<el-radio v-model="ruleForm.decision" :label="3">董事会决议</el-radio>
<el-radio v-model="ruleForm.decision" :label="4">总经理办公会决议</el-radio>
<el-radio v-model="ruleForm.decision" :label="5">其他</el-radio>
<el-input v-model="ruleForm.decision_case" v-if="ruleForm.decision==5" placeholder="请输入其他情况" class="listing_input"></el-input>
</el-form-item>
<el-form-item label="挂牌时长" prop="cartellino_time_id" >
<el-select placeholder="选择挂牌时长" clearable filterable v-model="ruleForm.cartellino_time_id" class="select_city1">
<el-option
v-for="item in price"
:key="item.id"
:label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<div class="listing_title">交易信息</div>
<el-form-item label="挂牌类型" prop="cartellino_type" >
<el-radio v-model="ruleForm.cartellino_type" :label="1">协议</el-radio>
<el-radio v-model="ruleForm.cartellino_type" :label="2">拍卖</el-radio>
</el-form-item>
<el-form-item label="资产单价" prop="price" v-if="ruleForm.cartellino_type==1">
<el-input v-model="ruleForm.price" onkeyup="value=value.replace(/[^\d]/g,'')" placeholder="请输入单个资产的价格" class="listing_input"></el-input>
</el-form-item>
<div class="listing_flex">
<el-form-item label="起拍单价" prop="start_auction_money" v-if="ruleForm.cartellino_type==2">
<el-input v-model="ruleForm.start_auction_money" onkeyup="value=value.replace(/[^\d]/g,'')" placeholder="请输入起拍单价" class="listing_input"></el-input>
</el-form-item>
<el-form-item label="竞价金额" prop="bidding_money" v-if="ruleForm.cartellino_type==2">
<el-input v-model="ruleForm.bidding_money" onkeyup="value=value.replace(/[^\d]/g,'')" placeholder="请输入单次竞价时需要增加的金额" class="listing_input"></el-input>
</el-form-item>
</div>
<div class="listing_flex">
<el-form-item label="资产单位" prop="asset_unit" >
<el-input v-model="ruleForm.asset_unit" placeholder="请输入单个资产单位的量词" class="listing_input"></el-input>
</el-form-item>
<el-form-item label="挂牌数量" prop="count">
<el-input v-model="ruleForm.count" onkeyup="value=value.replace(/[^\d]/g,'')" placeholder="请输入需要挂牌资产的数量" class="listing_input"></el-input>
</el-form-item>
</div>
<el-form-item label="起购数量" prop="pay_count">
<el-input v-model="ruleForm.pay_count" onkeyup="value=value.replace(/[^\d]/g,'')" placeholder="请输入购买时单次至少购买数量" class="listing_input"></el-input>
</el-form-item>
<el-form-item label="付款方式" prop="pay_mode" >
<el-radio v-model="ruleForm.pay_mode" :label="1">网银支付</el-radio>
<el-radio v-model="ruleForm.pay_mode" :label="2">对公转账</el-radio>
<span class="listing_tips">交易金额大于200万时系统自动选择对公转账</span>
</el-form-item>
<el-form-item label="交易方式" prop="buy_mode" >
<el-radio v-model="ruleForm.buy_mode" :label="1">线下交易</el-radio>
<el-radio v-model="ruleForm.buy_mode" :label="2">线上交易</el-radio>
<span class="listing_tips">选取线上交易请在基础信息内上传资产数据</span>
</el-form-item>
<el-form-item label="交付方式" prop="goods_mode">
<el-radio v-model="ruleForm.goods_mode" :label="1">现场交付</el-radio>
<el-radio v-model="ruleForm.goods_mode" :label="2">物流配送</el-radio>
<el-input v-model="ruleForm.express_money" v-if="ruleForm.goods_mode==2" placeholder="请输入物流配送金额" class="listing_input"></el-input>
</el-form-item>
<div class="listing_title">挂牌费用说明</div>
<el-form-item label="交付方式" prop="serial_img">
<el-radio v-model="ruleForm.pay_type" :label="1">支付宝支付</el-radio>
<el-radio v-model="ruleForm.pay_type" :label="2">网银支付</el-radio>
</el-form-item>
</el-form>
<div class="footer">
<button class="submit" @click="submit">提交资料</button>
</div>
</div>
</template>
<script>
import { mavonEditor } from 'mavon-editor'
import 'mavon-editor/dist/css/index.css'
import {get_asset_type,getProvince,getCity,getArea,cartellino,getPrice} from '../../../api/index'
export default {
data(){
return{
host:'http://wenhua.xingtongworld.com',
action:'http://wenhua.xingtongworld.com/api/Index/uploadimg',
query:{
id:'',
// name:''
},
options:[],
props: {
value:'id',
label:'name',
leaf:'is_son',
emitPath:false
},
province:[],
city:[],
area:[],
price:[],
ruleForm:{
serial_name:'',
serial_img:[],
asset_type_id:'',
province:null,
city:'',
area:'',
serial_content:'',
else_serial_file:[],
decision:1,
decision_case:'',
cartellino_time_id:'',
cartellino_type:1,
price:'',
asset_unit:'',
count:'',
pay_count:'',
pay_mode:1,
buy_mode:1,
goods_mode:1,
express_money:'',
start_auction_money:'',
bidding_money:'',
pay_type:1,
},
rules:{
serial_img: [
{ required: true, message: '请上传资产图片', trigger: 'blur' },
],
serial_name: [
{ required: true, message: '请输入资产名称', trigger: 'blur' },
],
asset_type_id: [
{ required: true, message: '请选择资产类型', trigger: 'blur' },
],
province: [
{ required: true, message: '请选择资产所在地(省)', trigger: 'blur' },
],
serial_content: [
{ required: true, message: '请输入资产基本情况', trigger: 'blur' },
],
else_serial_file: [
{ required: true, message: '请上传其他资产材料', trigger: 'blur' },
],
decision: [
{ required: true, message: '请选择内部决策情况', trigger: 'blur' },
],
cartellino_time_id: [
{ required: true, message: '请选择挂牌时长', trigger: 'blur' },
],
cartellino_type: [
{ required: true, message: '请选择挂牌类型', trigger: 'blur' },
],
price: [
{ required: true, message: '请输入资产单价', trigger: 'blur' },
],
asset_unit: [
{ required: true, message: '请输入资产单位', trigger: 'blur' },
],
count: [
{ required: true, message: '请输入挂牌数量', trigger: 'blur' },
],
pay_count: [
{ required: true, message: '请输入购买时单次至少购买数量', trigger: 'blur' },
],
pay_mode: [
{ required: true, message: '请选择付款方式', trigger: 'blur' },
],
buy_mode: [
{ required: true, message: '请选择交易方式', trigger: 'blur' },
],
goods_mode: [
{ required: true, message: '请选择交付方式', trigger: 'blur' },
],
pay_type: [
{ required: true, message: '请选择支付方式', trigger: 'blur' },
],
start_auction_money: [
{ required: true, message: '请输入起拍单价', trigger: 'blur' },
],
bidding_money: [
{ required: true, message: '请输入竞价金额', trigger: 'blur' },
],
},
}
},
components: {
mavonEditor
},
created(){
this.get_asset_type();
this.getProvince();
this.getPrice()
},
methods:{
getPrice(){
getPrice().then(res => {
console.info(res)
if(res.code==100){
this.price=res.data
}
})
},
changeDate(type){
console.info(type)
if(type==0){
this.getCity()
}else if(type==1){
this.getArea()
}
},
getProvince(){
getProvince().then(res => {
console.info(res)
if(res.code==100){
this.province=res.list
}
})
},
getCity(){
let data={
code:this.ruleForm.province
}
getCity(data).then(res=>{
console.info(res)
if(res.code==100){
this.city=res.list
}
})
},
getArea(){
let data={
code:this.ruleForm.city
}
getArea(data).then(res=>{
console.info(res)
if(res.code==100){
this.area=res.list
}
})
},
get_asset_type(){
get_asset_type().then(res=>{
console.info(res)
if(res.code==100){
this.options=res.data
}
})
},
submit(){
console.info(this.ruleForm)
this.$refs["ruleForm1"].validate((valid) => {
if(valid){
cartellino(this.ruleForm).then(res=>{
console.info(res)
if(res.code==100){
this.$message.success('上传成功!请等待审核~');
}else{
this.$message.error(res.msg);
}
})
}
})
},
// 将图片上传到服务器,返回地址替换到md中
$imgAdd(pos, $file){
var formdata = new FormData();
formdata.append('file', $file);
// 这里没有服务器供大家尝试,可将下面上传接口替换为你自己的服务器接口
this.$axios({
url: this.action,
method: 'post',
data: formdata,
headers: { 'Content-Type': 'multipart/form-data' },
}).then((url) => {
this.$refs.md.$img2Url(pos, url);
})
},
change(value, render){
// render 为 markdown 解析后的结果
this.html = render;
},
fileChange(file){
const typeArr = ['image/png', 'image/gif', 'image/jpeg', 'image/jpg'];
const isJPG = typeArr.indexOf(file.raw.type) !== -1;
const isLt3M = file.size / 1024 / 1024 < 10;
if (!isJPG) {
this.$message.error('只能是图片!');
this.$refs.upload.clearFiles();
return;
}
if (!isLt3M) {
this.$message.error('上传图片大小不能超过 10MB!');
this.$refs.upload.clearFiles();
return;
}
},
overstep(){
this.$message.error('只能上传一张图片!');
},
handleAvatarSuccess(type,res,index) {
console.info(res)
if(res.code == 1){
let url=this.host + res.data.img_url;
if(type==0){
console.info(index)
if(this.ruleForm.serial_img[index]){
// this.ruleForm.serial_img[index]=url
this.$set(this.ruleForm.serial_img,index,url)
}else{
this.ruleForm.serial_img.push(url)
}
console.info(this.ruleForm.serial_img)
}
}
}
}
}
</script>
<style scoped>
.body{
margin-top: 15px;
}
.title{
color: #333333;
font-size: 18px;
margin-bottom: 15px;
}
.listing_title1{
display: flex;
align-items: center;
width: 800px;
justify-content: space-between;
margin-bottom: 15px;
}
.listing_title{
background-color: #C94D4D;
color: white;
font-size: 16px;
height: 40px;
line-height: 40px;
padding-left: 20px;
}
.upload_file{
margin: 15px 0;
}
.listing_flex{
display: flex;
}
.listing_editor{
min-height: 500px;
width: 800px;
border: 1px solid #D1D1D1;
}
.listing_title1_right{
width: 160px;
display: flex;
justify-content: space-between;
}
.listing_button{
width: 70px;
height: 32px;
border-radius: 5px;
border: 1px solid #E7B0B0;
background: #F3D8D8;
font-size: 14px;
color: rgba(201, 76, 76, 0.898039215686275);
}
.listing_upload{
display: flex;
margin-top: 10px;
}
.select_type{
width: 800px;
height: 50px;
color: #7F7F7F;
padding-left: 15px;
line-height: 50px;
background-color: #FDF8F8;
border: 1px solid #F3D8D8;
margin-bottom: 10px;
}
.listing_tips{
font-size: 14px;
color: rgba(127, 127, 127, 0.898039215686275);
}
.listing_tips:hover{
color: #D85E5E;
}
.avatar_p{
font-size: 14px;
color: #7F7F7F;
}
.serial_name{
width: 800px;
}
.select_city{
width: 200px;
margin-right: 15px;
}
.select_city1{
width: 400px;
}
.listing_input{
width: 300px;
}
.footer{
text-align: center;
margin-top: 50px;
}
.submit{
width: 340px;
height: 40px;
background: -moz-linear-gradient(top, #F8D89F 0%, #D98282 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F8D89F), color-stop(100%,#D98282));
background: -webkit-linear-gradient(top, #F8D89F 0%,#D98282 100%);
background: -o-linear-gradient(top, #F8D89F 0%,#D98282 100%);
background: -ms-linear-gradient(top, #F8D89F 0%,#D98282 100%);
background: linear-gradient(to bottom, #F8D89F 0%,#D98282 100%);
font-size: 14px;
color: #FFFFFF;
border: none;
margin-bottom: 10px;
}
.avatar-uploader{
margin-right: 15px;
}
.ruleForm>>>.el-form-item__label{
padding-left: 20px;
text-align: right;
}
.avatar-uploader >>> .el-upload--text{
width: 120px;
height: 120px;
/* line-height: 120px; */
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409EFF;
}
.avatar-uploader-icon {
font-size: 40px;
color: #8c939d;
width: 40px;
height: 40px;
line-height: 40px;
text-align: center;
color: #CB5151;
}
.avatar-uploader img{
width: 120px;
height: 120px;
line-height: 120px;
}
</style>