Browse Source

运营管理

master
xiaweibo1 4 years ago
parent
commit
f3b634f6c0
  1. 97
      src/api/index.js
  2. 8
      src/components/common/dialog/DataReview/IDCard.vue
  3. 8
      src/components/common/dialog/DataReview/operatorIDCard.vue
  4. 10
      src/components/page/AccountManagement/platformSelect.vue
  5. 81
      src/components/page/OperationManagement/announcementConfiguration.vue
  6. 105
      src/components/page/OperationManagement/assetsConfigure.vue
  7. 127
      src/components/page/OperationManagement/bannerConfigure.vue
  8. 52
      src/components/page/OperationManagement/customerOpinion.vue
  9. 240
      src/components/page/OperationManagement/feedConfigure.vue

97
src/api/index.js

@ -284,6 +284,94 @@ export const getNoticeList = query => {
params: query
});
};
//获取单个通知公告
export const getNoticeFind = query => {
return request({
url: 'api/admin.Operation/getNoticeFind',
method: 'get',
params: query
});
};
//设置通知公告配置
export const setNotice = query => {
return request({
url: 'api/admin.Operation/setNotice',
method: 'post',
data: query
});
};
//修改通知公告配置
export const updateNotice = query => {
return request({
url: 'api/admin.Operation/updateNotice',
method: 'post',
data: query
});
};
//删除通知公告
export const deleteNotice = query => {
return request({
url: 'api/admin.Operation/deleteNotice',
method: 'post',
data: query
});
};
/* 运营管理 --banner配置*/
//获取banner配置
export const getBanner = query => {
return request({
url: 'api/admin.Operation/getBanner',
method: 'get',
params: query
});
};
//banner配置
export const setBanner = query => {
return request({
url: 'api/admin.Operation/setBanner',
method: 'post',
data: query
});
};
/* 运营管理 --feed配置*/
//获取feed配置
export const getFeed = query => {
return request({
url: 'api/admin.Operation/getFeed',
method: 'get',
params: query
});
};
//feed配置
export const setFeed = query => {
return request({
url: 'api/admin.Operation/setFeed',
method: 'post',
data: query
});
};
/* 运营管理 --资产推荐配置*/
//获取资产推荐配置
export const getRecommend = query => {
return request({
url: 'api/admin.Operation/getRecommend',
method: 'get',
params: query
});
};
/* 运营管理 --客户意见处理*/
//客户意见列表
export const opinionList = query => {
return request({
url: 'api/admin.Operation/opinionList',
method: 'get',
params: query
});
};
/* 平台管理 */
@ -299,14 +387,7 @@ export const getAdminlist = query => {
params: query
});
};
//设置通知公告配置
export const setNotice = query => {
return request({
url: 'api/admin.Operation/setNotice',
method: 'post',
data: query
});
};
/* 平台管理 --运营账号管理--运营角色*/
//部门名称列表

8
src/components/common/dialog/DataReview/IDCard.vue

@ -2,9 +2,9 @@
<div class="body1 body2">
<div class="idcard">
<p class="title">{{contentDatas.account_type==1?'法人身份证正面(照片面)' :'身份证正面(照片面)'}}</p>
<img :src="contentDatas.account_type==2 ? contentDatas.user_card_front :contentDatas.legal_card" class="file_img1">
<img :src="contentDatas.account_type==2 ? contentDatas.user_card_front :contentDatas.legal_card_front" class="file_img1">
<div class="img_span">
<span @click="onPreview(contentDatas.account_type==2 ? [contentDatas.user_card_backfacade] :[contentDatas.legal_card])">查看原图</span>
<span @click="onPreview(contentDatas.account_type==2 ? [contentDatas.user_card_backfacade] :[contentDatas.legal_card_front])">查看原图</span>
<el-upload
class="upload-demo"
:action="action"
@ -20,9 +20,9 @@
</div>
<div class="idcard">
<p class="title">{{contentDatas.account_type==1?'法人身份证反面(发证机构面)' :'身份证反面(发证机构面)'}}</p>
<img :src="contentDatas.account_type==2 ? contentDatas.user_card_backfacade :contentDatas.legal_card" class="file_img1">
<img :src="contentDatas.account_type==2 ? contentDatas.user_card_backfacade :contentDatas.legal_certificate" class="file_img1">
<div class="img_span">
<span @click="onPreview(contentDatas.account_type==2 ? [contentDatas.user_card_backfacade] :[contentDatas.legal_card])">查看原图</span>
<span @click="onPreview(contentDatas.account_type==2 ? [contentDatas.user_card_backfacade] :[contentDatas.legal_certificate])">查看原图</span>
<span>重新上传</span>
</div>
</div>

8
src/components/common/dialog/DataReview/operatorIDCard.vue

@ -2,9 +2,9 @@
<div class="body1 body2">
<div class="idcard">
<p class="title">经办人身份证正面(照片面)</p>
<img :src="contentDatas.operator_card" class="file_img1">
<img :src="contentDatas.operator_card_front" class="file_img1">
<div class="img_span">
<span @click="onPreview([contentDatas.operator_card] )">查看原图</span>
<span @click="onPreview([contentDatas.operator_card_front] )">查看原图</span>
<el-upload
class="upload-demo"
:action="action"
@ -20,9 +20,9 @@
</div>
<div class="idcard">
<p class="title">经办人身份证反面(发证机构面)</p>
<img :src=" contentDatas.operator_card " class="file_img1">
<img :src=" contentDatas.operator_card_backfacade " class="file_img1">
<div class="img_span">
<span @click="onPreview([contentDatas.operator_card] )">查看原图</span>
<span @click="onPreview([contentDatas.operator_card_backfacade] )">查看原图</span>
<span>重新上传</span>
</div>
</div>

10
src/components/page/AccountManagement/platformSelect.vue

@ -132,7 +132,7 @@
</span>
</el-dialog>
<whyDialog v-if="editVisible" :isshow="editVisible" :dialogID="dialogID"
:dialogType="dialogType" @MisShow="MisShow" :isexamine="false" account_type="buyer" :listDate="listDate">
:dialogType="dialogType" @MisShow="MisShow" :isexamine="false" :account_type="account_type" :listDate="listDate">
</whyDialog>
</div>
</template>
@ -165,6 +165,7 @@ export default {
enter_shop_type:0,
third_party_type:0
},
account_type:'buyer',
dialogID:'',
dialogType:'',
tableData: [],
@ -295,6 +296,13 @@ export default {
this.editVisible = true;
this.dialogID=row.id;
this.dialogType=1
if (row.buyer_data==1) {
this.account_type='buyer'
}else if (row.enter_shop_data==1) {
this.account_type='enter_shop'
}else if (row.third_party_data==1) {
this.account_type='third_party'
}
this.listDate=row
},
//

81
src/components/page/OperationManagement/announcementConfiguration.vue

@ -18,13 +18,13 @@
type="datetimerange"
:picker-options="pickerOptions"
range-separator="至"
value-format="yyyy-MM-dd h:m:s"
value-format="yyyy-MM-dd HH:mm:ss"
start-placeholder="开始日期"
end-placeholder="结束日期"
align="right"
>
</el-date-picker>
<el-button type="primary" icon="el-icon-search" @click="getData">搜索</el-button>
<el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button>
<el-button type="primary" @click="handleEdit(0)">新增通知公告</el-button>
</div>
<el-table
@ -35,18 +35,18 @@
header-cell-class-name="table-header"
>
<el-table-column prop="id" label="序号" width="55" align="center"></el-table-column>
<el-table-column prop="name" label="发布日期" :formatter="formatDate"></el-table-column>
<el-table-column label="公告标题" prop="name"></el-table-column>
<el-table-column label="发布人员" prop="name"></el-table-column>
<el-table-column prop="create_time" label="发布日期" :formatter="formatDate"></el-table-column>
<el-table-column label="公告标题" prop="title"></el-table-column>
<el-table-column label="发布人员" prop="username"></el-table-column>
<el-table-column label="操作" width="280" align="center">
<template slot-scope="scope">
<el-button
type="text"
@click="handleEdit(1, scope.row)"
@click="handleEdit(1, scope.row.id)"
>公告内容</el-button>
<el-button
type="text"
@click="handleDelete(scope.$index, scope.row)"
@click="handleDelete( scope.row.id)"
>删除公告</el-button>
</template>
</el-table-column>
@ -64,7 +64,7 @@
</div>
<!-- 编辑弹出框 -->
<el-dialog title="通知公告配置" :visible.sync="editVisible" width="40%">
<el-dialog title="通知公告配置" :visible.sync="editVisible" width="40%" @close="closedialog">
<el-form ref="form" :model="form" :rules="rules">
<el-form-item label="公告标题" prop="title" class="form_item">
<el-input v-model="form.title" placeholder="请输入公告标题"></el-input>
@ -82,7 +82,8 @@
</template>
<script>
import { getNoticeList ,setNotice} from '../../../api/index';
import { getNoticeList ,setNotice,getNoticeFind,updateNotice,deleteNotice} from '../../../api/index';
import moment from 'moment'
export default {
data() {
return {
@ -147,6 +148,24 @@ export default {
this.getData();
},
methods: {
search(){
this.query.page=1
this.getData();
},
closedialog(){
for(var p in this.form){//jsonkey/value,pkey
this.form[p]=''
}
},
getNoticeFind(){
getNoticeFind(this.form).then(res=>{
console.info(res)
if (res.code==100) {
this.form.title=res.data.title
this.form.content=res.data.content
}
})
},
//
setNotice(){
this.$refs["form"].validate((valid) => {
@ -154,36 +173,60 @@ export default {
if (this.noticeType==0) {
setNotice(this.form).then(res=>{
console.info(res)
if (res.code==100) {
this.$message.success('新增成功~')
this.editVisible=false
this.getData();
}else{
this.$message.error(res.msg)
}
})
}else{
updateNotice(this.form).then(res=>{
console.info(res)
if (res.code==100) {
this.$message.success('修改成功~')
this.editVisible=false
this.getData();
}else{
this.$message.error(res.msg)
}
})
}
}
})
},
//
formatDate(row,colnum){
return moment(row[colnum.create_time]).format('YYYY-MM-DD HH:mm:ss')
return moment(row.create_time*1000).format('YYYY-MM-DD HH:mm:ss')
},
// easy-mock
getData() {
getNoticeList(this.query).then(res => {
console.log(res);
this.tableData = res.list;
this.pageTotal = res.pageTotal ;
if (res.code==100) {
this.tableData = res.data.list;
this.pageTotal = res.data.count ;
}else{
this.$message.error(res.msg)
}
});
},
//
handleDelete(index, row) {
handleDelete(id) {
//
this.$confirm('确定要删除吗?', '提示', {
type: 'warning'
}).then(() => {
let data={id:id}
deleteNotice(data).then(res=>{
console.info(res)
if (res.code==100) {
this.$message.success('删除成功~')
this.getData();
}
})
.then(() => {
this.$message.success('删除成功');
this.tableData.splice(index, 1);
})
.catch(() => {});
}).catch(() => {});
},
//
handleEdit(type,id) {

105
src/components/page/OperationManagement/assetsConfigure.vue

@ -78,26 +78,11 @@
</el-input>
</div>
</div>
<!-- 编辑弹出框 -->
<el-dialog title="编辑" :visible.sync="editVisible" width="30%">
<el-form ref="form" :model="form" label-width="70px">
<el-form-item label="用户名">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="地址">
<el-input v-model="form.address"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editVisible = false"> </el-button>
<el-button type="primary" @click="saveEdit"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { fetchData } from '../../../api/index';
import { getRecommend } from '../../../api/index';
export default {
name: 'basetable',
data() {
@ -108,45 +93,7 @@ export default {
pageIndex: 1,
pageSize: 10
},
tableData: [],
multipleSelection: [],
delList: [],
editVisible: false,
pageTotal: 0,
form: {},
idx: -1,
id: -1,
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
textarea:''
};
},
created() {
@ -155,50 +102,14 @@ export default {
methods: {
// easy-mock
getData() {
fetchData(this.query).then(res => {
// console.log(res);
this.tableData = res.list;
this.pageTotal = res.pageTotal || 50;
getRecommend().then(res => {
console.log(res);
if (res.code==100) {
}else{
this.$message.error(res.msg)
}
});
},
//
handleSearch() {
this.$set(this.query, 'pageIndex', 1);
this.getData();
},
//
handleDelete(index, row) {
//
this.$confirm('确定要删除吗?', '提示', {
type: 'warning'
})
.then(() => {
this.$message.success('删除成功');
this.tableData.splice(index, 1);
})
.catch(() => {});
},
//
handleSelectionChange(val) {
this.multipleSelection = val;
},
//
handleEdit(index, row) {
this.idx = index;
this.form = row;
this.editVisible = true;
},
//
saveEdit() {
this.editVisible = false;
this.$message.success(`修改第 ${this.idx + 1} 行成功`);
this.$set(this.tableData, this.idx, this.form);
},
//
handlePageChange(val) {
this.$set(this.query, 'pageIndex', val);
this.getData();
}
}
};
</script>

127
src/components/page/OperationManagement/bannerConfigure.vue

@ -21,49 +21,43 @@
<div class="container banner_content">
<div class="banner_num">
<span class="banner_num_span">图片数量</span>
<el-input placeholder="请输入图片数量" v-model.number="banner_num"></el-input>
<el-input placeholder="请输入图片数量" v-model.number="banner_num" @input="changeNum()"></el-input>
<!-- <el-select placeholder="请选择图片数量" class="handle-select mr10">
<el-option key="1" label="广东省" value="广东省"></el-option>
<el-option key="2" label="湖南省" value="湖南省"></el-option>
</el-select> -->
</div>
<template v-if="banner_num !=''">
<div class="banner_num" v-for="(item,index) in banner_num" :key="index">
<template v-if="banner.length !=0">
<div class="banner_num" v-for="(item,index) in banner.slice(0,banner_num)" :key="index">
<span class="banner_num_span">图片{{index+1}}</span>
<el-input placeholder="请输入图片名称"></el-input>
<el-input placeholder="请选择图片路径" class="banner_num_input"></el-input>
<el-input placeholder="图片名称" v-model="item.name" readonly></el-input>
<el-input placeholder="图片路径" class="banner_num_input" v-model="item.img" readonly></el-input>
<el-upload
class="upload-demo"
:action="action"
:on-change="fileChange"
:show-file-list="false"
:on-error="handleAvatarError"
list-type="picture"
:on-success="(res,file)=>{handleAvatarSuccess(res,file,index)}"
>
<span class="banner_num_span1">上传图片</span>
</el-upload>
<span class="banner_num_span1">打开图片库</span>
<span class="banner_num_span1">上移</span>
<span class="banner_num_span1">下移</span>
<span class="banner_num_span1" @click="moveUp(index)">上移</span>
<span class="banner_num_span1" @click="moveDown(index)">下移</span>
</div>
</template>
<!-- <div class="banner_num">
<span class="banner_num_span">图片2</span>
<el-input placeholder="请输入图片名称"></el-input>
<el-input placeholder="请选择图片路径" class="banner_num_input"></el-input>
<span class="banner_num_span1">上传图片</span>
<span class="banner_num_span1">打开图片库</span>
<span class="banner_num_span1">上移</span>
<span class="banner_num_span1">下移</span>
<div v-if="banner_num!='' || banner_num!=0">
<el-button type="primary" @click="setBanner">保存</el-button>
</div>
<div class="banner_num">
<span class="banner_num_span">图片3</span>
<el-input placeholder="请输入图片名称"></el-input>
<el-input placeholder="请选择图片路径" class="banner_num_input"></el-input>
<span class="banner_num_span1">上传图片</span>
<span class="banner_num_span1">打开图片库</span>
<span class="banner_num_span1">上移</span>
<span class="banner_num_span1">下移</span>
</div> -->
</div>
</div>
</template>
<script>
import { fetchData } from '../../../api/index';
import { getBanner,setBanner } from '../../../api/index';
export default {
name: 'basetable',
data() {
return {
query: {
@ -72,21 +66,92 @@ export default {
pageIndex: 1,
pageSize: 10
},
host:'http://wenhua.xingtongworld.com',
action:'http://wenhua.xingtongworld.com/api/Index/uploadimg',
banner_num:'',
tableData: [],
banner:[]
};
},
created() {
// this.getData();
this.getData();
},
methods: {
moveDown(index){
let length=this.banner.length
if (length!=1) {
let list= this.banner[index + 1];
this.$set(this.banner, index + 1, this.banner[index]);
this.$set(this.banner, index, list)
}
},
moveUp(index){
let length=this.banner.length
if (length!=1) {
let list= this.banner[index - 1];
this.$set(this.banner, index - 1, this.banner[index]);
this.$set(this.banner, index, list)
}
},
changeNum(){
if (this.banner_num>this.banner.length) {
let index=this.banner_num-this.banner.length
for (let i=0;i<index;i++){
this.banner.push({name:'',img:''})
}
}
},
setBanner(){
setBanner(this.banner).then(res=>{
console.info(res)
if (res.code==100) {
this.$message.success('文件上传成功!');
}else{
this.$message.error(res.msg)
}
})
},
// easy-mock
getData() {
fetchData(this.query).then(res => {
// console.log(res);
this.tableData = res.list;
getBanner().then(res => {
console.log(res);
if (res.code==100) {
this.banner =res.data.list
if (this.banner.length!=0) {
this.banner_num=this.banner.length
}
}else{
this.$message.error(res.msg)
}
});
},
handleAvatarSuccess(res, file, index,key){
console.info(res)
console.info(file)
if(res.code==1){
let data={name:file.name,img:this.host+res.data.img_url}
this.$set(this.banner, index , data);
// this.banner.push()
}
},
handleAvatarError(){
this.$message.error('文件上传失败!');
},
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 < 3;
if (!isJPG) {
this.$message.error('只能是图片!');
this.$refs.upload.clearFiles();
return;
}
if (!isLt3M) {
this.$message.error('上传图片大小不能超过 3MB!');
this.$refs.upload.clearFiles();
// this.$set(this.query, 'goods_img', '');
return;
}
},
}
};
</script>

52
src/components/page/OperationManagement/customerOpinion.vue

@ -10,10 +10,10 @@
</div>
<div class="container">
<div class="handle-box">
<el-input placeholder="机构名称" class="handle-input mr10"></el-input>
<el-input v-model="query.name" placeholder="法人名称" class="handle-input mr10"></el-input>
<el-input placeholder="意见内容" class="handle-input mr10"></el-input>
<el-select placeholder="回复人员" class="handle-select mr10">
<el-input placeholder="机构名称" class="handle-input mr10" v-model="query.firm_name"></el-input>
<el-input v-model="query.username" placeholder="法人名称" class="handle-input mr10"></el-input>
<el-input placeholder="意见内容" class="handle-input mr10" v-model="query.message"></el-input>
<el-select placeholder="回复人员" class="handle-select mr10" v-model="query.message">
<el-option key="1" label="广东省" value="广东省"></el-option>
<el-option key="2" label="湖南省" value="湖南省"></el-option>
</el-select>
@ -37,7 +37,6 @@
class="table"
ref="multipleTable"
header-cell-class-name="table-header"
@selection-change="handleSelectionChange"
>
<el-table-column prop="id" label="序号" width="55" align="center"></el-table-column>
<el-table-column prop="name" label="提交日期"></el-table-column>
@ -66,8 +65,8 @@
<el-pagination
background
layout="total, prev, pager, next"
:current-page="query.pageIndex"
:page-size="query.pageSize"
:current-page="query.page"
:page-size="query.limit"
:total="pageTotal"
@current-change="handlePageChange"
></el-pagination>
@ -93,25 +92,26 @@
</template>
<script>
import { fetchData } from '../../../api/index';
import { opinionList } from '../../../api/index';
export default {
name: 'basetable',
data() {
return {
query: {
address: '',
name: '',
pageIndex: 1,
pageSize: 10
firm_name: '',
username: '',
auditID: '',
time: '',
message: '',
page: 1,
limit: 10
},
form:{},
tableData: [],
multipleSelection: [],
delList: [],
editVisible: false,
pageTotal: 0,
form: {},
idx: -1,
id: -1,
pickerOptions: {
shortcuts: [
{
@ -151,15 +151,19 @@ export default {
methods: {
// easy-mock
getData() {
fetchData(this.query).then(res => {
// console.log(res);
this.tableData = res.list;
this.pageTotal = res.pageTotal || 50;
opinionList(this.query).then(res => {
console.log(res);
if (res.code==100) {
this.tableData = res.data.list;
this.pageTotal = res.data.count ;
}else{
this.$message.error(res.msg)
}
});
},
//
handleSearch() {
this.$set(this.query, 'pageIndex', 1);
this.$set(this.query, 'page', 1);
this.getData();
},
//
@ -174,14 +178,8 @@ export default {
})
.catch(() => {});
},
//
handleSelectionChange(val) {
this.multipleSelection = val;
},
//
handleEdit(index, row) {
this.idx = index;
this.form = row;
this.editVisible = true;
},
//
@ -192,7 +190,7 @@ export default {
},
//
handlePageChange(val) {
this.$set(this.query, 'pageIndex', val);
this.$set(this.query, 'page', val);
this.getData();
}
}

240
src/components/page/OperationManagement/feedConfigure.vue

@ -21,184 +21,136 @@
<div class="container banner_content">
<div class="banner_num">
<span class="banner_num_span">图片数量</span>
<el-select placeholder="请选择图片数量" class="handle-select mr10">
<el-option key="1" label="广东省" value="广东省"></el-option>
<el-option key="2" label="湖南省" value="湖南省"></el-option>
</el-select>
<el-input placeholder="请输入图片数量" v-model.number="banner_num" @input="changeNum()"></el-input>
</div>
<div class="feed_item">
<div class="banner_num">
<span class="banner_num_span">图片1</span>
<el-input placeholder="请输入图片名称"></el-input>
<el-input placeholder="请选择图片路径" class="banner_num_input"></el-input>
<span class="banner_num_span1">上传图片</span>
<span class="banner_num_span1">打开图片库</span>
<span class="banner_num_span1">上移</span>
<span class="banner_num_span1">下移</span>
</div>
<el-input
type="textarea"
:rows="4"
placeholder="请输入文案"
v-model="textarea">
</el-input>
</div>
<div class="feed_item">
<template v-if="banner.length !=0">
<div class="feed_item" v-for="(item,index) in banner.slice(0,banner_num)" :key="index">
<div class="banner_num" >
<span class="banner_num_span">图片2</span>
<el-input placeholder="请输入图片名称"></el-input>
<el-input placeholder="请选择图片路径" class="banner_num_input"></el-input>
<span class="banner_num_span">图片{{index+1}}</span>
<el-input placeholder="请输入图片名称" v-model="item.name" readonly></el-input>
<el-input placeholder="请选择图片路径" class="banner_num_input" v-model="item.img" readonly></el-input>
<el-upload
class="upload-demo"
:action="action"
:on-change="fileChange"
:show-file-list="false"
:on-error="handleAvatarError"
list-type="picture"
:on-success="(res,file)=>{handleAvatarSuccess(res,file,index)}"
>
<span class="banner_num_span1">上传图片</span>
</el-upload>
<span class="banner_num_span1">打开图片库</span>
<span class="banner_num_span1">上移</span>
<span class="banner_num_span1">下移</span>
<span class="banner_num_span1" @click="moveUp(index)">上移</span>
<span class="banner_num_span1" @click="moveDown(index)">下移</span>
</div>
<el-input
type="textarea"
:rows="4"
placeholder="请输入文案"
v-model="textarea">
v-model="item.content">
</el-input>
</div>
<div class="feed_item">
<div class="banner_num">
<span class="banner_num_span">图片3</span>
<el-input placeholder="请输入图片名称"></el-input>
<el-input placeholder="请选择图片路径" class="banner_num_input"></el-input>
<span class="banner_num_span1">上传图片</span>
<span class="banner_num_span1">打开图片库</span>
<span class="banner_num_span1">上移</span>
<span class="banner_num_span1">下移</span>
</div>
<el-input
type="textarea"
:rows="4"
placeholder="请输入文案"
v-model="textarea">
</el-input>
</template>
<div v-if="banner_num!='' || banner_num!=0">
<el-button type="primary" @click="setBanner">保存</el-button>
</div>
</div>
<!-- 编辑弹出框 -->
<el-dialog title="编辑" :visible.sync="editVisible" width="30%">
<el-form ref="form" :model="form" label-width="70px">
<el-form-item label="用户名">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="地址">
<el-input v-model="form.address"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editVisible = false"> </el-button>
<el-button type="primary" @click="saveEdit"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { fetchData } from '../../../api/index';
import { getFeed,setFeed } from '../../../api/index';
export default {
name: 'basetable',
data() {
return {
query: {
address: '',
name: '',
pageIndex: 1,
pageSize: 10
},
tableData: [],
multipleSelection: [],
delList: [],
editVisible: false,
pageTotal: 0,
form: {},
idx: -1,
id: -1,
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
host:'http://wenhua.xingtongworld.com',
action:'http://wenhua.xingtongworld.com/api/Index/uploadimg',
banner_num:'',
banner:[]
};
},
created() {
this.getData();
},
methods: {
// easy-mock
getData() {
fetchData(this.query).then(res => {
// console.log(res);
this.tableData = res.list;
this.pageTotal = res.pageTotal || 50;
});
moveDown(index){
let length=this.banner.length
if (length!=1) {
let list= this.banner[index + 1];
this.$set(this.banner, index + 1, this.banner[index]);
this.$set(this.banner, index, list)
}
},
//
handleSearch() {
this.$set(this.query, 'pageIndex', 1);
this.getData();
moveUp(index){
let length=this.banner.length
if (length!=1) {
let list= this.banner[index - 1];
this.$set(this.banner, index - 1, this.banner[index]);
this.$set(this.banner, index, list)
}
},
//
handleDelete(index, row) {
//
this.$confirm('确定要删除吗?', '提示', {
type: 'warning'
})
.then(() => {
this.$message.success('删除成功');
this.tableData.splice(index, 1);
changeNum(){
if (this.banner_num>this.banner.length) {
let index=this.banner_num-this.banner.length
for (let i=0;i<index;i++){
this.banner.push({name:'',img:''})
}
}
},
setBanner(){
setFeed(this.banner).then(res=>{
console.info(res)
if (res.code==100) {
this.$message.success('文件上传成功!');
}else{
this.$message.error(res.msg)
}
})
.catch(() => {});
},
//
handleSelectionChange(val) {
this.multipleSelection = val;
// easy-mock
getData() {
getFeed().then(res => {
console.log(res);
if (res.code==100) {
this.banner =res.data.list
if (this.banner.length!=0) {
this.banner_num=this.banner.length
}
}else{
this.$message.error(res.msg)
}
});
},
//
handleEdit(index, row) {
this.idx = index;
this.form = row;
this.editVisible = true;
handleAvatarSuccess(res, file, index,key){
console.info(res)
console.info(file)
if(res.code==1){
let data={name:file.name,img:this.host+res.data.img_url}
this.$set(this.banner, index , data);
// this.banner.push()
}
},
//
saveEdit() {
this.editVisible = false;
this.$message.success(`修改第 ${this.idx + 1} 行成功`);
this.$set(this.tableData, this.idx, this.form);
handleAvatarError(){
this.$message.error('文件上传失败!');
},
//
handlePageChange(val) {
this.$set(this.query, 'pageIndex', val);
this.getData();
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 < 3;
if (!isJPG) {
this.$message.error('只能是图片!');
this.$refs.upload.clearFiles();
return;
}
if (!isLt3M) {
this.$message.error('上传图片大小不能超过 3MB!');
this.$refs.upload.clearFiles();
// this.$set(this.query, 'goods_img', '');
return;
}
},
}
};
</script>

Loading…
Cancel
Save