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