Commit 7de07c63 authored by 扫地僧's avatar 扫地僧

半成品

parent 178f14ed
......@@ -13,8 +13,8 @@ module.exports = {
proxyTable: {},
// Various Dev Server settings
host: 'localhost', // can be overwritten by process.env.HOST
// host: '192.168.1.100', // can be overwritten by process.env.HOST
// host: 'localhost', // can be overwritten by process.env.HOST
host: '192.168.1.112', // can be overwritten by process.env.HOST
port: 9527, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: true,
errorOverlay: true,
......
import request from './request'
import qs from 'qs'
export function getAdvertList(data) {
export function advertList(data) {
return request({
url: '/advert/getAdvertList',
url: '/advert/advertList',
method: 'post',
data:qs.stringify(data)
})
......
......@@ -37,6 +37,15 @@ export function queryAllSysRole() {
})
}
// 选择管理员
export function queryAllShopAdmin() {
return request({
url: '/sysRole/queryAllSysRole',
method: 'post',
})
}
// --------user---end-----------
......
......@@ -54,18 +54,18 @@ export const asyncRouterMap = [
// 商家管理
// 店铺管理
{
path: '/store',
alwaysShow:true,
component: Layout,
redirect: '/store/storeList',
meta: {
title: '商家管理',
title: '店铺管理',
icon: 'cheliang'
},
children: [
{ path: 'storeList', component: _import('store/storeList'), name: 'store_storeList', meta: { title: '商家列表' }}
{ path: 'storeList', component: _import('store/storeList'), name: 'store_storeList', meta: { title: '店铺列表' }}
]
},
......@@ -84,14 +84,14 @@ export const asyncRouterMap = [
]
},
// 店铺管理
// 店铺管理
{
path: '/administrators',
alwaysShow:true,
component: Layout,
redirect: '/administrators/administratorstList',
meta: {
title: '店铺管理',
title: '店铺管理',
icon: 'cheliang'
},
children: [
......
......@@ -11,9 +11,26 @@
<el-row :gutter="15">
<el-col :span="4">
<el-col class="input-name" :span="7">管理员名称</el-col>
<el-col :span="17"><el-input placeholder="请输入关键字" v-model="seacherParam.repairWorkerName" @keyup.enter.native="seachFun"></el-input></el-col>
<el-col :span="17"><el-input placeholder="请输入关键字" v-model="seacherParam.administratorsName" @keyup.enter.native="seachFun"></el-input></el-col>
</el-col>
<!-- <el-col :xl="4" :lg="6" :md="6" :sm="8" id="visReason">
<el-col class="input-name" :xl="7" :lg="7" :md="7" :sm="7">审核状态</el-col>
<el-col :xl="17" :lg="17" :md="17" :sm="17">
<el-select v-model="seacherParam.isAuditing" placeholder="请选择">
<el-option
v-for="item in isAuditingData"
:key="item.code"
:label="item.name"
:value="item.code">
</el-option>
</el-select>
</el-col>
</el-col> -->
</el-row>
</el-card>
<el-card>
<div slot="header" class="clearfix">
......@@ -26,19 +43,32 @@
<el-table empty-text="暂无数据" :stripe="true" :data="dataOption" v-loading="!dataOption">
<el-table-column prop="repairWorkerName" label="姓名"></el-table-column>
<el-table-column label="性别">
<el-table-column prop="administratorsName" label="姓名"></el-table-column>
<!-- <el-table-column label="性别">
<template slot-scope="scope">
<span>{{scope.row.sex===1?'男':'女'}}</span>
</template>
</el-table-column> -->
<el-table-column prop="contactNumber" label="联系电话"></el-table-column>
<el-table-column prop="wechat" label="微信"></el-table-column>
<el-table-column prop="qq" label="qq"></el-table-column>
<!-- <el-table-column prop="qrCode" label="二维码"></el-table-column> -->
<el-table-column label="二维码">
<template slot-scope="scope">
<img :src="scope.row.qrCode" style="width:80px;height:80px;"/>
</template>
</el-table-column>
<el-table-column prop="repairWorkerPhone" label="电话"></el-table-column>
<el-table-column prop="repairWorkerIdCard" label="身份证号"></el-table-column>
<el-table-column label="创建时间">
<template slot-scope="scope">
<span>{{fattTime(scope.row.createTime)}}</span>
</template>
</el-table-column>
<!-- <el-table-column label="审核状态">
<template slot-scope="scope">
<span>{{scope.row.isAuditing===1?'已审核':'未审核'}}</span>
</template>
</el-table-column> -->
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="primary" circle class="table-icon" @click="check(scope.row)"><i class="iconfont icon-chakan"></i></el-button>
......@@ -73,40 +103,65 @@
<div class="dialog-body-content">
<el-row :gutter="15">
<el-col :span="8" class="content-left"><label>姓名</label></el-col>
<el-col :span="8" class="content-left"><label>名称</label></el-col>
<el-col :span="16" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请输入姓名" v-model="dialogBindData.repairWorkerName"></el-input>
<span v-else>{{dialogBindData.repairWorkerName}}</span>
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请输入管理员名称" v-model="dialogBindData.administratorsName"></el-input>
<span v-else>{{dialogBindData.administratorsName}}</span>
</el-col>
</el-row>
<el-row :gutter="15">
<el-col :span="8" class="content-left"><label>性别</label></el-col>
<!-- <el-row :gutter="15" v-if="dialogType===3">
<el-col :span="8" class="content-left"><label>审核状态</label></el-col>
<el-col :span="16" class="content-right">
<el-radio-group v-if="dialogType===1 || dialogType===2" v-model="dialogBindData.sex">
<el-radio size="small" :label="1"></el-radio>
<el-radio size="small" :label="0"></el-radio>
<el-radio-group v-if="dialogType===1 || dialogType===2" v-model="dialogBindData.isAuditing">
<el-radio size="small" :label="1">已审核</el-radio>
<el-radio size="small" :label="0">未审核</el-radio>
</el-radio-group>
<span v-else>{{dialogBindData.sex===1?"男":"女"}}</span>
<span v-else>{{dialogBindData.isAuditing===1?"已审核":"未审核"}}</span>
</el-col>
</el-row>
</el-row> -->
<el-row :gutter="15">
<el-col :span="8" class="content-left"><label>电话</label></el-col>
<el-col :span="16" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请输入电话号码" v-model="dialogBindData.repairWorkerPhone"></el-input>
<span v-else>{{dialogBindData.repairWorkerPhone}}</span>
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请输入电话号码" v-model="dialogBindData.contactNumber"></el-input>
<span v-else>{{dialogBindData.contactNumber}}</span>
</el-col>
</el-row>
<el-row :gutter="15">
<el-col :span="8" class="content-left"><label>微信</label></el-col>
<el-col :span="16" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请输入微信号" v-model="dialogBindData.wechat"></el-input>
<span v-else>{{dialogBindData.wechat}}</span>
</el-col>
</el-row>
<el-row :gutter="15">
<el-col :span="8" class="content-left"><label>QQ</label></el-col>
<el-col :span="16" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请输入QQ" v-model="dialogBindData.qq"></el-input>
<span v-else>{{dialogBindData.qq}}</span>
</el-col>
</el-row>
<el-row :gutter="15">
<el-col :span="8" class="content-left"><label>身份证号</label></el-col>
<el-col :span="8" class="content-left"><label>二维码</label></el-col>
<el-col :span="16" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请输入身份证号" v-model="dialogBindData.repairWorkerIdCard"></el-input>
<span v-else>{{dialogBindData.repairWorkerIdCard}}</span>
<up-load-img
ref="imgComponent"
v-if="dialogType===1 || dialogType===2"
width="120"
height="120"
resPath="qrCode"
:type="dialogType===2"
:viewUrl="this.dialogBindData.qrCode"
@emitSuccess="handleImgLoad">
</up-load-img>
<img @click="magnify(dialogBindData.qrCode)" v-else :src="dialogBindData.qrCode" width="120" height="120">
</el-col>
</el-row>
......@@ -126,12 +181,22 @@
import * as admin from "../../api/administrators";
import * as common from "../../api/common";
import { fattCreateTime } from "../../utils/fattTime";
import UpLoadImg from "@/components/UpLoadImg";
export default {
components: { UpLoadImg },
data() {
return {
seacherParam: {
repairWorkerName: ""
administratorsName: "",
isAuditing:""
},
//审核状态 选择数据项
isAuditingData: [
{ code: "0", name: "未审核" },
{ code: "1", name: "已审核" }
],
// 表格数据
dataOption: null,
// 分页数据
......@@ -144,10 +209,13 @@ export default {
dialogBindData: {
repairWorkerId: "",
repairWorkerName: "",
sex: 1,
repairWorkerPhone: "",
administratorsName: "",
contactNumber: "",
wechat: "",
qq:"",
qrCode:"",
isAuditing:1,
createTime: "",
repairWorkerIdCard: ""
},
// 是否提交
......@@ -224,13 +292,9 @@ export default {
}
},
submmitFun() {
// if (this.dialogType === 1) {
// alert(`添加${JSON.stringify(this.dialogBindData)}`);
// } else {
// alert(`编辑${JSON.stringify(this.dialogBindData)}`);
// }
// 发送添加请求
const isSubmitActive = this.dialogBindData.repairWorkerName&&this.dialogBindData.repairWorkerPhone&&this.dialogBindData.repairWorkerIdCard;
const isSubmitActive = this.dialogBindData.administratorsName&&this.dialogBindData.contactNumber&&this.dialogBindData.wechat&&this.dialogBindData.qq&&this.dialogBindData.qrCode;
if (isSubmitActive) {
this.submmitSuccess = true;
admin.addOrEditAdministrators(this.dialogBindData).then(res => {
......@@ -305,7 +369,13 @@ export default {
});
}
});
}
},
handleImgLoad(url) {
this.dialogBindData.qrCode = url;
},
},
computed: {
// 激活重置按钮
......
......@@ -9,10 +9,39 @@
</div>
</div>
<el-row :gutter="15">
<el-col :span="4">
<el-col class="input-name" :span="7">维修工名称</el-col>
<el-col :span="17"><el-input placeholder="请输入关键字" v-model="seacherParam.repairWorkerName" @keyup.enter.native="seachFun"></el-input></el-col>
<el-col :xl="4" :lg="6" :md="6" :sm="8">
<el-col class="input-name" :span="7">活动名称</el-col>
<el-col :span="17"><el-input placeholder="请输入关键字" v-model="seacherParam.advertTitle" @keyup.enter.native="seachFun"></el-input></el-col>
</el-col>
<el-col :span="4" :lg="6" :md="6" :sm="8">
<el-col class="input-name" :span="7">启用状态</el-col>
<el-col :span="17" style="line-height:40px">
<el-select v-model="seacherParam.isAvailable" placeholder="请选择">
<el-option
v-for="item in isAvailableData"
:key="item.code"
:label="item.name"
:value="item.code">
</el-option>
</el-select>
</el-col>
</el-col>
<!-- <el-col :span="4">
<el-col class="input-name" :span="7">审核状态</el-col>
<el-col :span="17" style="line-height:40px">
<el-select v-model="seacherParam.censorStatus" placeholder="请选择">
<el-option
v-for="item in censorStatusData"
:key="item.code"
:label="item.name"
:value="item.code">
</el-option>
</el-select>
</el-col>
</el-col> -->
</el-row>
</el-card>
<el-card>
......@@ -26,51 +55,89 @@
<el-table empty-text="暂无数据" :stripe="true" :data="dataOption" v-loading="!dataOption">
<el-table-column prop="repairWorkerName" label="姓名"></el-table-column>
<el-table-column label="性别">
<el-table-column label="活动标题">
<template slot-scope="scope">
<span>{{scope.row.sex===1?'男':'女'}}</span>
<span>{{`${scope.row.advertTitle}-${scope.row.advertTitle}` || '暂无数据'}}</span>
</template>
</el-table-column>
<el-table-column prop="repairWorkerPhone" label="电话"></el-table-column>
<el-table-column prop="repairWorkerIdCard" label="身份证号"></el-table-column>
<el-table-column label="创建时间">
<el-table-column prop="linkUrl" label="链接地址"></el-table-column>
<el-table-column label="启用状态">
<template slot-scope="scope">
<span>{{fattTime(scope.row.createTime)}}</span>
<span>{{scope.row.isAvailable==1?'已启用':'未启用'}}</span>
</template>
</el-table-column>
<!-- <el-table-column prop="memo" label="备注"></el-table-column> -->
<!-- <el-table-column label="启用状态">
<!-- <el-table-column label="审核状态">
<template slot-scope="scope">
<span>
<el-switch
v-model="scope.row.isVailable"
:active-value="1"
:inactive-value="0"
@change="handleIsVailable(scope.row)">
</el-switch>
</span>
<span>{{viewCensorStatus(scope.row.censorStatus)}}</span>
</template>
</el-table-column> -->
<el-table-column label="创建时间">
<template slot-scope="scope">
<span>{{scope.row.createTime?fattTime(scope.row.createTime):'暂无数据'}}</span>
</template>
</el-table-column>
<!-- <el-table-column prop="memo" label="备注"></el-table-column> -->
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="primary" circle class="table-icon" @click="check(scope.row)"><i class="iconfont icon-chakan"></i></el-button>
<el-button type="primary" icon="el-icon-edit" circle class="table-icon" @click="edit(scope.row)"></el-button>
<el-button v-if="scope.row.isAvailable===0" type="primary" icon="el-icon-edit" circle class="table-icon" @click="edit(scope.row)"></el-button>
<!-- <el-popover
v-if="scope.row.censorStatus!=1"
placement="top"
width="160"
v-model="scope.row.delState">
<p style="margin-bottom:10px;font-weight:700;">确认删除吗?</p>
trigger="hover"
width="240"
v-model="scope.row.delState1">
<p style="margin-bottom:10px;font-weight:700;">审核</p>
<div style="padding:10px 0;">
<template>
<el-radio v-model="censorStatus" :label="1">已审核</el-radio>
<el-radio v-model="censorStatus" :label="2">未通过</el-radio>
</template>
</div>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="scope.row.delState = false">取消</el-button>
<el-button type="primary" size="mini" @click="del(scope.row)">确定</el-button>
<el-button size="mini" type="text" @click="scope.row.delState1 = false">取消</el-button>
<el-button type="primary" size="mini" @click="handleCensor(scope.row)">确定</el-button>
</div>
<el-button slot="reference" type="warning" circle icon="el-icon-delete" class="table-icon popver-btn"></el-button>
<el-button slot="reference" type="warning" circle icon="el-icon-setting" class="table-icon popver-btn"></el-button>
</el-popover> -->
<el-popover
v-if="scope.row.censorStatus==1&&scope.row.isAvailable==0"
placement="top"
width="160"
trigger="hover"
v-model="scope.row.delState2">
<p style="margin-bottom:10px;font-weight:700;">确定启用吗?</p>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="scope.row.delState2 = false">取消</el-button>
<el-button type="primary" size="mini" @click="handleUserState(scope.row)">确定</el-button>
</div>
<el-button slot="reference" type="success" icon="el-icon-circle-check-outline
" circle class="table-icon popver-btn"></el-button>
</el-popover>
<el-popover
v-if="scope.row.censorStatus==1&&scope.row.isAvailable==1"
placement="top"
width="160"
trigger="hover"
v-model="scope.row.delState2">
<p style="margin-bottom:10px;font-weight:700;">确定停用吗?</p>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="scope.row.delState2 = false">取消</el-button>
<el-button type="primary" size="mini" @click="handleUserState(scope.row)">确定</el-button>
</div>
<el-button slot="reference" type="warning" icon="el-icon-circle-close-outline" circle class="table-icon popver-btn"></el-button>
</el-popover>
</template>
</el-table-column>
</el-table>
......@@ -97,58 +164,126 @@
<el-dialog
:title="dialogTitle"
:visible.sync="dialogState"
width="30%"
:width="dialogType==3?'100%':'80%'"
:fullscreen="dialogType==3"
:before-close="handleClose">
<div class="dialog-body-content">
<el-row :gutter="15">
<el-col :span="8" class="content-left"><label>姓名</label></el-col>
<el-col :span="16" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请输入姓名" v-model="dialogBindData.repairWorkerName"></el-input>
<span v-else>{{dialogBindData.repairWorkerName}}</span>
</el-col>
</el-row>
<el-row :gutter="15">
<el-col :span="8" class="content-left"><label>性别</label></el-col>
<el-col :span="16" class="content-right">
<el-radio-group v-if="dialogType===1 || dialogType===2" v-model="dialogBindData.sex">
<el-radio size="small" :label="1"></el-radio>
<el-radio size="small" :label="0"></el-radio>
<el-row :gutter="12">
<el-col :span="dialogType==3?12:8">
<h1 class="food-title">活动信息</h1>
<!-- <el-row :gutter="15">
<el-col :span="6" class="content-left"><label>类型</label></el-col>
<el-col :span="18" class="content-right" style="width:330px">
<el-radio-group v-if="dialogType===1 || dialogType===2" v-model="dialogBindData.advertType">
<el-radio size="small" :label="1">活动广告</el-radio>
<el-radio size="small" :label="2">系统公告</el-radio>
<el-radio size="small" :label="3">新闻资讯</el-radio>
</el-radio-group>
<span v-else>{{dialogBindData.sex===1?"男":"女"}}</span>
<span v-else>{{viewAdverType(dialogBindData.advertType)}}</span>
</el-col>
</el-row>
</el-row> -->
<!-- <el-row :gutter="15">
<el-col :span="6" class="content-left"><label>名称</label></el-col>
<el-col :span="18" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请输入活动名称" resize="none" v-model="dialogBindData.advertName"></el-input>
<span v-else>{{dialogBindData.advertName}}</span>
</el-col>
</el-row> -->
<el-row :gutter="15">
<el-col :span="8" class="content-left"><label>电话</label></el-col>
<el-col :span="16" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请输入电话号码" v-model="dialogBindData.repairWorkerPhone"></el-input>
<span v-else>{{dialogBindData.repairWorkerPhone}}</span>
<el-col :span="6" class="content-left"><label>标题</label></el-col>
<el-col :span="18" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" type="textarea" rows="3" placeholder="请输入活动标题" resize="none" v-model="dialogBindData.advertTitle"></el-input>
<span v-else>{{dialogBindData.advertTitle}}</span>
</el-col>
</el-row>
<!-- <el-row :gutter="15">
<el-col :span="6" class="content-left"><label>副标题</label></el-col>
<el-col :span="18" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" type="textarea" rows="3" placeholder="请输入活动副标题" resize="none" v-model="dialogBindData.advertSubtitle"></el-input>
<span v-else>{{dialogBindData.advertSubtitle}}</span>
</el-col>
</el-row> -->
<!-- <el-row :gutter="15">
<el-col :span="6" class="content-left"><label>外链地址</label></el-col>
<el-col :span="18" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请插入外链地址" v-model="dialogBindData.linkUrl"></el-input>
<span v-else>{{dialogBindData.linkUrl}}</span>
</el-col>
</el-row> -->
<!-- <el-row :gutter="15" v-if="dialogBindData.advertType!==2">
<el-col :span="6" class="content-left"><label>图片</label></el-col>
<el-col :span="18" class="content-right">
<tailor
width="246"
height="144"
imageType='banner'
resPath="advertImg"
:type="dialogType"
@emitSuccess="handleImgLoad"
:viewUrl="this.dialogBindData.advertPicUrl"
v-if="dialogType===1 || dialogType===2">
</tailor>
<img v-else :src="this.dialogBindData.advertPicUrl" width="216" height="144">
</el-col>
</el-row> -->
<el-row :gutter="15">
<el-col :span="8" class="content-left"><label>身份证号</label></el-col>
<el-col :span="16" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请输入身份证号" v-model="dialogBindData.repairWorkerIdCard"></el-input>
<span v-else>{{dialogBindData.repairWorkerIdCard}}</span>
<el-col :span="6" class="content-left"><label>图片</label></el-col>
<el-col :span="18" class="content-right">
<up-load-img
ref="imgComponent"
v-if="dialogType===1 || dialogType===2"
width="246"
height="144"
resPath="advertImg"
:type="dialogType"
:viewUrl="this.dialogBindData.advertPicUrl"
@emitSuccess="handleImgLoad">
</up-load-img>
<img @click="magnify(dialogBindData.advertPicUrl)" v-else :src="dialogBindData.advertPicUrl" width="246" height="144">
</el-col>
</el-row>
<!-- <el-row :gutter="15">
<el-col :span="8" class="content-left"><label>备注</label></el-col>
<el-col :span="16" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" type="textarea" rows="3" placeholder="请输入备注" resize="none" v-model="dialogBindData.memo"></el-input>
<span v-else>{{dialogBindData.memo || "暂无备注"}}</span>
<el-col :span="6" class="content-left"><label>二级链接</label></el-col>
<el-col :span="18" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" type="text" placeholder="请输入二级链接" resize="none" v-model="dialogBindData.linkUrl"></el-input>
<span v-else>{{dialogBindData.linkUrl}}</span>
</el-col>
</el-row> -->
<!-- <el-input v-if="dialogType===1 || dialogType===2" size="small" type="textarea" rows="3" placeholder="请输入备注" resize="none" v-model="dialogBindData.memo"></el-input> -->
</el-col>
<el-col :span="dialogType==3?12:16">
<h1 class="food-title">活动详情</h1>
<tinymce v-if="dialogType===1 || dialogType===2" :height="400" v-model="dialogBindData.advertContent" :hasImageLoad="1" resPath="adverImg"></tinymce>
<template v-else>
信息展示
<view-page :data="dialogBindData"></view-page>
</template>
</el-col>
</el-row>
</div>
<div class="btns-wrapper">
<el-button size="small" @click="handleClose" :disabled="dialogType===3"><i class="iconfont icon-quxiao"></i>取消</el-button>
......@@ -160,15 +295,40 @@
</template>
<script>
import * as repair from "../../api/repair";
import UpLoadImg from "@/components/UpLoadImg";
import Tinymce from "@/components/Tinymce";
import ViewPage from "./components/ViewPage";
import cropper from "./components/cropper";
// import tailor from "./components/tailor";
import * as adver from "../../api/adver";
import * as common from "../../api/common";
import { fattCreateTime } from "../../utils/fattTime";
export default {
components: { Tinymce, UpLoadImg, ViewPage, cropper },
data() {
return {
seacherParam: {
repairWorkerName: ""
advertType: 1,
menuType: "1",
advertTitle: "",
advertName: "",
isAvailable: null,
censorStatus: null
},
isAvailableData: [
{ code: 1, name: "已启用" },
{ code: 0, name: "未启用" }
],
censorStatusData: [
{ code: 0, name: "待审核" },
{ code: 1, name: "已审核" },
{ code: 2, name: "未通过" }
],
advertTypeData: [
{ code: 1, name: "活动广告" },
{ code: 2, name: "系统公告" },
{ code: 3, name: "新闻资讯" }
],
// 表格数据
dataOption: null,
// 分页数据
......@@ -195,14 +355,19 @@ export default {
// visitReasonId:"1001"
dialogBindData: {
repairWorkerId: "",
repairWorkerName: "",
sex: 1,
repairWorkerPhone: "",
repairWorkerIdCard: ""
advertId: "",
advertType: 1,
advertName: "",
advertTitle: "",
advertSubtitle: "",
advertContent: "",
advertPicUrl: "",
linkUrl: ""
// linkUrl:""
},
// 是否提交
submmitSuccess: false
submmitSuccess: false,
censorStatus: 1
};
},
......@@ -213,7 +378,7 @@ export default {
methods: {
seachFun() {
this.$seach
.submmit(this, repair.getRepairWorkerList)
.submmit(this, adver.advertList)
.then(res => {
this.dataOption = res.data.data;
// 初始化分页数据
......@@ -281,10 +446,34 @@ export default {
// alert(`编辑${JSON.stringify(this.dialogBindData)}`);
// }
// 发送添加请求
const isSubmitActive = this.dialogBindData.repairWorkerName&&this.dialogBindData.repairWorkerPhone&&this.dialogBindData.repairWorkerIdCard;
const param = {
advertId: this.dialogBindData.advertId,
advertType: 1,
// advertName: this.dialogBindData.advertName,
advertTitle: this.dialogBindData.advertTitle,
// advertSubtitle: this.dialogBindData.advertSubtitle,
advertContent: this.dialogBindData.advertContent,
advertPicUrl:
this.dialogBindData.advertType == 2
? null
: this.dialogBindData.advertPicUrl,
censorStatus: 1,
isAvailable: 1,
linkUrl: this.dialogBindData.linkUrl
};
const isSubmitActive =
param.advertType &&
// param.advertName &&
param.advertTitle &&
// param.advertSubtitle &&
(param.advertPicUrl === null
? true
: this.dialogBindData.advertPicUrl) &&
param.advertContent;
if (isSubmitActive) {
this.submmitSuccess = true;
repair.addOrEditRepairWorker(this.dialogBindData).then(res => {
adver.addOrEditAdvert(param).then(res => {
this.getList(() => {
this.$message({
message: this.dialogType === 1 ? "添加成功" : "编辑成功",
......@@ -305,12 +494,17 @@ export default {
handleClose() {
this.dialogState = false;
for (const key in this.dialogBindData) {
if (key === "sex") {
if (key === "advertType") {
this.dialogBindData[key] = 1;
} else {
this.dialogBindData[key] = "";
}
}
this.$refs.imgComponent ? this.$refs.imgComponent.clearImg() : "";
// 销毁富文本编辑器的dom对象
setTimeout(() => {
this.dialogType = 0;
}, 500);
},
// 分页处理
handleSizeChange(val) {
......@@ -325,9 +519,19 @@ export default {
},
// 获取表格数据
getList(cb) {
repair
.getRepairWorkerList({ pageNo: this.pageNo, pageSize: this.pageSize })
.then(res => {
let param = {
pageNo: this.pageNo,
pageSize: this.pageSize,
advertType: 1,
menuType: "1"
};
// 组装搜索参数
for (const key in this.seacherParam) {
if (this.seacherParam[key] === 0 || this.seacherParam[key]) {
param[key] = this.seacherParam[key];
}
}
adver.advertList(param).then(res => {
// 初始话表格数据
this.dataOption = res.data.data;
// 初始化分页数据
......@@ -343,17 +547,77 @@ export default {
},
// 改变启用状态
handleIsVailable(data) {
console.log(data.isVailable);
console.log(data.isAvailable);
const param = {
advertId: data.advertId,
isAvailable: data.isAvailable ? 1 : 0
};
adver.addOrEditAdvert(param).then(res => {
if (res.data.code === "1") {
this.$message({
message: "设置成功",
type: "success"
});
}
});
},
// 显示活动类型
viewAdverType(code) {
if (code === 1) {
return "活动广告";
}
if (code === 2) {
return "系统公告";
} else {
return "新闻资讯";
}
},
// 上传图片成功
handleImgLoad(data) {
this.dialogBindData.advertPicUrl = data.url;
},
viewCensorStatus(code) {
if (code == 0) {
return "待审核";
} else if (code == 1) {
return "已审核";
} else {
return "未通过";
}
},
// 审核函数
handleCensor(data) {
const param = {
visitReasonId: data.visitReasonId,
isVailable: data.isVailable ? 0 : 1
advertId: data.advertId,
censorStatus: this.censorStatus
};
visitor.addOrEditVisitReason(param).then(res => {
adver.addOrEditAdvert(param).then(res => {
if (res.data.code === "1") {
this.getList(() => {
this.$message({
message: "审核完成",
type: "success"
});
this.submmitSuccess = false;
});
}
});
},
// 启用停用
handleUserState(data) {
const param = {
advertId: data.advertId,
isAvailable: data.isAvailable == 1 ? 0 : 1
};
adver.addOrEditAdvert(param).then(res => {
if (res.data.code === "1") {
this.getList(() => {
this.$message({
message: "设置成功",
type: "success"
});
this.submmitSuccess = false;
});
}
});
}
......@@ -362,7 +626,16 @@ export default {
// 激活重置按钮
isActiveReset() {
for (const key in this.seacherParam) {
if (this.seacherParam[key]) {
if (key === "advertType") {
this.seacherParam[key] = 1;
} else if (key === "menuType") {
this.seacherParam[key] = "1";
} else if (
this.seacherParam[key] === 0 ||
this.seacherParam[key] ||
this.seacherParam[key] === 1 ||
this.seacherParam[key] === "1"
) {
return false;
}
}
......@@ -383,6 +656,24 @@ export default {
};
</script>
<style lang="scss" scoped>
.food-title {
font-size: 14px;
&::before {
content: "1";
background: #3a8ee6;
color: transparent;
margin-right: 10px;
}
}
.food-title {
font-size: 14px;
&::before {
content: "1";
background: #3a8ee6;
color: transparent;
margin-right: 10px;
}
}
.dialog-body-content {
.el-row {
margin-top: 14px;
......@@ -410,3 +701,4 @@ export default {
}
}
</style>
<template>
<div class="view-page">
<div class="phone-bg">
<img :src="require('../../../../static/images/phone-bg.png')" alt="">
</div>
<div class="page-infro">
<!-- <el-carousel height="202px" indicator-position="none">
<el-carousel-item v-for="(item,index) in imageArr" :key="index">
<div class="bannerImg"><img :src="item" alt=""></div>
</el-carousel-item>
</el-carousel> -->
<!-- <div class="bannerImg">
<img :src="data.advertPicUrl" alt="" height="202">
</div> -->
<div class="text-infro" v-html="data.advertContent"></div>
</div>
</div>
</template>
<script>
export default {
props:["data"],
data(){
return {
imageArr:[]
}
},
beforeMount(){
const data = this.data;
// let arr = [];
// for(const key in data){
// if(key.indexOf('dishesPicUrl')>-1 && data[key]){
// arr.push(data[key])
// }
// }
// this.imageArr = arr
}
}
</script>
<style lang="scss" scoped>
.view-page{
position: relative;
.phone-bg{
width: 360px;
img{
width: 100%;
}
}
.page-infro{
background:#fff;
position: absolute;
top:110px;
left: 30px;
width:304px;
height: 540px;
overflow-x: hidden;
overflow-y: auto;
.bannerImg{
width: 100%;
height: 202px;
img{
width: 100%;
height: 100%;
}
}
.text-infro{
padding: 0 15px;
}
}
}
</style>
\ No newline at end of file
<template>
<div class="uploadimg-container" :style="{width:width+'px'}">
<el-upload class="uploader-component" :style="styleObj" action="" :show-file-list="false" :before-upload="uploadFile">
<img :style="styleObj" v-if="(type||imageUrl)&&viewUrl" :src="viewUrl || imageUrl" class="avatar">
<i v-else :style="styleObj" class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
<div class="tip">宽/高:{{`${width}*${height}`}}</div>
</div>
</template>
<script>
import axios from "axios";
export default {
props: ["width", "height", "resPath", "type", "viewUrl", "imageType", "idx"],
data() {
return {
imageUrl: "",
param: { resPath: this.resPath },
styleObj: {
width: this.width + "px",
height: this.height + "px",
lineHeight: this.height + "px"
}
};
},
mounted() {},
updated() {},
methods: {
uploadFile(file) {
const upLoadUrl = process.env.BASE_API + "/upload/uploadFile";
let formData = new FormData();
formData.append("files", file);
formData.append("resPath", this.resPath);
// 限制图片上传比例
// if (this.imageType === "banner") {
// console.log(this.imageType);
// formData.append("imageType", this.imageType);
// }
const fileSize = file.size / 1024 / 1024;
if (fileSize > 2) {
this.$message({
message: "上传图片不能大于2M",
type: "warning"
});
} else {
axios.post(upLoadUrl, formData).then(res => {
if (res.data.code == 1) {
this.imageUrl = res.data.data;
if (this.idx === undefined) {
this.$emit("emitSuccess", res.data.data);
} else {
const param = {
url: res.data.data,
idx: this.idx
};
this.$emit("emitSuccess", param);
}
this.$message({
message: "上传成功",
type: "success"
});
} else {
this.$message({
message: res.data.msg,
type: "warning"
});
}
});
}
},
clearImg() {
this.imageUrl = "";
}
}
};
</script>
<style lang="scss" scoped>
.uploadimg-container {
position: relative;
overflow: hidden;
display: inline-block;
.uploader-component {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
width: 178px;
height: 178px;
transition: all 0.3s;
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 178px;
height: 178px;
line-height: 178px;
text-align: center;
transition: all 0.3s;
}
.avatar {
width: 178px;
height: 178px;
display: block;
}
&:hover {
border-color: #409eff;
.avatar-uploader-icon {
font-size: 28px;
color: #409eff;
width: 178px;
height: 178px;
line-height: 178px;
text-align: center;
}
& + .tip {
left: 10px;
opacity: 1;
}
}
}
.tip {
position: absolute;
left: -140px;
opacity: 0;
top: 0;
width: 131px;
color: #fff;
text-shadow: 2px 2px 2px rgba($color: #000000, $alpha: 1);
font-weight: 700;
cursor: pointer;
transition: all 0.3s;
&:hover {
left: 10px;
opacity: 1;
}
}
}
</style>
......@@ -103,7 +103,7 @@
<el-row :gutter="15" v-if="this.dialogBindData.flag!=='1'">
<el-col :span="8" class="content-left"><label>用户角色</label></el-col>
<el-col :span="16" class="content-right">
<el-select size="small" v-if="dialogType===1 || dialogType===2" placeholder="请选择人员" v-model="dialogBindData.sysRole">
<el-select size="small" v-if="dialogType===1 || dialogType===2" placeholder="请选择角色" v-model="dialogBindData.sysRole">
<el-option
v-for="item in chooseRole"
:key="item.roleId"
......@@ -116,11 +116,11 @@
</el-row>
<el-row :gutter="15">
<el-col :span="8" class="content-left"><label>所属部门</label></el-col>
<el-col :span="8" class="content-left"><label>店铺管理员</label></el-col>
<el-col :span="16" class="content-right">
<el-select size="small" v-if="dialogType===1 || dialogType===2" placeholder="请选择部门" v-model="dialogBindData.deptId" @change="getSectionsByDeptId">
<el-select size="small" v-if="dialogType===1 || dialogType===2" placeholder="请选择店铺管理员" v-model="dialogBindData.deptId" @change="getSectionsByDeptId">
<el-option
v-for="item in deptDatas"
v-for="item in shopAdminsData"
:key="item.deptId"
:label="item.deptName"
:value="item.deptId">
......@@ -130,25 +130,11 @@
</el-col>
</el-row>
<el-row :gutter="15">
<el-col :span="8" class="content-left"><label>所属科室</label></el-col>
<el-col :span="16" class="content-right">
<el-select size="small" v-if="dialogType===1 || dialogType===2" placeholder="请选择部门" v-model="dialogBindData.sectionId">
<el-option
v-for="item in sectionDatas"
:key="item.sectionId"
:label="item.sectionName"
:value="item.sectionId">
</el-option>
</el-select>
<span v-else>{{viewSectionName(dialogBindData.sectionId)}}</span>
</el-col>
</el-row>
<el-row :gutter="15">
<el-col :span="8" class="content-left"><label>用户名</label></el-col>
<el-col :span="8" class="content-left"><label>用户名</label></el-col>
<el-col :span="16" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请输入用户名" v-model="dialogBindData.userName"></el-input>
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请输入用户名" v-model="dialogBindData.userName"></el-input>
<span v-else>{{dialogBindData.userName}}</span>
</el-col>
</el-row>
......@@ -156,7 +142,7 @@
<el-row :gutter="15">
<el-col :span="8" class="content-left"><label>真实姓名</label></el-col>
<el-col :span="16" class="content-right">
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请输入用户名" v-model="dialogBindData.realName"></el-input>
<el-input v-if="dialogType===1 || dialogType===2" size="small" placeholder="请输入真实姓名" v-model="dialogBindData.realName"></el-input>
<span v-else>{{dialogBindData.realName}}</span>
</el-col>
</el-row>
......@@ -219,6 +205,7 @@
</template>
<script>
import axios from 'axios';
import elDragDialog from "@/directive/el-dragDialog";
import * as system from "../../api/system";
import { fattCreateTime } from "../../utils/fattTime";
......@@ -248,11 +235,12 @@ export default {
mobilePhone: "",
isAvailable: 1,
sysRole: "",
deptId: "",
flag: "",
sectionName: "",
sectionId: ""
flag: ""
},
//店铺管理员下拉数据
shopAdminsData:null,
// 是否提交
submmitSuccess: false,
// 角色选择数据
......@@ -337,7 +325,10 @@ export default {
// },
add() {
this.dialogType = 1;
this.getRoleList(() => {
// this.getRoleList(() => {
// this.dialogState = true;
// });
this.getRoleAndUserData(() => {
this.dialogState = true;
});
},
......@@ -412,7 +403,7 @@ export default {
} else {
this.submmitSuccess = true;
system.addOrEditSysUser(this.dialogBindData).then(res => {
debugger
debugger;
if (res.data.code == 1) {
this.getList(() => {
this.$message({
......@@ -496,6 +487,27 @@ export default {
cb ? cb() : "";
});
},
//获取角色和管理员下拉数据
getRoleAndUserData(cb) {
axios
.all([
//方法一
system.queryAllSysRole().then(res => {
this.chooseRole = res.data;
}),
//方法二
system.queryAllShopAdmin().then(res => {
this.shopAdminsData = res.data;
})
])
.then(
axios.spread((acct, perms)=> {
cb ? cb() : "";
})
);
},
// 格式化时间
fattTime(time) {
return fattCreateTime(time);
......
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