ltlzx 4 years ago
parent
commit
534756c8e5
  1. 6
      src/components/page/ClassificationDetails.vue
  2. 687
      src/components/page/Hoster/Listing.bak
  3. 4
      src/components/page/Hoster/Listing.vue
  4. 4
      src/components/page/index.vue
  5. 5
      src/utils/request.js

6
src/components/page/ClassificationDetails.vue

@ -157,7 +157,10 @@
</template> </template>
<script> <script>
import {assetClassInfo,getProvince,getCity,getArea,} from '../../api/index' import {assetClassInfo,getProvince,getCity,getArea,} from '../../api/index'
<<<<<<< HEAD
import bus from '../common/bus' import bus from '../common/bus'
=======
>>>>>>> 4d64f54053961759a3b806da4fe29546dd47eb26
export default { export default {
data(){ data(){
return{ return{
@ -182,10 +185,13 @@ export default {
} }
}, },
created(){ created(){
<<<<<<< HEAD
console.info(this.$route.query) console.info(this.$route.query)
bus.$on('getDate', (e) => { bus.$on('getDate', (e) => {
this.getData() this.getData()
}) })
=======
>>>>>>> 4d64f54053961759a3b806da4fe29546dd47eb26
this.getData() this.getData()
this.getProvince(); this.getProvince();
}, },

687
src/components/page/Hoster/Listing.bak

@ -0,0 +1,687 @@
<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" @submit.native.prevent>
<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" ref="cascaderUnit" :options="options" class="serial_name" v-model="ruleForm.asset_type_id" @change="changeType"></el-cascader>
</el-form-item>
<el-form-item label="标的其他类型" prop="asset_type_name" v-if="isTypeOther">
<el-input v-model="ruleForm.asset_type_name" placeholder="请输入标的其他类型" class="listing_input"></el-input>
</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">
<span></span>
<!-- <a class="listing_button" :href="host+'/upload/doc/2021/10/163452699435510739.doc'">下载模板</a> -->
<el-upload
class="upload-demo"
:action="action1"
:show-file-list="false"
:on-error="handleAvatarError"
list-type="picture"
:on-success="(res,file,index)=>{handleAvatarSuccess1(res,file,'asset_file')}"
>
<button class="listing_button">上传文件</button>
</el-upload>
</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">
<div class="listing_tips1">
已上传文件:
<div class="table_right_item" v-if="ruleForm.asset_file">
<span >{{file_name.asset_file}}</span>
<i class="el-icon-close" @click="deleteUrl(item,index,index1)"></i>
</div>
</div>
</div>
</el-form-item>
<el-form-item label="其他标的材料" :prop="ruleForm.buy_mode==2?'serial_img' :'' " >
<p class="listing_tips">请上传与标的相关的证明材料(线上交易请在此处上传相关资产)</p>
<el-upload
class="upload-demo"
:action="action1"
:show-file-list="false"
:on-error="handleAvatarError"
list-type="picture"
:on-success="(res,file,index)=>{handleAvatarSuccess1(res,file,'else_serial_file')}"
>
<button class="listing_button">上传文件</button>
</el-upload>
<div class="upload_file" v-if="ruleForm.else_serial_file!=''">
<div class="listing_tips1">
已上传文件:
<div class="table_right_item" >
<span >{{file_name.else_serial_file}}</span>
<i class="el-icon-close" @click="deleteUrl(item,index,index1)"></i>
</div>
</div>
</div>
</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-checkbox-group v-model="ruleForm.pay_type">
<el-checkbox :label="1">线下转账</el-checkbox>
<el-checkbox :label="2">网银支付</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-form>
<div class="footer" >
<el-button class="submit" @click="submit" v-if="query.type!=0" :loading="loading">提交资料</el-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,assetInfo,update_cartellino,uploadimg } from '../../../api/index'
export default {
data(){
return{
host:'http://wenhua.xingtongworld.com',
action:'http://wenhua.xingtongworld.com/api/Index/uploadimg',
action1:'http://wenhua.xingtongworld.com/api/Index/uploadFile',
query:{
id:'',
type:1
},
isTypeOther:false,
options:[],
props: {
value:'id',
label:'name',
leaf:'is_son',
emitPath:false
},
loading: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],
asset_file:'',
asset_type_name:'',
},
file_name:{
asset_file:'',
else_serial_file:'',
},
rules:{
serial_img: [
{ required: true, message: '请上传标的图片', trigger: 'blur' },
],
asset_type_name: [
{ 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(){
if(this.$route.query.id){
this.query=this.$route.query
this.getAssetInfo()
}
this.get_asset_type();
this.getProvince();
this.getPrice()
},
methods:{
changeType(val,opt){
const checkedNodes = this.$refs['cascaderUnit'].getCheckedNodes()
console.log(checkedNodes) // 获取当前点击的节点
if (checkedNodes[0].data.type==1) {
this.isTypeOther=true
}else{
this.isTypeOther=false
}
},
handleAvatarSuccess1(res,file,index){
console.info(file)
console.info(res)
if(res.code==1){
let contract=this.host+res.data.img_url;
// this.ruleForm[index]=contract
this.$set(this.ruleForm, index, contract);
this.$set(this.file_name, index, file.name);
console.info(this.ruleForm)
this.$message.success('文件上传成功!');
}else{
this.$message.error(res.msg);
}
},
handleAvatarError(){
this.$message.error('文件上传失败!');
},
//获取资产详情
getAssetInfo(){
assetInfo(this.query).then(res=>{
console.info(res)
if(res.code==100){
res.data.province=parseInt(res.data.province)
res.data.city=parseInt(res.data.city)
res.data.area=parseInt(res.data.area)
res.data.pay_type=[parseInt(res.data.pay_type)]
this.ruleForm=res.data
this.getCity()
this.getArea()
}else{
this.$message.error(res.msg)
}
})
},
getPrice(){
getPrice().then(res => {
console.info(res)
if(res.code==100){
this.price=res.data
}
})
},
changeDate(type){
if(type==0){
this.getCity()
}else if(type==1){
this.getArea()
}
},
getProvince(){
getProvince().then(res => {
if(res.code==100){
this.province=res.list
}
})
},
getCity(){
let data={
code:this.ruleForm.province
}
getCity(data).then(res=>{
if(res.code==100){
this.city=res.list
}
})
},
getArea(){
let data={
code:this.ruleForm.city
}
getArea(data).then(res=>{
if(res.code==100){
this.area=res.list
}
})
},
get_asset_type(){
get_asset_type().then(res=>{
if(res.code==100){
this.options=res.data
}
})
},
submit(){
console.info(this.ruleForm)
this.$refs["ruleForm1"].validate((valid) => {
if(valid){
this.loading=true
if(this.query.type==2){
this.update_cartellino()
}else{
this.cartellino()
}
}
})
},
//资产挂牌
cartellino(){
cartellino(this.ruleForm).then(res=>{
console.info(res)
this.loading=false
if(res.code==100){
this.$message.success('上传成功!请等待审核~');
this.$router.push({path:'/examine'});
}else{
this.$message.error(res.msg);
}
})
},
//修改资产挂牌
update_cartellino(){
update_cartellino(this.ruleForm).then(res=>{
console.info(res)
this.loading=false
if(res.code==100){
this.$message.success('修改成功!请等待审核~');
this.$router.push({path:'/examine'});
}else{
this.$message.error(res.msg);
}
})
},
// 将图片上传到服务器,返回地址替换到md中
$imgAdd(pos, $file){
var formdata = new FormData();
formdata.append('file', $file);
// 这里没有服务器供大家尝试,可将下面上传接口替换为你自己的服务器接口
// let data =
uploadimg(formdata).then(res=>{
if (res.code==1) {
let url=this.host + res.data.img_url;
this.$refs.md.$img2Url(pos, url);
}
})
// 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{
display: inline-block;
width: 70px;
height: 32px;
border-radius: 5px;
border: 1px solid #E7B0B0;
background: #F3D8D8;
font-size: 14px;
color: rgba(201, 76, 76, 0.898039215686275);
text-align: center;
cursor: pointer;
}
.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_tips1,listing_tips{
font-size: 14px;
color: rgba(127, 127, 127, 0.898039215686275);
}
.listing_tips1{
display: flex;
align-items: center;
}
.table_right_item{
width: 250px;
display: flex;
align-items: center;
color: #333333;
font-size: 14px;
justify-content: space-between;
}
.table_right_item>span{
cursor: pointer;
}
.table_right_item:hover{
color: #D85E5E;
}
.table_right_item>i{
cursor: pointer;
}
.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>

4
src/components/page/Hoster/Listing.vue

@ -722,7 +722,11 @@ export default {
// if (this.ruleForm.payment_document=='') { // if (this.ruleForm.payment_document=='') {
// this.editVisible=true // this.editVisible=true
// }else{ // }else{
<<<<<<< HEAD
this.loading=true this.loading=true
=======
// this.loading=true
>>>>>>> 4d64f54053961759a3b806da4fe29546dd47eb26
if(this.query.type==2){ if(this.query.type==2){
this.update_cartellino() this.update_cartellino()
}else{ }else{

4
src/components/page/index.vue

@ -457,7 +457,11 @@ export default {
cursor: pointer; cursor: pointer;
margin-right: 14px; margin-right: 14px;
} }
<<<<<<< HEAD
.tabs_item:nth-child(n+3){ .tabs_item:nth-child(n+3){
=======
.tabs_item:nth-child(3n+3){
>>>>>>> 4d64f54053961759a3b806da4fe29546dd47eb26
margin-right: 0; margin-right: 0;
} }
.tabs_item_img{ .tabs_item_img{

5
src/utils/request.js

@ -30,8 +30,13 @@ service.interceptors.response.use(
response => { response => {
if (response.data.code === 303) { if (response.data.code === 303) {
localStorage.removeItem('login_info') localStorage.removeItem('login_info')
<<<<<<< HEAD
location.reload() location.reload()
router.push('/index') router.push('/index')
=======
router.push('/index')
location.reload()
>>>>>>> 4d64f54053961759a3b806da4fe29546dd47eb26
// location.reload() // location.reload()
// MessageBox.confirm('登录已超时,请重新登录', '退出', { // MessageBox.confirm('登录已超时,请重新登录', '退出', {
// confirmButtonText: '登录', // confirmButtonText: '登录',

Loading…
Cancel
Save