修复语法格式问题
This commit is contained in:
@ -2,3 +2,4 @@ build/*.js
|
|||||||
src/assets
|
src/assets
|
||||||
public
|
public
|
||||||
dist
|
dist
|
||||||
|
src/views
|
||||||
|
@ -50,6 +50,6 @@ export function remark(data) {
|
|||||||
export function get() {
|
export function get() {
|
||||||
return request({
|
return request({
|
||||||
url: 'api/yxExpress',
|
url: 'api/yxExpress',
|
||||||
method: 'get',
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
:file-list="fileList"
|
:file-list="fileList"
|
||||||
multiple
|
multiple
|
||||||
:limit="1"
|
:limit="1"
|
||||||
>
|
>
|
||||||
<el-button size="small" type="primary">点击上传</el-button>
|
<el-button size="small" type="primary">点击上传</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</div>
|
</div>
|
||||||
@ -19,7 +19,13 @@
|
|||||||
import { getToken } from '@/utils/auth'
|
import { getToken } from '@/utils/auth'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
export default {
|
export default {
|
||||||
data () {
|
props: {
|
||||||
|
value: {
|
||||||
|
default: '',
|
||||||
|
type: String
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
return {
|
return {
|
||||||
resourcesUrl: '',
|
resourcesUrl: '',
|
||||||
headers: {
|
headers: {
|
||||||
@ -27,35 +33,29 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props: {
|
|
||||||
value: {
|
|
||||||
default: '',
|
|
||||||
type: String
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters([
|
...mapGetters([
|
||||||
'uploadApi'
|
'uploadApi'
|
||||||
]),
|
]),
|
||||||
fileList () {
|
fileList() {
|
||||||
let res = []
|
const res = []
|
||||||
if (this.value) {
|
if (this.value) {
|
||||||
res.push({name: this.value, url: this.resourcesUrl + this.value, response: this.value})
|
res.push({ name: this.value, url: this.resourcesUrl + this.value, response: this.value })
|
||||||
}
|
}
|
||||||
this.$emit('input', this.value)
|
this.$emit('input', this.value)
|
||||||
console.log("res"+res)
|
console.log('res' + res)
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 图片上传
|
// 图片上传
|
||||||
handleUploadSuccess (response, file, fileList) {
|
handleUploadSuccess(response, file, fileList) {
|
||||||
this.$emit('input', file.response.link)
|
this.$emit('input', file.response.link)
|
||||||
},
|
},
|
||||||
handleRemove (file, fileList) {
|
handleRemove(file, fileList) {
|
||||||
this.$emit('change', file)
|
this.$emit('change', file)
|
||||||
},
|
},
|
||||||
beforeRemove (file, fileList) {
|
beforeRemove(file, fileList) {
|
||||||
return this.$confirm(`确定移除 ${file.name}?`)
|
return this.$confirm(`确定移除 ${file.name}?`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,34 +1,35 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="type == 'image'">
|
<div v-if="type == 'image'">
|
||||||
<ul class="el-upload-list el-upload-list--picture-card" v-for="(item,index) in value" :key="index">
|
<ul v-for="(item,index) in value" :key="index" class="el-upload-list el-upload-list--picture-card">
|
||||||
<li tabindex="0" class="el-upload-list__item is-ready" :style="'width: '+width+'px;height: '+height+'px'">
|
<li tabindex="0" class="el-upload-list__item is-ready" :style="'width: '+width+'px;height: '+height+'px'">
|
||||||
<div>
|
<div>
|
||||||
<img :src="item" alt="" class="el-upload-list__item-thumbnail">
|
<img :src="item" alt="" class="el-upload-list__item-thumbnail">
|
||||||
<span class="el-upload-list__item-actions">
|
<span class="el-upload-list__item-actions">
|
||||||
<span class="el-upload-list__item-preview" v-if="index != 0" @click="moveMaterial(index,'up')">
|
<span v-if="index != 0" class="el-upload-list__item-preview" @click="moveMaterial(index,'up')">
|
||||||
<i class="el-icon-back"></i>
|
<i class="el-icon-back" />
|
||||||
</span>
|
</span>
|
||||||
<span class="el-upload-list__item-preview" @click="zoomMaterial(index)">
|
<span class="el-upload-list__item-preview" @click="zoomMaterial(index)">
|
||||||
<i class="el-icon-view"></i>
|
<i class="el-icon-view" />
|
||||||
</span>
|
</span>
|
||||||
<span class="el-upload-list__item-delete" @click="deleteMaterial(index)">
|
<span class="el-upload-list__item-delete" @click="deleteMaterial(index)">
|
||||||
<i class="el-icon-delete"></i>
|
<i class="el-icon-delete" />
|
||||||
</span>
|
</span>
|
||||||
<span class="el-upload-list__item-preview" v-if="index != value.length-1" @click="moveMaterial(index,'down')">
|
<span v-if="index != value.length-1" class="el-upload-list__item-preview" @click="moveMaterial(index,'down')">
|
||||||
<i class="el-icon-right"></i>
|
<i class="el-icon-right" />
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div tabindex="0" class="el-upload el-upload--picture-card" v-if="num > value.length" @click="toSeleteMaterial" :style="'width: '+width+'px;height: '+height+'px;'+'line-height:'+height+'px;'">
|
<div v-if="num > value.length" tabindex="0" class="el-upload el-upload--picture-card" :style="'width: '+width+'px;height: '+height+'px;'+'line-height:'+height+'px;'" @click="toSeleteMaterial">
|
||||||
<i class="el-icon-plus"></i>
|
<i class="el-icon-plus" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog
|
||||||
append-to-body
|
append-to-body
|
||||||
:visible.sync="dialogVisible"
|
:visible.sync="dialogVisible"
|
||||||
width="35%">
|
width="35%"
|
||||||
|
>
|
||||||
<img :src="url" alt="" style="width: 100%">
|
<img :src="url" alt="" style="width: 100%">
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
@ -36,22 +37,26 @@
|
|||||||
title="图片素材库"
|
title="图片素材库"
|
||||||
append-to-body
|
append-to-body
|
||||||
:visible.sync="listDialogVisible"
|
:visible.sync="listDialogVisible"
|
||||||
width="70%">
|
width="70%"
|
||||||
|
>
|
||||||
<el-container>
|
<el-container>
|
||||||
<el-aside width="unset">
|
<el-aside width="unset">
|
||||||
<div style="margin-bottom: 10px">
|
<div style="margin-bottom: 10px">
|
||||||
<el-button
|
<el-button
|
||||||
class="el-icon-plus"
|
class="el-icon-plus"
|
||||||
size="small"
|
size="small"
|
||||||
@click="materialgroupAdd()">
|
@click="materialgroupAdd()"
|
||||||
|
>
|
||||||
添加分组
|
添加分组
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-tabs tab-position="left" v-model="materialgroupObjId" v-loading="materialgroupLoading" @tab-click="tabClick">
|
<el-tabs v-model="materialgroupObjId" v-loading="materialgroupLoading" tab-position="left" @tab-click="tabClick">
|
||||||
<el-tab-pane v-for="(item,index) in materialgroupList"
|
<el-tab-pane
|
||||||
:key="index"
|
v-for="(item,index) in materialgroupList"
|
||||||
:name="item.id">
|
:key="index"
|
||||||
<span slot="label"> {{item.name}}</span>
|
:name="item.id"
|
||||||
|
>
|
||||||
|
<span slot="label"> {{ item.name }}</span>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</el-aside>
|
</el-aside>
|
||||||
@ -60,7 +65,7 @@
|
|||||||
<div slot="header">
|
<div slot="header">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<span>{{materialgroupObj.name}}</span>
|
<span>{{ materialgroupObj.name }}</span>
|
||||||
<span v-if="materialgroupObj.id != '-1'">
|
<span v-if="materialgroupObj.id != '-1'">
|
||||||
<el-button size="small" type="text" class="el-icon-edit" style="margin-left: 10px;" @click="materialgroupEdit(materialgroupObj)">重命名</el-button>
|
<el-button size="small" type="text" class="el-icon-edit" style="margin-left: 10px;" @click="materialgroupEdit(materialgroupObj)">重命名</el-button>
|
||||||
<el-button size="small" type="text" class="el-icon-delete" style="margin-left: 10px;color: red" @click="materialgroupDelete(materialgroupObj)">删除</el-button>
|
<el-button size="small" type="text" class="el-icon-delete" style="margin-left: 10px;color: red" @click="materialgroupDelete(materialgroupObj)">删除</el-button>
|
||||||
@ -73,7 +78,8 @@
|
|||||||
:file-list="[]"
|
:file-list="[]"
|
||||||
:on-progress="handleProgress"
|
:on-progress="handleProgress"
|
||||||
:before-upload="beforeUpload"
|
:before-upload="beforeUpload"
|
||||||
:on-success="handleSuccess">
|
:on-success="handleSuccess"
|
||||||
|
>
|
||||||
<el-button size="small" type="primary">点击上传</el-button>
|
<el-button size="small" type="primary">点击上传</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -86,42 +92,43 @@
|
|||||||
type="info"
|
type="info"
|
||||||
:closable="false"
|
:closable="false"
|
||||||
center
|
center
|
||||||
show-icon>
|
show-icon
|
||||||
</el-alert>
|
/>
|
||||||
<el-row :gutter="5">
|
<el-row :gutter="5">
|
||||||
<el-checkbox-group v-model="urls" :max="num - value.length">
|
<el-checkbox-group v-model="urls" :max="num - value.length">
|
||||||
<el-col :span="4" v-for="(item,index) in tableData" :key="index">
|
<el-col v-for="(item,index) in tableData" :key="index" :span="4">
|
||||||
<el-card :body-style="{ padding: '5px' }">
|
<el-card :body-style="{ padding: '5px' }">
|
||||||
<el-image
|
<el-image
|
||||||
style="width: 100%;height: 100px"
|
style="width: 100%;height: 100px"
|
||||||
:src="item.url"
|
:src="item.url"
|
||||||
fit="contain"
|
fit="contain"
|
||||||
:preview-src-list="[item.url]"></el-image>
|
:preview-src-list="[item.url]"
|
||||||
<div>
|
/>
|
||||||
<el-checkbox class="material-name" :label="item.url">
|
<div>
|
||||||
选择
|
<el-checkbox class="material-name" :label="item.url">
|
||||||
</el-checkbox>
|
选择
|
||||||
<el-row>
|
</el-checkbox>
|
||||||
<el-col :span="24" class="col-do">
|
<el-row>
|
||||||
<el-button type="text" size="medium" @click="materialDel(item)">删除</el-button>
|
<el-col :span="24" class="col-do">
|
||||||
</el-col>
|
<el-button type="text" size="medium" @click="materialDel(item)">删除</el-button>
|
||||||
</el-row>
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-pagination
|
<el-pagination
|
||||||
@size-change="sizeChange"
|
|
||||||
@current-change="pageChange"
|
|
||||||
:current-page.sync="page.currentPage"
|
:current-page.sync="page.currentPage"
|
||||||
:page-sizes="[12, 24]"
|
:page-sizes="[12, 24]"
|
||||||
:page-size="page.pageSize"
|
:page-size="page.pageSize"
|
||||||
layout="total, sizes, prev, pager, next, jumper"
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
:total="page.total"
|
:total="page.total"
|
||||||
class="pagination">
|
class="pagination"
|
||||||
</el-pagination>
|
@size-change="sizeChange"
|
||||||
|
@current-change="pageChange"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-main>
|
</el-main>
|
||||||
@ -136,318 +143,318 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getPage as materialgroupPage, addObj as materialgroupAdd, delObj as materialgroupDel, putObj as materialgroupEdit} from '@/api/tools/materialgroup'
|
import { getPage as materialgroupPage, addObj as materialgroupAdd, delObj as materialgroupDel, putObj as materialgroupEdit } from '@/api/tools/materialgroup'
|
||||||
import { getPage , addObj, delObj, putObj} from '@/api/tools/material'
|
import { getPage, addObj, delObj, putObj } from '@/api/tools/material'
|
||||||
import { getToken } from '@/utils/auth'
|
import { getToken } from '@/utils/auth'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "materialList",
|
name: 'MaterialList',
|
||||||
props: {
|
props: {
|
||||||
//素材数据
|
// 素材数据
|
||||||
value:{
|
value: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default() {
|
default() {
|
||||||
return []
|
return []
|
||||||
},
|
|
||||||
},
|
|
||||||
//素材类型
|
|
||||||
type:{
|
|
||||||
type: String,
|
|
||||||
},
|
|
||||||
//素材限制数量,默认5个
|
|
||||||
num:{
|
|
||||||
type: Number,
|
|
||||||
default() {
|
|
||||||
return 5
|
|
||||||
},
|
|
||||||
},
|
|
||||||
//宽度
|
|
||||||
width: {
|
|
||||||
type: Number,
|
|
||||||
default() {
|
|
||||||
return 150
|
|
||||||
}
|
|
||||||
},
|
|
||||||
//宽度
|
|
||||||
height: {
|
|
||||||
type: Number,
|
|
||||||
default() {
|
|
||||||
return 150
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
// 素材类型
|
||||||
return {
|
type: {
|
||||||
headers:{
|
type: String
|
||||||
Authorization: getToken()
|
},
|
||||||
},
|
// 素材限制数量,默认5个
|
||||||
dialogVisible: false,
|
num: {
|
||||||
url: '',
|
type: Number,
|
||||||
listDialogVisible: false,
|
default() {
|
||||||
materialgroupList: [],
|
return 5
|
||||||
materialgroupObjId: '',
|
|
||||||
materialgroupObj: {},
|
|
||||||
materialgroupLoading: false,
|
|
||||||
tableData: [],
|
|
||||||
page: {
|
|
||||||
total: 0, // 总页数
|
|
||||||
currentPage: 1, // 当前页数
|
|
||||||
pageSize: 12, // 每页显示多少条
|
|
||||||
ascs: [],//升序字段
|
|
||||||
descs: 'create_time'//降序字段
|
|
||||||
},
|
|
||||||
tableLoading: false,
|
|
||||||
groupId: null,
|
|
||||||
urls: []
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
// 宽度
|
||||||
...mapGetters([
|
width: {
|
||||||
'uploadApi'
|
type: Number,
|
||||||
])
|
default() {
|
||||||
|
return 150
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods:{
|
// 宽度
|
||||||
moveMaterial(index,type){
|
height: {
|
||||||
if(type == 'up'){
|
type: Number,
|
||||||
let tempOption = this.value[index - 1]
|
default() {
|
||||||
this.$set(this.value, index - 1, this.value[index])
|
return 150
|
||||||
this.$set(this.value, index, tempOption)
|
|
||||||
}
|
|
||||||
if(type == 'down'){
|
|
||||||
let tempOption = this.value[index + 1]
|
|
||||||
this.$set(this.value, index + 1, this.value[index])
|
|
||||||
this.$set(this.value, index, tempOption)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
zoomMaterial(index){
|
|
||||||
this.dialogVisible = true
|
|
||||||
this.url = this.value[index]
|
|
||||||
},
|
|
||||||
deleteMaterial(index){
|
|
||||||
let that = this
|
|
||||||
this.$confirm('是否确认删除?', '提示', {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
type: 'warning'
|
|
||||||
}).then(function() {
|
|
||||||
that.value.splice(index,1)
|
|
||||||
that.urls = []
|
|
||||||
})
|
|
||||||
},
|
|
||||||
toSeleteMaterial(){
|
|
||||||
this.listDialogVisible = true
|
|
||||||
if(this.tableData.length <= 0){
|
|
||||||
this.materialgroupPage()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
materialgroupPage(){
|
|
||||||
this.materialgroupLoading = true
|
|
||||||
materialgroupPage({
|
|
||||||
total: 0, // 总页数
|
|
||||||
currentPage: 1, // 当前页数
|
|
||||||
pageSize: 100, // 每页显示多少条
|
|
||||||
ascs: [],//升序字段
|
|
||||||
descs: 'create_time'//降序字段
|
|
||||||
}).then(response => {
|
|
||||||
this.materialgroupLoading = false
|
|
||||||
let materialgroupList = response.content
|
|
||||||
materialgroupList.unshift({
|
|
||||||
id: '-1',
|
|
||||||
name: '全部分组'
|
|
||||||
})
|
|
||||||
this.materialgroupList = materialgroupList
|
|
||||||
this.tabClick({
|
|
||||||
index: 0
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
|
||||||
materialgroupDelete(materialgroupObj){
|
|
||||||
let that = this
|
|
||||||
this.$confirm('是否确认删除该分组?', '提示', {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
type: 'warning'
|
|
||||||
}).then(function() {
|
|
||||||
materialgroupDel(materialgroupObj.id)
|
|
||||||
.then(function() {
|
|
||||||
that.$delete(that.materialgroupList, materialgroupObj.index)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
|
||||||
materialgroupEdit(materialgroupObj){
|
|
||||||
let that = this
|
|
||||||
this.$prompt('请输入分组名', '提示', {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
inputValue: materialgroupObj.name,
|
|
||||||
}).then(({ value }) => {
|
|
||||||
materialgroupEdit({
|
|
||||||
id: materialgroupObj.id,
|
|
||||||
name: value
|
|
||||||
}).then(function() {
|
|
||||||
materialgroupObj.name = value
|
|
||||||
that.$set(that.materialgroupList, materialgroupObj.index, materialgroupObj)
|
|
||||||
})
|
|
||||||
}).catch(() => {
|
|
||||||
|
|
||||||
})
|
|
||||||
},
|
|
||||||
materialgroupAdd(){
|
|
||||||
let that = this
|
|
||||||
this.$prompt('请输入分组名', '提示', {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
}).then(({ value }) => {
|
|
||||||
materialgroupAdd({
|
|
||||||
name: value
|
|
||||||
}).then(function() {
|
|
||||||
that.materialgroupPage()
|
|
||||||
})
|
|
||||||
}).catch(() => {
|
|
||||||
|
|
||||||
})
|
|
||||||
},
|
|
||||||
tabClick(tab,event){
|
|
||||||
this.urls = []
|
|
||||||
let index = Number(tab.index)
|
|
||||||
let materialgroupObj = this.materialgroupList[index]
|
|
||||||
materialgroupObj.index = index
|
|
||||||
this.materialgroupObj = materialgroupObj
|
|
||||||
this.materialgroupObjId = materialgroupObj.id
|
|
||||||
this.page.currentPage = 1
|
|
||||||
this.page.total = 0
|
|
||||||
if(materialgroupObj.id != '-1'){
|
|
||||||
this.groupId = materialgroupObj.id
|
|
||||||
}else{
|
|
||||||
this.groupId = null
|
|
||||||
}
|
|
||||||
this.getPage(this.page)
|
|
||||||
},
|
|
||||||
getPage(page, params) {
|
|
||||||
this.tableLoading = true
|
|
||||||
getPage(Object.assign({
|
|
||||||
page: page.currentPage - 1,
|
|
||||||
size: page.pageSize,
|
|
||||||
descs: this.page.descs,
|
|
||||||
ascs: this.page.ascs,
|
|
||||||
}, {
|
|
||||||
groupId: this.groupId
|
|
||||||
})).then(response => {
|
|
||||||
let tableData = response.content
|
|
||||||
this.page.total = response.totalElements
|
|
||||||
this.page.currentPage = page.currentPage
|
|
||||||
this.page.pageSize = page.pageSize
|
|
||||||
this.tableData = tableData
|
|
||||||
this.tableLoading = false
|
|
||||||
}).catch(() => {
|
|
||||||
this.tableLoading=false
|
|
||||||
})
|
|
||||||
},
|
|
||||||
sizeChange(val) {
|
|
||||||
console.log(val)
|
|
||||||
this.page.currentPage = 1
|
|
||||||
this.page.pageSize = val
|
|
||||||
this.getPage(this.page)
|
|
||||||
},
|
|
||||||
pageChange(val) {
|
|
||||||
console.log(val)
|
|
||||||
this.page.currentPage = val
|
|
||||||
//this.page.pageSize = val
|
|
||||||
this.getPage(this.page)
|
|
||||||
},
|
|
||||||
materialRename(item){
|
|
||||||
let that = this
|
|
||||||
this.$prompt('请输入素材名', '提示', {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
inputValue: item.name,
|
|
||||||
}).then(({ value }) => {
|
|
||||||
putObj({
|
|
||||||
id: item.id,
|
|
||||||
name: value
|
|
||||||
}).then(function() {
|
|
||||||
that.getPage(that.page)
|
|
||||||
})
|
|
||||||
}).catch(() => {
|
|
||||||
|
|
||||||
})
|
|
||||||
},
|
|
||||||
materialUrl(item){
|
|
||||||
let that = this
|
|
||||||
this.$prompt('素材链接', '提示', {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
inputValue: item.url,
|
|
||||||
}).then(({ value }) => {
|
|
||||||
|
|
||||||
}).catch(() => {
|
|
||||||
|
|
||||||
})
|
|
||||||
},
|
|
||||||
materialDel(item){
|
|
||||||
let that = this
|
|
||||||
this.$confirm('是否确认删除该素材?', '提示', {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
type: 'warning'
|
|
||||||
}).then(function() {
|
|
||||||
delObj(item.id)
|
|
||||||
.then(function() {
|
|
||||||
that.getPage(that.page)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
|
||||||
handleCommand(command) {
|
|
||||||
let that = this
|
|
||||||
let s = command.split('-')
|
|
||||||
putObj({
|
|
||||||
id: s[0],
|
|
||||||
groupId: s[1]
|
|
||||||
}).then(function() {
|
|
||||||
that.getPage(that.page)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
handleProgress(event, file, fileList){
|
|
||||||
// let uploadProgress = file.percentage.toFixed(0)
|
|
||||||
// this.uploadProgress = uploadProgress
|
|
||||||
},
|
|
||||||
handleSuccess(response, file, fileList){
|
|
||||||
let that = this
|
|
||||||
this.uploadProgress = 0
|
|
||||||
addObj({
|
|
||||||
type: '1',
|
|
||||||
groupId: this.groupId != '-1' ? this.groupId : null,
|
|
||||||
name: file.name,
|
|
||||||
url: response.link
|
|
||||||
}).then(function() {
|
|
||||||
that.getPage(that.page)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
beforeUpload(file){
|
|
||||||
const isPic =
|
|
||||||
file.type === "image/jpeg" ||
|
|
||||||
file.type === "image/png" ||
|
|
||||||
file.type === "image/gif" ||
|
|
||||||
file.type === "image/jpg"
|
|
||||||
const isLt2M = file.size / 1024 / 1024 < 2
|
|
||||||
if (!isPic) {
|
|
||||||
this.$message.error("上传图片只能是 JPG、JPEG、PNG、GIF 格式!")
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
if (!isLt2M) {
|
|
||||||
this.$message.error('上传头像图片大小不能超过 2MB!')
|
|
||||||
}
|
|
||||||
return isPic && isLt2M
|
|
||||||
},
|
|
||||||
sureUrls(){
|
|
||||||
this.urls.forEach(item => {
|
|
||||||
this.$set(this.value,this.value.length, item)
|
|
||||||
})
|
|
||||||
this.listDialogVisible=false
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
headers: {
|
||||||
|
Authorization: getToken()
|
||||||
|
},
|
||||||
|
dialogVisible: false,
|
||||||
|
url: '',
|
||||||
|
listDialogVisible: false,
|
||||||
|
materialgroupList: [],
|
||||||
|
materialgroupObjId: '',
|
||||||
|
materialgroupObj: {},
|
||||||
|
materialgroupLoading: false,
|
||||||
|
tableData: [],
|
||||||
|
page: {
|
||||||
|
total: 0, // 总页数
|
||||||
|
currentPage: 1, // 当前页数
|
||||||
|
pageSize: 12, // 每页显示多少条
|
||||||
|
ascs: [], // 升序字段
|
||||||
|
descs: 'create_time'// 降序字段
|
||||||
|
},
|
||||||
|
tableLoading: false,
|
||||||
|
groupId: null,
|
||||||
|
urls: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters([
|
||||||
|
'uploadApi'
|
||||||
|
])
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
moveMaterial(index, type) {
|
||||||
|
if (type == 'up') {
|
||||||
|
const tempOption = this.value[index - 1]
|
||||||
|
this.$set(this.value, index - 1, this.value[index])
|
||||||
|
this.$set(this.value, index, tempOption)
|
||||||
|
}
|
||||||
|
if (type == 'down') {
|
||||||
|
const tempOption = this.value[index + 1]
|
||||||
|
this.$set(this.value, index + 1, this.value[index])
|
||||||
|
this.$set(this.value, index, tempOption)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
zoomMaterial(index) {
|
||||||
|
this.dialogVisible = true
|
||||||
|
this.url = this.value[index]
|
||||||
|
},
|
||||||
|
deleteMaterial(index) {
|
||||||
|
const that = this
|
||||||
|
this.$confirm('是否确认删除?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(function() {
|
||||||
|
that.value.splice(index, 1)
|
||||||
|
that.urls = []
|
||||||
|
})
|
||||||
|
},
|
||||||
|
toSeleteMaterial() {
|
||||||
|
this.listDialogVisible = true
|
||||||
|
if (this.tableData.length <= 0) {
|
||||||
|
this.materialgroupPage()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
materialgroupPage() {
|
||||||
|
this.materialgroupLoading = true
|
||||||
|
materialgroupPage({
|
||||||
|
total: 0, // 总页数
|
||||||
|
currentPage: 1, // 当前页数
|
||||||
|
pageSize: 100, // 每页显示多少条
|
||||||
|
ascs: [], // 升序字段
|
||||||
|
descs: 'create_time'// 降序字段
|
||||||
|
}).then(response => {
|
||||||
|
this.materialgroupLoading = false
|
||||||
|
const materialgroupList = response.content
|
||||||
|
materialgroupList.unshift({
|
||||||
|
id: '-1',
|
||||||
|
name: '全部分组'
|
||||||
|
})
|
||||||
|
this.materialgroupList = materialgroupList
|
||||||
|
this.tabClick({
|
||||||
|
index: 0
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
materialgroupDelete(materialgroupObj) {
|
||||||
|
const that = this
|
||||||
|
this.$confirm('是否确认删除该分组?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(function() {
|
||||||
|
materialgroupDel(materialgroupObj.id)
|
||||||
|
.then(function() {
|
||||||
|
that.$delete(that.materialgroupList, materialgroupObj.index)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
materialgroupEdit(materialgroupObj) {
|
||||||
|
const that = this
|
||||||
|
this.$prompt('请输入分组名', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
inputValue: materialgroupObj.name
|
||||||
|
}).then(({ value }) => {
|
||||||
|
materialgroupEdit({
|
||||||
|
id: materialgroupObj.id,
|
||||||
|
name: value
|
||||||
|
}).then(function() {
|
||||||
|
materialgroupObj.name = value
|
||||||
|
that.$set(that.materialgroupList, materialgroupObj.index, materialgroupObj)
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
materialgroupAdd() {
|
||||||
|
const that = this
|
||||||
|
this.$prompt('请输入分组名', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消'
|
||||||
|
}).then(({ value }) => {
|
||||||
|
materialgroupAdd({
|
||||||
|
name: value
|
||||||
|
}).then(function() {
|
||||||
|
that.materialgroupPage()
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
tabClick(tab, event) {
|
||||||
|
this.urls = []
|
||||||
|
const index = Number(tab.index)
|
||||||
|
const materialgroupObj = this.materialgroupList[index]
|
||||||
|
materialgroupObj.index = index
|
||||||
|
this.materialgroupObj = materialgroupObj
|
||||||
|
this.materialgroupObjId = materialgroupObj.id
|
||||||
|
this.page.currentPage = 1
|
||||||
|
this.page.total = 0
|
||||||
|
if (materialgroupObj.id != '-1') {
|
||||||
|
this.groupId = materialgroupObj.id
|
||||||
|
} else {
|
||||||
|
this.groupId = null
|
||||||
|
}
|
||||||
|
this.getPage(this.page)
|
||||||
|
},
|
||||||
|
getPage(page, params) {
|
||||||
|
this.tableLoading = true
|
||||||
|
getPage(Object.assign({
|
||||||
|
page: page.currentPage - 1,
|
||||||
|
size: page.pageSize,
|
||||||
|
descs: this.page.descs,
|
||||||
|
ascs: this.page.ascs
|
||||||
|
}, {
|
||||||
|
groupId: this.groupId
|
||||||
|
})).then(response => {
|
||||||
|
const tableData = response.content
|
||||||
|
this.page.total = response.totalElements
|
||||||
|
this.page.currentPage = page.currentPage
|
||||||
|
this.page.pageSize = page.pageSize
|
||||||
|
this.tableData = tableData
|
||||||
|
this.tableLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.tableLoading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
sizeChange(val) {
|
||||||
|
console.log(val)
|
||||||
|
this.page.currentPage = 1
|
||||||
|
this.page.pageSize = val
|
||||||
|
this.getPage(this.page)
|
||||||
|
},
|
||||||
|
pageChange(val) {
|
||||||
|
console.log(val)
|
||||||
|
this.page.currentPage = val
|
||||||
|
// this.page.pageSize = val
|
||||||
|
this.getPage(this.page)
|
||||||
|
},
|
||||||
|
materialRename(item) {
|
||||||
|
const that = this
|
||||||
|
this.$prompt('请输入素材名', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
inputValue: item.name
|
||||||
|
}).then(({ value }) => {
|
||||||
|
putObj({
|
||||||
|
id: item.id,
|
||||||
|
name: value
|
||||||
|
}).then(function() {
|
||||||
|
that.getPage(that.page)
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
materialUrl(item) {
|
||||||
|
const that = this
|
||||||
|
this.$prompt('素材链接', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
inputValue: item.url
|
||||||
|
}).then(({ value }) => {
|
||||||
|
|
||||||
|
}).catch(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
materialDel(item) {
|
||||||
|
const that = this
|
||||||
|
this.$confirm('是否确认删除该素材?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(function() {
|
||||||
|
delObj(item.id)
|
||||||
|
.then(function() {
|
||||||
|
that.getPage(that.page)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleCommand(command) {
|
||||||
|
const that = this
|
||||||
|
const s = command.split('-')
|
||||||
|
putObj({
|
||||||
|
id: s[0],
|
||||||
|
groupId: s[1]
|
||||||
|
}).then(function() {
|
||||||
|
that.getPage(that.page)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleProgress(event, file, fileList) {
|
||||||
|
// let uploadProgress = file.percentage.toFixed(0)
|
||||||
|
// this.uploadProgress = uploadProgress
|
||||||
|
},
|
||||||
|
handleSuccess(response, file, fileList) {
|
||||||
|
const that = this
|
||||||
|
this.uploadProgress = 0
|
||||||
|
addObj({
|
||||||
|
type: '1',
|
||||||
|
groupId: this.groupId != '-1' ? this.groupId : null,
|
||||||
|
name: file.name,
|
||||||
|
url: response.link
|
||||||
|
}).then(function() {
|
||||||
|
that.getPage(that.page)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
beforeUpload(file) {
|
||||||
|
const isPic =
|
||||||
|
file.type === 'image/jpeg' ||
|
||||||
|
file.type === 'image/png' ||
|
||||||
|
file.type === 'image/gif' ||
|
||||||
|
file.type === 'image/jpg'
|
||||||
|
const isLt2M = file.size / 1024 / 1024 < 2
|
||||||
|
if (!isPic) {
|
||||||
|
this.$message.error('上传图片只能是 JPG、JPEG、PNG、GIF 格式!')
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (!isLt2M) {
|
||||||
|
this.$message.error('上传头像图片大小不能超过 2MB!')
|
||||||
|
}
|
||||||
|
return isPic && isLt2M
|
||||||
|
},
|
||||||
|
sureUrls() {
|
||||||
|
this.urls.forEach(item => {
|
||||||
|
this.$set(this.value, this.value.length, item)
|
||||||
|
})
|
||||||
|
this.listDialogVisible = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@ -18,6 +18,12 @@
|
|||||||
import { getToken } from '@/utils/auth'
|
import { getToken } from '@/utils/auth'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
export default {
|
export default {
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
default: '',
|
||||||
|
type: String
|
||||||
|
}
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
resourcesUrl: '',
|
resourcesUrl: '',
|
||||||
@ -31,12 +37,6 @@ export default {
|
|||||||
'qiNiuUploadApi'
|
'qiNiuUploadApi'
|
||||||
])
|
])
|
||||||
},
|
},
|
||||||
props: {
|
|
||||||
value: {
|
|
||||||
default: '',
|
|
||||||
type: String
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
// 图片上传
|
// 图片上传
|
||||||
handleUploadSuccess(response, file, fileList) {
|
handleUploadSuccess(response, file, fileList) {
|
||||||
|
@ -18,6 +18,12 @@
|
|||||||
import { getToken } from '@/utils/auth'
|
import { getToken } from '@/utils/auth'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
export default {
|
export default {
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
default: '',
|
||||||
|
type: String
|
||||||
|
}
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
resourcesUrl: '',
|
resourcesUrl: '',
|
||||||
@ -31,12 +37,6 @@ export default {
|
|||||||
'qiNiuUploadApi'
|
'qiNiuUploadApi'
|
||||||
])
|
])
|
||||||
},
|
},
|
||||||
props: {
|
|
||||||
value: {
|
|
||||||
default: '',
|
|
||||||
type: String
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
// 图片上传
|
// 图片上传
|
||||||
handleUploadSuccess(response, file, fileList) {
|
handleUploadSuccess(response, file, fileList) {
|
||||||
|
@ -1,82 +0,0 @@
|
|||||||
<!--<template>-->
|
|
||||||
<!--<div>-->
|
|
||||||
<!--<el-upload-->
|
|
||||||
<!--class="pic-uploader-component"-->
|
|
||||||
<!--:action="imagesUploadApi"-->
|
|
||||||
<!--:headers="headers"-->
|
|
||||||
<!--:show-file-list="false"-->
|
|
||||||
<!--:on-success="handleUploadSuccess"-->
|
|
||||||
<!--:before-upload="beforeAvatarUpload">-->
|
|
||||||
<!--<img v-if="value" :src="resourcesUrl + value" class="pic">-->
|
|
||||||
<!--<i v-else class="el-icon-plus pic-uploader-icon"></i>-->
|
|
||||||
<!--</el-upload>-->
|
|
||||||
<!--</div>-->
|
|
||||||
<!--</template>-->
|
|
||||||
|
|
||||||
<!--<script>-->
|
|
||||||
<!--import { getToken } from '@/utils/auth'-->
|
|
||||||
<!--import { mapGetters } from 'vuex'-->
|
|
||||||
<!--export default {-->
|
|
||||||
<!--data () {-->
|
|
||||||
<!--return {-->
|
|
||||||
<!--resourcesUrl: '',-->
|
|
||||||
<!--headers: {-->
|
|
||||||
<!--'Authorization': 'Bearer ' + getToken()-->
|
|
||||||
<!--}-->
|
|
||||||
<!--}-->
|
|
||||||
<!--},-->
|
|
||||||
<!--computed: {-->
|
|
||||||
<!--...mapGetters([-->
|
|
||||||
<!--'imagesUploadApi'-->
|
|
||||||
<!--])-->
|
|
||||||
<!--},-->
|
|
||||||
<!--props: {-->
|
|
||||||
<!--value: {-->
|
|
||||||
<!--default: '',-->
|
|
||||||
<!--type: String-->
|
|
||||||
<!--}-->
|
|
||||||
<!--},-->
|
|
||||||
<!--methods: {-->
|
|
||||||
<!--// 图片上传-->
|
|
||||||
<!--handleUploadSuccess(response, file, fileList) {-->
|
|
||||||
<!--console.log(file)-->
|
|
||||||
<!--this.$emit('input', file.response.data[0])-->
|
|
||||||
<!--},-->
|
|
||||||
<!--// 限制图片上传大小-->
|
|
||||||
<!--beforeAvatarUpload(file) {-->
|
|
||||||
<!--const isLt2M = file.size / 1024 / 1024 < 2-->
|
|
||||||
<!--if (!isLt2M) {-->
|
|
||||||
<!--this.$message.error('上传头像图片大小不能超过 2MB!')-->
|
|
||||||
<!--}-->
|
|
||||||
<!--return isLt2M-->
|
|
||||||
<!--}-->
|
|
||||||
<!--}-->
|
|
||||||
<!--}-->
|
|
||||||
<!--</script>-->
|
|
||||||
|
|
||||||
<!--<style lang="scss">-->
|
|
||||||
<!--.pic-uploader-component .el-upload {-->
|
|
||||||
<!--border: 1px dashed #d9d9d9;-->
|
|
||||||
<!--border-radius: 6px;-->
|
|
||||||
<!--cursor: pointer;-->
|
|
||||||
<!--position: relative;-->
|
|
||||||
<!--overflow: hidden;-->
|
|
||||||
<!--.pic-uploader-icon {-->
|
|
||||||
<!--font-size: 28px;-->
|
|
||||||
<!--color: #8c939d;-->
|
|
||||||
<!--width: 100%;-->
|
|
||||||
<!--height: 40px;-->
|
|
||||||
<!--//line-height: 178px;-->
|
|
||||||
<!--text-align: center;-->
|
|
||||||
<!--}-->
|
|
||||||
<!--.pic {-->
|
|
||||||
<!--width: 100%;-->
|
|
||||||
<!--height: 40px;-->
|
|
||||||
<!--display: block;-->
|
|
||||||
<!--}-->
|
|
||||||
<!--}-->
|
|
||||||
<!--.pic-uploader-component .el-upload:hover {-->
|
|
||||||
<!--border-color: #409EFF;-->
|
|
||||||
<!--}-->
|
|
||||||
|
|
||||||
<!--</style>-->
|
|
@ -95,7 +95,7 @@ export function formatTimeTwo(time) {
|
|||||||
time = time * 1000
|
time = time * 1000
|
||||||
const d = new Date(time)
|
const d = new Date(time)
|
||||||
return (
|
return (
|
||||||
d.getFullYear()+'年'+
|
d.getFullYear() + '年' +
|
||||||
(d.getMonth() + 1) +
|
(d.getMonth() + 1) +
|
||||||
'月' +
|
'月' +
|
||||||
d.getDate() +
|
d.getDate() +
|
||||||
@ -105,10 +105,8 @@ export function formatTimeTwo(time) {
|
|||||||
d.getMinutes() +
|
d.getMinutes() +
|
||||||
'分'
|
'分'
|
||||||
)
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} url
|
* @param {string} url
|
||||||
* @returns {Object}
|
* @returns {Object}
|
||||||
|
@ -30,10 +30,10 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="砍价产品主图片">
|
<el-form-item label="砍价产品主图片">
|
||||||
<MaterialList v-model="form.imageArr" style="width: 500px" type="image" :num=1 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.imageArr" style="width: 500px" type="image" :num="1" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="砍价产品轮播图">
|
<el-form-item label="砍价产品轮播图">
|
||||||
<MaterialList v-model="form.sliderImageArr" style="width: 500px" type="image" :num=4 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.sliderImageArr" style="width: 500px" type="image" :num="4" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="库存">
|
<el-form-item label="库存">
|
||||||
<el-input-number v-model="form.stock" />
|
<el-input-number v-model="form.stock" />
|
||||||
@ -98,13 +98,11 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import picUpload from '@/components/pic-upload'
|
|
||||||
import mulpicUpload from '@/components/mul-pic-upload'
|
|
||||||
import { add, edit } from '@/api/yxStoreBargain'
|
import { add, edit } from '@/api/yxStoreBargain'
|
||||||
import editor from '../../components/Editor'
|
import editor from '../../components/Editor'
|
||||||
import MaterialList from '@/components/material'
|
import MaterialList from '@/components/material'
|
||||||
export default {
|
export default {
|
||||||
components: { editor, picUpload, mulpicUpload, MaterialList },
|
components: { editor, MaterialList },
|
||||||
props: {
|
props: {
|
||||||
isAdd: {
|
isAdd: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
@ -155,18 +153,16 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch: {
|
||||||
'form.imageArr': function(val) {
|
'form.imageArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.image = val.join(",");
|
this.form.image = val.join(',')
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
'form.sliderImageArr': function(val) {
|
'form.sliderImageArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.sliderImage = val.join(",");
|
this.form.sliderImage = val.join(',')
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<!--工具栏-->
|
<!--工具栏-->
|
||||||
<div class="head-container">
|
<div class="head-container" />
|
||||||
|
|
||||||
</div>
|
|
||||||
<!--表单组件-->
|
<!--表单组件-->
|
||||||
<eForm ref="form" :is-add="isAdd" />
|
<eForm ref="form" :is-add="isAdd" />
|
||||||
<!--表格渲染-->
|
<!--表格渲染-->
|
||||||
@ -15,14 +13,14 @@
|
|||||||
<a :href="scope.row.image" style="color: #42b983" target="_blank"><img :src="scope.row.image" alt="点击打开" class="el-avatar"></a>
|
<a :href="scope.row.image" style="color: #42b983" target="_blank"><img :src="scope.row.image" alt="点击打开" class="el-avatar"></a>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="price" label="砍价价格"/>
|
<el-table-column prop="price" label="砍价价格" />
|
||||||
<el-table-column prop="price" label="砍价区间">
|
<el-table-column prop="price" label="砍价区间">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.bargainMinPrice }}~{{ scope.row.bargainMaxPrice }}</span>
|
<span>{{ scope.row.bargainMinPrice }}~{{ scope.row.bargainMaxPrice }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="minPrice" label="最低价"/>
|
<el-table-column prop="minPrice" label="最低价" />
|
||||||
<el-table-column prop="stock" label="库存"/>
|
<el-table-column prop="stock" label="库存" />
|
||||||
<el-table-column prop="startTime" label="开始时间">
|
<el-table-column prop="startTime" label="开始时间">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ formatTimeTwo(scope.row.startTime) }}</span>
|
<span>{{ formatTimeTwo(scope.row.startTime) }}</span>
|
||||||
|
@ -29,10 +29,10 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="产品主图片">
|
<el-form-item label="产品主图片">
|
||||||
<MaterialList v-model="form.imageArr" style="width: 500px" type="image" :num=1 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.imageArr" style="width: 500px" type="image" :num="1" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="产品轮播图">
|
<el-form-item label="产品轮播图">
|
||||||
<MaterialList v-model="form.sliderImageArr" style="width: 500px" type="image" :num=4 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.sliderImageArr" style="width: 500px" type="image" :num="4" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="拼团时效(单位小时)">
|
<el-form-item label="拼团时效(单位小时)">
|
||||||
<el-input v-model="form.effectiveTime" style="width: 500px;" />
|
<el-input v-model="form.effectiveTime" style="width: 500px;" />
|
||||||
@ -81,11 +81,9 @@
|
|||||||
<script>
|
<script>
|
||||||
import { add, edit } from '@/api/yxStoreCombination'
|
import { add, edit } from '@/api/yxStoreCombination'
|
||||||
import editor from '../../components/Editor'
|
import editor from '../../components/Editor'
|
||||||
import picUpload from '@/components/pic-upload'
|
|
||||||
import mulpicUpload from '@/components/mul-pic-upload'
|
|
||||||
import MaterialList from '@/components/material'
|
import MaterialList from '@/components/material'
|
||||||
export default {
|
export default {
|
||||||
components: { editor, picUpload, mulpicUpload, MaterialList },
|
components: { editor, MaterialList },
|
||||||
props: {
|
props: {
|
||||||
isAdd: {
|
isAdd: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
@ -134,15 +132,15 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch: {
|
||||||
'form.imageArr': function(val) {
|
'form.imageArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.image = val.join(",");
|
this.form.image = val.join(',')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'form.sliderImageArr': function(val) {
|
'form.sliderImageArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.sliderImage = val.join(",");
|
this.form.sliderImage = val.join(',')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -29,10 +29,10 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="产品主图片">
|
<el-form-item label="产品主图片">
|
||||||
<MaterialList v-model="form.imageArr" style="width: 500px" type="image" :num=1 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.imageArr" style="width: 500px" type="image" :num="1" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="产品轮播图">
|
<el-form-item label="产品轮播图">
|
||||||
<MaterialList v-model="form.sliderImageArr" style="width: 500px" type="image" :num=4 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.sliderImageArr" style="width: 500px" type="image" :num="4" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="秒杀价">
|
<el-form-item label="秒杀价">
|
||||||
<el-input-number v-model="form.price" />
|
<el-input-number v-model="form.price" />
|
||||||
@ -80,11 +80,9 @@
|
|||||||
<script>
|
<script>
|
||||||
import { add, edit } from '@/api/yxStoreSeckill'
|
import { add, edit } from '@/api/yxStoreSeckill'
|
||||||
import editor from '../../components/Editor'
|
import editor from '../../components/Editor'
|
||||||
import picUpload from '@/components/pic-upload'
|
|
||||||
import mulpicUpload from '@/components/mul-pic-upload'
|
|
||||||
import MaterialList from '@/components/material'
|
import MaterialList from '@/components/material'
|
||||||
export default {
|
export default {
|
||||||
components: { editor, picUpload, mulpicUpload, MaterialList },
|
components: { editor, MaterialList },
|
||||||
props: {
|
props: {
|
||||||
isAdd: {
|
isAdd: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
@ -129,15 +127,15 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch: {
|
||||||
'form.imageArr': function(val) {
|
'form.imageArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.image = val.join(",");
|
this.form.image = val.join(',')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'form.sliderImageArr': function(val) {
|
'form.sliderImageArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.sliderImage = val.join(",");
|
this.form.sliderImage = val.join(',')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -51,7 +51,7 @@ export default {
|
|||||||
this.editor.customConfig.uploadFileName = 'file'
|
this.editor.customConfig.uploadFileName = 'file'
|
||||||
this.editor.customConfig.uploadImgServer = this.uploadApi // 上传图片到服务器
|
this.editor.customConfig.uploadImgServer = this.uploadApi // 上传图片到服务器
|
||||||
this.editor.customConfig.uploadImgHooks = {
|
this.editor.customConfig.uploadImgHooks = {
|
||||||
customInsert: function (insertImg, result, editor) {
|
customInsert: function(insertImg, result, editor) {
|
||||||
var url = result.link
|
var url = result.link
|
||||||
insertImg(url)
|
insertImg(url)
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import CountTo from 'vue-count-to'
|
import CountTo from 'vue-count-to'
|
||||||
import { get, gett } from '@/api/visits'
|
import { gett } from '@/api/visits'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
CountTo
|
CountTo
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import CountTo from 'vue-count-to'
|
import CountTo from 'vue-count-to'
|
||||||
import { get, gett } from '@/api/visits'
|
import { gett } from '@/api/visits'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
CountTo
|
CountTo
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<span style="font-weight: bolder">yshop基于当前流行技术组合的前后端分离商城系统:</span>
|
<span style="font-weight: bolder">yshop基于当前流行技术组合的前后端分离商城系统:</span>
|
||||||
SpringBoot2+Jpa+MybatisPlus+SpringSecurity
|
SpringBoot2+Jpa+MybatisPlus+SpringSecurity
|
||||||
的前后端分离的商城系统,
|
的前后端分离的商城系统,
|
||||||
包含商城、拼团、砍价、商户管理、 秒杀、优惠券、积分、分销、会员等功能。
|
包含商城、拼团、砍价、商户管理、 秒杀、优惠券、积分、分销、会员等功能。
|
||||||
</div>
|
</div>
|
||||||
<div class="text item">
|
<div class="text item">
|
||||||
<span style="font-weight: bolder">技术选型:</span>
|
<span style="font-weight: bolder">技术选型:</span>
|
||||||
@ -36,7 +36,7 @@
|
|||||||
<span style="font-weight: bolder">小程序演示:</span>关注上面公众号之后,选择yshop小程序体验即可
|
<span style="font-weight: bolder">小程序演示:</span>关注上面公众号之后,选择yshop小程序体验即可
|
||||||
</div>
|
</div>
|
||||||
<div class="text item">
|
<div class="text item">
|
||||||
<span style="font-weight: bolder">H5演示:</span><a target="_blank" href="https://h5.yixiang.co">https://h5.yixiang.co</a> <br />
|
<span style="font-weight: bolder">H5演示:</span><a target="_blank" href="https://h5.yixiang.co">https://h5.yixiang.co</a> <br>
|
||||||
<span style="font-weight: bolder">H5测试号</span>:hupeng/123456,也可以自行注册
|
<span style="font-weight: bolder">H5测试号</span>:hupeng/123456,也可以自行注册
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -57,21 +57,21 @@
|
|||||||
<span style="font-weight: bolder">VIP版(JAVA++H5+公众号端):</span>包括了开源版,还包括了移动端、移动端API
|
<span style="font-weight: bolder">VIP版(JAVA++H5+公众号端):</span>包括了开源版,还包括了移动端、移动端API
|
||||||
</div>
|
</div>
|
||||||
<div class="text item">
|
<div class="text item">
|
||||||
1、VIP为终身制包括JAVA端+H5公众号端,后期免费升级迭代及其技术支持。!<br />
|
1、VIP为终身制包括JAVA端+H5公众号端,后期免费升级迭代及其技术支持。!<br>
|
||||||
2、价格:vip会员价248元(JAVA+H5+公众号版),后续的系统升级vip价格会有相应的调整的,所以早上车更优惠哦!<br />
|
2、价格:vip会员价248元(JAVA+H5+公众号版),后续的系统升级vip价格会有相应的调整的,所以早上车更优惠哦!<br>
|
||||||
3、VIP购买淘宝地址:https://item.taobao.com/item.htm?id=607532386325<br />
|
3、VIP购买淘宝地址:https://item.taobao.com/item.htm?id=607532386325<br>
|
||||||
4、加入vip群:931426444,请输入你的淘宝订单编号,即可入群<br />
|
4、加入vip群:931426444,请输入你的淘宝订单编号,即可入群<br>
|
||||||
5、群里面获取私服git<br />
|
5、群里面获取私服git<br>
|
||||||
6、如果需要小程序需要单独购买看下面<br />
|
6、如果需要小程序需要单独购买看下面<br>
|
||||||
</div>
|
</div>
|
||||||
<div class="text item">
|
<div class="text item">
|
||||||
<span style="font-weight: bolder">VIP版如果需要小程序需要另外单独购买:</span>
|
<span style="font-weight: bolder">VIP版如果需要小程序需要另外单独购买:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="text item">
|
<div class="text item">
|
||||||
1、小程序是mpvue2.0框架开发<br />
|
1、小程序是mpvue2.0框架开发<br>
|
||||||
2、价格:100元,只是单独的小程序!购买小程序请务必要购买上面VIP套餐<br />
|
2、价格:100元,只是单独的小程序!购买小程序请务必要购买上面VIP套餐<br>
|
||||||
3、购买淘宝地址:https://item.taobao.com/item.htm?id=612007949053<br />
|
3、购买淘宝地址:https://item.taobao.com/item.htm?id=612007949053<br>
|
||||||
4、群里面获取私服git<br />
|
4、群里面获取私服git<br>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
|
@ -29,7 +29,6 @@
|
|||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import PanelGroup from './dashboard/PanelGroup'
|
import PanelGroup from './dashboard/PanelGroup'
|
||||||
import PanelGroupT from './dashboard/PanelGroupT'
|
import PanelGroupT from './dashboard/PanelGroupT'
|
||||||
import LineChart from './dashboard/LineChart'
|
|
||||||
import PieChart from './dashboard/BarChartT'
|
import PieChart from './dashboard/BarChartT'
|
||||||
import BarChart from './dashboard/BarChart'
|
import BarChart from './dashboard/BarChart'
|
||||||
import { count } from '@/api/visits'
|
import { count } from '@/api/visits'
|
||||||
@ -46,7 +45,6 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
PanelGroup,
|
PanelGroup,
|
||||||
PanelGroupT,
|
PanelGroupT,
|
||||||
LineChart,
|
|
||||||
PieChart,
|
PieChart,
|
||||||
BarChart,
|
BarChart,
|
||||||
YshopInfo
|
YshopInfo
|
||||||
|
@ -2,10 +2,10 @@
|
|||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<!--表格渲染-->
|
<!--表格渲染-->
|
||||||
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;">
|
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;">
|
||||||
<el-table-column prop="nickname" label="用户名"/>
|
<el-table-column prop="nickname" label="用户名" />
|
||||||
<el-table-column prop="requestIp" label="IP"/>
|
<el-table-column prop="requestIp" label="IP" />
|
||||||
<el-table-column prop="address" label="地址来源"/>
|
<el-table-column prop="address" label="地址来源" />
|
||||||
<el-table-column prop="description" label="描述"/>
|
<el-table-column prop="description" label="描述" />
|
||||||
<el-table-column prop="createTime" label="创建日期" width="180px">
|
<el-table-column prop="createTime" label="创建日期" width="180px">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||||
@ -19,7 +19,8 @@
|
|||||||
style="margin-top: 8px;"
|
style="margin-top: 8px;"
|
||||||
layout="total, prev, pager, next, sizes"
|
layout="total, prev, pager, next, sizes"
|
||||||
@size-change="sizeChange"
|
@size-change="sizeChange"
|
||||||
@current-change="pageChange"/>
|
@current-change="pageChange"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ import crudOperation from '@crud/CRUD.operation'
|
|||||||
import pagination from '@crud/Pagination'
|
import pagination from '@crud/Pagination'
|
||||||
|
|
||||||
// crud交由presenter持有
|
// crud交由presenter持有
|
||||||
const defaultCrud = CRUD({ url: 'auth/online', title: '在线用户' , query: {type : 1} })
|
const defaultCrud = CRUD({ url: 'auth/online', title: '在线用户', query: { type: 1 }})
|
||||||
export default {
|
export default {
|
||||||
name: 'OnlineUser',
|
name: 'OnlineUser',
|
||||||
components: { pagination, crudOperation, rrOperation },
|
components: { pagination, crudOperation, rrOperation },
|
||||||
|
@ -1,121 +0,0 @@
|
|||||||
<template>
|
|
||||||
<el-dialog :append-to-body="true" :close-on-click-modal="false" :before-close="cancel" :visible.sync="dialog" :title="isAdd ? '新增' : '编辑'" width="500px">
|
|
||||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
|
||||||
<el-form-item v-if="form.pid !== 0" style="margin-bottom: 0px;" label="上级分类">
|
|
||||||
<treeselect v-model="form.pid" :options="cates" style="width: 370px;" placeholder="选择上级类目" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="分类名称">
|
|
||||||
<el-input v-model="form.cateName" style="width: 370px;" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="分类图片">
|
|
||||||
<pic-upload v-model="form.pic" style="width: 500px;" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="排序">
|
|
||||||
<el-input v-model="form.sort" style="width: 370px;" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="状态" prop="enabled">
|
|
||||||
<el-radio v-model="form.isShow" :label="1">显示</el-radio>
|
|
||||||
<el-radio v-model="form.isShow" :label="0">隐藏</el-radio>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
<div slot="footer" class="dialog-footer">
|
|
||||||
<el-button type="text" @click="cancel">取消</el-button>
|
|
||||||
<el-button :loading="loading" type="primary" @click="doSubmit">确认</el-button>
|
|
||||||
</div>
|
|
||||||
</el-dialog>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { add, edit, getCates } from '@/api/yxStoreCategory'
|
|
||||||
import Treeselect from '@riophae/vue-treeselect'
|
|
||||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
|
||||||
import picUpload from '@/components/pic-upload'
|
|
||||||
export default {
|
|
||||||
components: { Treeselect, picUpload },
|
|
||||||
props: {
|
|
||||||
isAdd: {
|
|
||||||
type: Boolean,
|
|
||||||
required: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
loading: false, dialog: false, cates: [],
|
|
||||||
form: {
|
|
||||||
id: '',
|
|
||||||
pid: 1,
|
|
||||||
cateName: '',
|
|
||||||
sort: '',
|
|
||||||
pic: '',
|
|
||||||
isShow: '',
|
|
||||||
addTime: ''
|
|
||||||
},
|
|
||||||
rules: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
cancel() {
|
|
||||||
this.resetForm()
|
|
||||||
},
|
|
||||||
doSubmit() {
|
|
||||||
this.loading = true
|
|
||||||
if (this.isAdd) {
|
|
||||||
this.doAdd()
|
|
||||||
} else this.doEdit()
|
|
||||||
},
|
|
||||||
doAdd() {
|
|
||||||
add(this.form).then(res => {
|
|
||||||
this.resetForm()
|
|
||||||
this.$notify({
|
|
||||||
title: '添加成功',
|
|
||||||
type: 'success',
|
|
||||||
duration: 2500
|
|
||||||
})
|
|
||||||
this.loading = false
|
|
||||||
this.$parent.init()
|
|
||||||
}).catch(err => {
|
|
||||||
this.loading = false
|
|
||||||
console.log(err.response.data.message)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
doEdit() {
|
|
||||||
edit(this.form).then(res => {
|
|
||||||
this.resetForm()
|
|
||||||
this.$notify({
|
|
||||||
title: '修改成功',
|
|
||||||
type: 'success',
|
|
||||||
duration: 2500
|
|
||||||
})
|
|
||||||
this.loading = false
|
|
||||||
this.$parent.init()
|
|
||||||
}).catch(err => {
|
|
||||||
this.loading = false
|
|
||||||
console.log(err.response.data.message)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
resetForm() {
|
|
||||||
this.dialog = false
|
|
||||||
this.$refs['form'].resetFields()
|
|
||||||
this.form = {
|
|
||||||
id: '',
|
|
||||||
pid: '',
|
|
||||||
cateName: '',
|
|
||||||
sort: '',
|
|
||||||
pic: '',
|
|
||||||
isShow: '',
|
|
||||||
addTime: ''
|
|
||||||
}
|
|
||||||
},
|
|
||||||
getCates() {
|
|
||||||
getCates({ enabled: true }).then(res => {
|
|
||||||
this.cates = res.content
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
|
|
||||||
</style>
|
|
@ -16,7 +16,7 @@
|
|||||||
<el-input v-model="form.cateName" style="width: 370px;" />
|
<el-input v-model="form.cateName" style="width: 370px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="分类图片">
|
<el-form-item label="分类图片">
|
||||||
<MaterialList v-model="picArr" type="image" :num=1 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="picArr" type="image" :num="1" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="状态">
|
<el-form-item label="状态">
|
||||||
<el-radio-group v-model="form.isShow" style="width: 178px">
|
<el-radio-group v-model="form.isShow" style="width: 178px">
|
||||||
@ -98,16 +98,16 @@ export default {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch: {
|
||||||
picArr: function(val) {
|
picArr: function(val) {
|
||||||
this.form.pic = val.join(",");
|
this.form.pic = val.join(',')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 新增与编辑前做的操作
|
// 新增与编辑前做的操作
|
||||||
[CRUD.HOOK.afterToCU](crud, form) {
|
[CRUD.HOOK.afterToCU](crud, form) {
|
||||||
console.log(form)
|
console.log(form)
|
||||||
if(form.pic){
|
if (form.pic) {
|
||||||
this.picArr = form.pic.split(',')
|
this.picArr = form.pic.split(',')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,10 +17,10 @@
|
|||||||
<el-input v-model="form.barCode" style="width: 320px;" />
|
<el-input v-model="form.barCode" style="width: 320px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="商品图片">
|
<el-form-item label="商品图片">
|
||||||
<MaterialList v-model="form.imageArr" style="width: 500px" type="image" :num=1 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.imageArr" style="width: 500px" type="image" :num="1" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="轮播图">
|
<el-form-item label="轮播图">
|
||||||
<MaterialList v-model="form.sliderImageArr" style="width: 500px" type="image" :num=4 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.sliderImageArr" style="width: 500px" type="image" :num="4" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="商品简介">
|
<el-form-item label="商品简介">
|
||||||
<el-input v-model="form.storeInfo" style="width: 500px;" rows="5" type="textarea" />
|
<el-input v-model="form.storeInfo" style="width: 500px;" rows="5" type="textarea" />
|
||||||
@ -151,15 +151,15 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch: {
|
||||||
'form.imageArr': function(val) {
|
'form.imageArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.image = val.join(",");
|
this.form.image = val.join(',')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'form.sliderImageArr': function(val) {
|
'form.sliderImageArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.sliderImage = val.join(",");
|
this.form.sliderImage = val.join(',')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -115,7 +115,7 @@ export default {
|
|||||||
rules: {
|
rules: {
|
||||||
unique: [
|
unique: [
|
||||||
{ required: true, message: 'please enter', trigger: 'blur' }
|
{ required: true, message: 'please enter', trigger: 'blur' }
|
||||||
],
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog :append-to-body="true" :close-on-click-modal="false" :before-close="cancel" :visible.sync="dialog" :title="isAdd ? '新增' : '编辑'" width="500px">
|
<el-dialog :append-to-body="true" :close-on-click-modal="false" :before-close="cancel" :visible.sync="dialog" :title="isAdd ? '新增' : '编辑'" width="500px">
|
||||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||||
<el-form-item label="订单号" >
|
<el-form-item label="订单号">
|
||||||
<el-input v-model="form.orderId" :disabled="true" style="width: 370px;" />
|
<el-input v-model="form.orderId" :disabled="true" style="width: 370px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="原始邮费" >
|
<el-form-item label="原始邮费">
|
||||||
<el-input v-model="form.totalPostage" :disabled="true" style="width: 370px;" />
|
<el-input v-model="form.totalPostage" :disabled="true" style="width: 370px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="实际支付" >
|
<el-form-item label="实际支付">
|
||||||
<el-input v-model="form.payPrice" style="width: 370px;"/>
|
<el-input v-model="form.payPrice" style="width: 370px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
@ -86,7 +86,7 @@ export default {
|
|||||||
rules: {
|
rules: {
|
||||||
unique: [
|
unique: [
|
||||||
{ required: true, message: 'please enter', trigger: 'blur' }
|
{ required: true, message: 'please enter', trigger: 'blur' }
|
||||||
],
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog :append-to-body="true" :close-on-click-modal="false" :before-close="cancel" :visible.sync="dialog" :title="isAdd ? '新增' : '去发货'" width="500px">
|
<el-dialog :append-to-body="true" :close-on-click-modal="false" :before-close="cancel" :visible.sync="dialog" :title="isAdd ? '新增' : '去发货'" width="500px">
|
||||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||||
<el-form-item label="快递公司" >
|
<el-form-item label="快递公司">
|
||||||
<!--<el-input v-model="form.deliveryName" style="width: 370px;"/>-->
|
<!--<el-input v-model="form.deliveryName" style="width: 370px;"/>-->
|
||||||
<el-select v-model="form.deliveryName" filterable placeholder="请选择" style="width: 370px;">
|
<el-select v-model="form.deliveryName" filterable placeholder="请选择" style="width: 370px;">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in express"
|
v-for="item in express"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.name"
|
:label="item.name"
|
||||||
:value="item.id" />
|
:value="item.id"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="快递单号" >
|
<el-form-item label="快递单号">
|
||||||
<el-input v-model="form.deliveryId" style="width: 370px;"/>
|
<el-input v-model="form.deliveryId" style="width: 370px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
@ -26,10 +27,6 @@
|
|||||||
|
|
||||||
import { add, edit, get } from '@/api/yxStoreOrder'
|
import { add, edit, get } from '@/api/yxStoreOrder'
|
||||||
export default {
|
export default {
|
||||||
|
|
||||||
created() {
|
|
||||||
this.get()
|
|
||||||
},
|
|
||||||
props: {
|
props: {
|
||||||
isAdd: {
|
isAdd: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
@ -48,10 +45,14 @@ export default {
|
|||||||
rules: {
|
rules: {
|
||||||
unique: [
|
unique: [
|
||||||
{ required: true, message: 'please enter', trigger: 'blur' }
|
{ required: true, message: 'please enter', trigger: 'blur' }
|
||||||
],
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
created() {
|
||||||
|
this.get()
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
cancel() {
|
cancel() {
|
||||||
this.resetForm()
|
this.resetForm()
|
||||||
|
@ -4,27 +4,27 @@
|
|||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
|
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<el-input v-model="query.value" clearable placeholder="输入搜索内容" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery"/>
|
<el-input v-model="query.value" clearable placeholder="输入搜索内容" style="width: 200px;" class="filter-item" @keyup.enter.native="toQuery" />
|
||||||
<el-select v-model="query.type" clearable placeholder="类型" class="filter-item" style="width: 130px">
|
<el-select v-model="query.type" clearable placeholder="类型" class="filter-item" style="width: 130px">
|
||||||
<el-option v-for="item in queryTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
|
<el-option v-for="item in queryTypeOptions" :key="item.key" :label="item.display_name" :value="item.key" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-select v-model="status" clearable placeholder="订单状态" class="filter-item" style="width: 130px">
|
<el-select v-model="status" clearable placeholder="订单状态" class="filter-item" style="width: 130px">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in statusOptions"
|
v-for="item in statusOptions"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value">
|
:value="item.value"
|
||||||
</el-option>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
||||||
<!-- 新增 -->
|
<!-- 新增 -->
|
||||||
</div>
|
</div>
|
||||||
<!--表单组件-->
|
<!--表单组件-->
|
||||||
<eForm ref="form" :is-add="isAdd"/>
|
<eForm ref="form" :is-add="isAdd" />
|
||||||
<eDetail ref="form1" :is-add="isAdd"/>
|
<eDetail ref="form1" :is-add="isAdd" />
|
||||||
<eRefund ref="form2" :is-add="isAdd"/>
|
<eRefund ref="form2" :is-add="isAdd" />
|
||||||
<editOrder ref="form3" :is-add="isAdd"/>
|
<editOrder ref="form3" :is-add="isAdd" />
|
||||||
<eRemark ref="form4" :is-add="isAdd"/>
|
<eRemark ref="form4" :is-add="isAdd" />
|
||||||
<!--表格渲染-->
|
<!--表格渲染-->
|
||||||
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;">
|
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;">
|
||||||
<el-table-column prop="orderId" width="140" label="订单号">
|
<el-table-column prop="orderId" width="140" label="订单号">
|
||||||
@ -33,27 +33,31 @@
|
|||||||
<p>{{ scope.row.pinkName }}</p>
|
<p>{{ scope.row.pinkName }}</p>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="realName" label="用户姓名"/>
|
<el-table-column prop="realName" label="用户姓名" />
|
||||||
<el-table-column prop="cartInfoList" width="300" label="商品信息">
|
<el-table-column prop="cartInfoList" width="300" label="商品信息">
|
||||||
<template slot-scope="scope" >
|
<template slot-scope="scope">
|
||||||
<div v-for="(item,index) in scope.row.cartInfoList">
|
<div v-for="(item,index) in scope.row.cartInfoList">
|
||||||
<span><img style="width: 30px;height: 30px;margin:0;cursor: pointer;"
|
<span><img
|
||||||
:src="item.cartInfoMap.productInfo.image"/></span>
|
style="width: 30px;height: 30px;margin:0;cursor: pointer;"
|
||||||
<span>{{item.cartInfoMap.productInfo.storeName}}</span>
|
:src="item.cartInfoMap.productInfo.image"
|
||||||
<span> | ¥{{item.cartInfoMap.truePrice}}×{{item.cartInfoMap.cartNum}}</span>
|
></span>
|
||||||
|
<span>{{ item.cartInfoMap.productInfo.storeName }}</span>
|
||||||
|
<span> | ¥{{ item.cartInfoMap.truePrice }}×{{ item.cartInfoMap.cartNum }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="item.cartInfoMap.productInfo.attrInfo" v-for="(item,index) in scope.row.cartInfoList">
|
<div v-for="(item,index) in scope.row.cartInfoList" v-if="item.cartInfoMap.productInfo.attrInfo">
|
||||||
<span>
|
<span>
|
||||||
<img style="width: 30px;height: 30px;margin:0;cursor: pointer;"
|
<img
|
||||||
:src="item.cartInfoMap.productInfo.attrInfo.image">
|
style="width: 30px;height: 30px;margin:0;cursor: pointer;"
|
||||||
|
:src="item.cartInfoMap.productInfo.attrInfo.image"
|
||||||
|
>
|
||||||
</span>
|
</span>
|
||||||
<span>{{item.cartInfoMap.productInfo.storeName}} {{item.cartInfoMap.productInfo.attrInfo.suk}}</span>
|
<span>{{ item.cartInfoMap.productInfo.storeName }} {{ item.cartInfoMap.productInfo.attrInfo.suk }}</span>
|
||||||
<span> | ¥{{item.cartInfoMap.truePrice}}×{{item.cartInfoMap.cartNum}}</span>
|
<span> | ¥{{ item.cartInfoMap.truePrice }}×{{ item.cartInfoMap.cartNum }}</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="payPrice" label="实际支付"/>
|
<el-table-column prop="payPrice" label="实际支付" />
|
||||||
<el-table-column prop="payTypeName" label="支付状态"/>
|
<el-table-column prop="payTypeName" label="支付状态" />
|
||||||
<el-table-column prop="statusName" label="订单状态">
|
<el-table-column prop="statusName" label="订单状态">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-html="scope.row.statusName">{{ scope.row.addTime }}</span>
|
<span v-html="scope.row.statusName">{{ scope.row.addTime }}</span>
|
||||||
@ -66,38 +70,61 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column v-if="checkPermission(['admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT','YXSTOREORDER_DELETE'])" label="操作" width="200" align="center" fixed="right">
|
<el-table-column v-if="checkPermission(['admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT','YXSTOREORDER_DELETE'])" label="操作" width="200" align="center" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button v-permission="['admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT']" size="mini" type="primary"
|
<el-button
|
||||||
@click="detail(scope.row)">
|
v-permission="['admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT']"
|
||||||
|
size="mini"
|
||||||
|
type="primary"
|
||||||
|
@click="detail(scope.row)"
|
||||||
|
>
|
||||||
订单详情</el-button>
|
订单详情</el-button>
|
||||||
<el-dropdown size="mini" split-button type="primary" trigger="click">
|
<el-dropdown size="mini" split-button type="primary" trigger="click">
|
||||||
操作
|
操作
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
<el-dropdown-item>
|
<el-dropdown-item>
|
||||||
<el-button v-permission="['admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT']" size="mini" type="success"
|
<el-button
|
||||||
@click="remark(scope.row)">
|
v-permission="['admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT']"
|
||||||
|
size="mini"
|
||||||
|
type="success"
|
||||||
|
@click="remark(scope.row)"
|
||||||
|
>
|
||||||
订单备注</el-button>
|
订单备注</el-button>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item>
|
<el-dropdown-item>
|
||||||
<el-button v-if="scope.row._status == 2" v-permission="['admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT']" size="mini" type="primary"
|
<el-button
|
||||||
@click="edit(scope.row)">
|
v-if="scope.row._status == 2"
|
||||||
|
v-permission="['admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT']"
|
||||||
|
size="mini"
|
||||||
|
type="primary"
|
||||||
|
@click="edit(scope.row)"
|
||||||
|
>
|
||||||
去发货</el-button>
|
去发货</el-button>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item>
|
<el-dropdown-item>
|
||||||
<el-button v-if="scope.row._status == 3" v-permission="['admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT']" size="mini" type="primary"
|
<el-button
|
||||||
@click="refund(scope.row)">
|
v-if="scope.row._status == 3"
|
||||||
|
v-permission="['admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT']"
|
||||||
|
size="mini"
|
||||||
|
type="primary"
|
||||||
|
@click="refund(scope.row)"
|
||||||
|
>
|
||||||
立刻退款</el-button>
|
立刻退款</el-button>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item v-if="scope.row._status == 1">
|
<el-dropdown-item v-if="scope.row._status == 1">
|
||||||
<el-button v-permission="['admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT']" size="mini" type="primary"
|
<el-button
|
||||||
@click="editOrder(scope.row)">
|
v-permission="['admin','YXSTOREORDER_ALL','YXSTOREORDER_EDIT']"
|
||||||
|
size="mini"
|
||||||
|
type="primary"
|
||||||
|
@click="editOrder(scope.row)"
|
||||||
|
>
|
||||||
修改订单</el-button>
|
修改订单</el-button>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item v-if="scope.row._status == 1">
|
<el-dropdown-item v-if="scope.row._status == 1">
|
||||||
<el-popover
|
<el-popover
|
||||||
v-permission="['admin','YXSTOREORDER_ALL','YXSTOREORDER_DELETE']"
|
|
||||||
:ref="scope.row.id"
|
:ref="scope.row.id"
|
||||||
|
v-permission="['admin','YXSTOREORDER_ALL','YXSTOREORDER_DELETE']"
|
||||||
placement="top"
|
placement="top"
|
||||||
width="180">
|
width="180"
|
||||||
|
>
|
||||||
<p>确定删除本条数据吗?</p>
|
<p>确定删除本条数据吗?</p>
|
||||||
<div style="text-align: right; margin: 0">
|
<div style="text-align: right; margin: 0">
|
||||||
<el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button>
|
<el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button>
|
||||||
@ -119,7 +146,8 @@
|
|||||||
style="margin-top: 8px;"
|
style="margin-top: 8px;"
|
||||||
layout="total, prev, pager, next, sizes"
|
layout="total, prev, pager, next, sizes"
|
||||||
@size-change="sizeChange"
|
@size-change="sizeChange"
|
||||||
@current-change="pageChange"/>
|
@current-change="pageChange"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog :append-to-body="true" :close-on-click-modal="false" :before-close="cancel" :visible.sync="dialog" :title="isAdd ? '新增' : '退款'" width="500px">
|
<el-dialog :append-to-body="true" :close-on-click-modal="false" :before-close="cancel" :visible.sync="dialog" :title="isAdd ? '新增' : '退款'" width="500px">
|
||||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||||
<el-form-item label="订单号" >
|
<el-form-item label="订单号">
|
||||||
<el-input v-model="form.orderId" :disabled="true" style="width: 370px;"/>
|
<el-input v-model="form.orderId" :disabled="true" style="width: 370px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="退款金额" >
|
<el-form-item label="退款金额">
|
||||||
<el-input v-model="form.payPrice" style="width: 370px;"/>
|
<el-input v-model="form.payPrice" style="width: 370px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
@ -83,7 +83,7 @@ export default {
|
|||||||
rules: {
|
rules: {
|
||||||
unique: [
|
unique: [
|
||||||
{ required: true, message: 'please enter', trigger: 'blur' }
|
{ required: true, message: 'please enter', trigger: 'blur' }
|
||||||
],
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog :append-to-body="true" :close-on-click-modal="false" :before-close="cancel" :visible.sync="dialog" :title="isAdd ? '新增' : '编辑'" width="500px">
|
<el-dialog :append-to-body="true" :close-on-click-modal="false" :before-close="cancel" :visible.sync="dialog" :title="isAdd ? '新增' : '编辑'" width="500px">
|
||||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
|
||||||
<el-form-item label="订单号" >
|
<el-form-item label="订单号">
|
||||||
<el-input v-model="form.orderId" :disabled="true" style="width: 370px;" />
|
<el-input v-model="form.orderId" :disabled="true" style="width: 370px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="订单备注" >
|
<el-form-item label="订单备注">
|
||||||
<el-input v-model="form.remark" style="width: 370px;" rows="5" type="textarea"/>
|
<el-input v-model="form.remark" style="width: 370px;" rows="5" type="textarea" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
@ -83,7 +83,7 @@ export default {
|
|||||||
rules: {
|
rules: {
|
||||||
unique: [
|
unique: [
|
||||||
{ required: true, message: 'please enter', trigger: 'blur' }
|
{ required: true, message: 'please enter', trigger: 'blur' }
|
||||||
],
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -116,7 +116,7 @@ export default {
|
|||||||
info: data.map.info,
|
info: data.map.info,
|
||||||
url: data.map.url,
|
url: data.map.url,
|
||||||
pic: data.map.pic,
|
pic: data.map.pic,
|
||||||
imageArr: data.map.pic.split(','),
|
imageArr: data.map.pic.split(',')
|
||||||
}
|
}
|
||||||
_this.dialog = true
|
_this.dialog = true
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="图片(260*260/416*214)">
|
<el-form-item label="图片(260*260/416*214)">
|
||||||
<pic-upload v-model="form.pic" style="width: 500px;" />
|
<pic-upload v-model="form.pic" style="width: 500px;" />
|
||||||
<MaterialList v-model="form.imageArr" style="width: 500px" type="image" :num=1 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.imageArr" style="width: 500px" type="image" :num="1" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
@ -53,10 +53,10 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch: {
|
||||||
'form.imageArr': function(val) {
|
'form.imageArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.pic = val.join(",");
|
this.form.pic = val.join(',')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<el-input v-model="form.wxapp_url" style="width: 300px;" />
|
<el-input v-model="form.wxapp_url" style="width: 300px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="图片(750*375)">
|
<el-form-item label="图片(750*375)">
|
||||||
<MaterialList v-model="form.imageArr" style="width: 300px" type="image" :num=1 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.imageArr" style="width: 300px" type="image" :num="1" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="排序">
|
<el-form-item label="排序">
|
||||||
<el-input v-model="form.sort" style="width: 300px;" />
|
<el-input v-model="form.sort" style="width: 300px;" />
|
||||||
@ -59,10 +59,10 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch: {
|
||||||
'form.imageArr': function(val) {
|
'form.imageArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.pic = val.join(",");
|
this.form.pic = val.join(',')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<el-input v-model="form.wxapp_url" style="width: 300px;" />
|
<el-input v-model="form.wxapp_url" style="width: 300px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="分类图标(90*90)">
|
<el-form-item label="分类图标(90*90)">
|
||||||
<MaterialList v-model="form.imageArr" style="width: 300px" type="image" :num=1 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.imageArr" style="width: 300px" type="image" :num="1" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="排序">
|
<el-form-item label="排序">
|
||||||
<el-input v-model="form.sort" style="width: 300px;" />
|
<el-input v-model="form.sort" style="width: 300px;" />
|
||||||
@ -59,10 +59,10 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch: {
|
||||||
'form.imageArr': function(val) {
|
'form.imageArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.pic = val.join(",");
|
this.form.pic = val.join(',')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
<el-table-column ref="table" label="图标">
|
<el-table-column ref="table" label="图标">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<a :href="scope.row.map.pic" style="color: #42b983" target="_blank">
|
<a :href="scope.row.map.pic" style="color: #42b983" target="_blank">
|
||||||
<img :src="scope.row.map.pic" alt="点击打开" class="el-avatar">
|
<img :src="scope.row.map.pic" alt="点击打开" class="el-avatar">
|
||||||
</a>
|
</a>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<el-input v-model="form.wxapp_url" style="width: 300px;" />
|
<el-input v-model="form.wxapp_url" style="width: 300px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="图标(52*52)">
|
<el-form-item label="图标(52*52)">
|
||||||
<MaterialList v-model="form.imageArr" style="width: 300px" type="image" :num=1 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.imageArr" style="width: 300px" type="image" :num="1" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="排序">
|
<el-form-item label="排序">
|
||||||
<el-input v-model="form.sort" style="width: 300px;" />
|
<el-input v-model="form.sort" style="width: 300px;" />
|
||||||
@ -59,10 +59,10 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch: {
|
||||||
'form.imageArr': function(val) {
|
'form.imageArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.pic = val.join(",");
|
this.form.pic = val.join(',')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -12,8 +12,8 @@
|
|||||||
v-for="item in statusOptions"
|
v-for="item in statusOptions"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value">
|
:value="item.value"
|
||||||
</el-option>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
|
||||||
<!-- 新增 -->
|
<!-- 新增 -->
|
||||||
@ -51,8 +51,8 @@
|
|||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div>
|
<div>
|
||||||
<el-tag v-if="scope.row.userType == 'wechat'">公众号</el-tag>
|
<el-tag v-if="scope.row.userType == 'wechat'">公众号</el-tag>
|
||||||
<el-tag v-else-if="scope.row.userType == 'routine'" >小程序</el-tag>
|
<el-tag v-else-if="scope.row.userType == 'routine'">小程序</el-tag>
|
||||||
<el-tag v-else >H5</el-tag>
|
<el-tag v-else>H5</el-tag>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -128,10 +128,10 @@ export default {
|
|||||||
{ key: 'phone', display_name: '手机号码' }
|
{ key: 'phone', display_name: '手机号码' }
|
||||||
],
|
],
|
||||||
statusOptions: [
|
statusOptions: [
|
||||||
{ value: 'routine', label: '小程序' },
|
{ value: 'routine', label: '小程序' },
|
||||||
{ value: 'wechat', label: '公众号' },
|
{ value: 'wechat', label: '公众号' },
|
||||||
{ value: 'H5', label: 'H5' }
|
{ value: 'H5', label: 'H5' }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -165,7 +165,7 @@ export default {
|
|||||||
beforeInit() {
|
beforeInit() {
|
||||||
this.url = 'api/yxUser'
|
this.url = 'api/yxUser'
|
||||||
const sort = 'uid,desc'
|
const sort = 'uid,desc'
|
||||||
this.params = { page: this.page, size: this.size, sort: sort, userType: this.userType }
|
this.params = { page: this.page, size: this.size, sort: sort, userType: this.userType }
|
||||||
const query = this.query
|
const query = this.query
|
||||||
const type = query.type
|
const type = query.type
|
||||||
const value = query.value
|
const value = query.value
|
||||||
|
@ -18,10 +18,10 @@
|
|||||||
<el-input v-model="form.discount" style="width: 370px;" />
|
<el-input v-model="form.discount" style="width: 370px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="会员背景">
|
<el-form-item label="会员背景">
|
||||||
<MaterialList v-model="form.imageArr" style="width: 300px" type="image" :num=1 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.imageArr" style="width: 300px" type="image" :num="1" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="会员图标">
|
<el-form-item label="会员图标">
|
||||||
<MaterialList v-model="form.iconArr" style="width: 300px" type="image" :num=1 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.iconArr" style="width: 300px" type="image" :num="1" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="是否显示">
|
<el-form-item label="是否显示">
|
||||||
<el-radio v-model="form.isShow" :label="1">是</el-radio>
|
<el-radio v-model="form.isShow" :label="1">是</el-radio>
|
||||||
@ -76,15 +76,15 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch: {
|
||||||
'form.imageArr': function(val) {
|
'form.imageArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.image = val.join(",");
|
this.form.image = val.join(',')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'form.iconArr': function(val) {
|
'form.iconArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.icon = val.join(",");
|
this.form.icon = val.join(',')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<el-input v-model="form.author" style="width: 370px;" />
|
<el-input v-model="form.author" style="width: 370px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="封面">
|
<el-form-item label="封面">
|
||||||
<MaterialList v-model="form.imageArr" style="width: 370px" type="image" :num=1 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.imageArr" style="width: 370px" type="image" :num="1" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="简介">
|
<el-form-item label="简介">
|
||||||
<el-input v-model="form.synopsis" style="width: 370px;" rows="5" type="textarea" />
|
<el-input v-model="form.synopsis" style="width: 370px;" rows="5" type="textarea" />
|
||||||
@ -67,10 +67,10 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch: {
|
||||||
'form.imageArr': function(val) {
|
'form.imageArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.imageInput = val.join(",");
|
this.form.imageInput = val.join(',')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<el-input v-model="form.api" :disabled="true" style="width: 370px;" />
|
<el-input v-model="form.api" :disabled="true" style="width: 370px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="微信分享图片">
|
<el-form-item label="微信分享图片">
|
||||||
<MaterialList v-model="form.imageArr" style="width: 370px" type="image" :num=1 :width=150 :height=150></MaterialList>
|
<MaterialList v-model="form.imageArr" style="width: 370px" type="image" :num="1" :width="150" :height="150" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="微信分享标题">
|
<el-form-item label="微信分享标题">
|
||||||
<el-input v-model="form.wechat_share_title" style="width: 370px;" />
|
<el-input v-model="form.wechat_share_title" style="width: 370px;" />
|
||||||
@ -70,10 +70,10 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch: {
|
||||||
'form.imageArr': function(val) {
|
'form.imageArr': function(val) {
|
||||||
if(val){
|
if (val) {
|
||||||
this.form.wechat_share_img = val.join(",");
|
this.form.wechat_share_img = val.join(',')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -86,7 +86,7 @@ export default {
|
|||||||
})
|
})
|
||||||
|
|
||||||
this.form = newObj
|
this.form = newObj
|
||||||
this.form.imageArr =this.form.wechat_share_img.split(',')
|
this.form.imageArr = this.form.wechat_share_img.split(',')
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -10,8 +10,8 @@
|
|||||||
<el-form-item label="商户密钥">
|
<el-form-item label="商户密钥">
|
||||||
<el-input v-model="form.wxpay_mchKey" style="width: 370px;" type="password" />
|
<el-input v-model="form.wxpay_mchKey" style="width: 370px;" type="password" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="微信证书" >
|
<el-form-item label="微信证书">
|
||||||
<file-upload v-model="form.wxpay_keyPath" style="width: 500px;"/>
|
<file-upload v-model="form.wxpay_keyPath" style="width: 500px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="">
|
<el-form-item label="">
|
||||||
<el-button type="primary" @click="doSubmit">提交</el-button>
|
<el-button type="primary" @click="doSubmit">提交</el-button>
|
||||||
|
@ -21,7 +21,7 @@ module.exports = {
|
|||||||
open: true,
|
open: true,
|
||||||
overlay: {
|
overlay: {
|
||||||
warnings: false,
|
warnings: false,
|
||||||
errors: true
|
errors: false
|
||||||
},
|
},
|
||||||
proxy: {
|
proxy: {
|
||||||
'/api': {
|
'/api': {
|
||||||
|
Reference in New Issue
Block a user