Browse Source

修复语法格式问题

master
hupeng 5 years ago
parent
commit
d7c60b817b
  1. 1
      .eslintignore
  2. 2
      src/api/yxStoreOrder.js
  3. 30
      src/components/file-upload/index.vue
  4. 677
      src/components/material/index.vue
  5. 12
      src/components/pic-upload-two/index.vue
  6. 12
      src/components/pic-upload/index.vue
  7. 82
      src/components/pic-upload2/index.vue
  8. 4
      src/utils/index.js
  9. 20
      src/views/activity/bargain/form.vue
  10. 10
      src/views/activity/bargain/index.vue
  11. 18
      src/views/activity/combination/form.vue
  12. 18
      src/views/activity/seckill/form.vue
  13. 2
      src/views/components/Editor.vue
  14. 2
      src/views/dashboard/PanelGroup.vue
  15. 2
      src/views/dashboard/PanelGroupT.vue
  16. 24
      src/views/dashboard/YshopInfo.vue
  17. 2
      src/views/home.vue
  18. 11
      src/views/monitor/log/mlog.vue
  19. 2
      src/views/monitor/online/indext.vue
  20. 121
      src/views/shop/cate/form.vue
  21. 8
      src/views/shop/cate/index.vue
  22. 14
      src/views/shop/goods/form.vue
  23. 2
      src/views/shop/order/detail.vue
  24. 10
      src/views/shop/order/edit.vue
  25. 19
      src/views/shop/order/form.vue
  26. 98
      src/views/shop/order/index.vue
  27. 10
      src/views/shop/order/refund.vue
  28. 8
      src/views/shop/order/remark.vue
  29. 2
      src/views/shop/set/act.vue
  30. 8
      src/views/shop/set/actform.vue
  31. 8
      src/views/shop/set/form.vue
  32. 8
      src/views/shop/set/menuform.vue
  33. 2
      src/views/shop/set/usermenu.vue
  34. 8
      src/views/shop/set/usermenuform.vue
  35. 18
      src/views/shop/user/index.vue
  36. 14
      src/views/shop/userlevel/form.vue
  37. 8
      src/views/wechat/article/form.vue
  38. 10
      src/views/wechat/config/index.vue
  39. 4
      src/views/wechat/config/pay.vue
  40. 2
      vue.config.js

1
.eslintignore

@ -2,3 +2,4 @@ build/*.js
src/assets
public
dist
src/views

2
src/api/yxStoreOrder.js

@ -50,6 +50,6 @@ export function remark(data) {
export function get() {
return request({
url: 'api/yxExpress',
method: 'get',
method: 'get'
})
}

30
src/components/file-upload/index.vue

@ -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}`)
}
}

677
src/components/material/index.vue

@ -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)
})
})
//
height: {
type: Number,
default() {
return 150
}
}
},
data() {
return {
headers: {
Authorization: getToken()
},
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(() => {
})
dialogVisible: false,
url: '',
listDialogVisible: false,
materialgroupList: [],
materialgroupObjId: '',
materialgroupObj: {},
materialgroupLoading: false,
tableData: [],
page: {
total: 0, //
currentPage: 1, //
pageSize: 12, //
ascs: [], //
descs: 'create_time'//
},
materialgroupAdd(){
let that = this
this.$prompt('请输入分组名', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
}).then(({ value }) => {
materialgroupAdd({
name: value
}).then(function() {
that.materialgroupPage()
})
}).catch(() => {
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: '全部分组'
})
},
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
this.materialgroupList = materialgroupList
this.tabClick({
index: 0
})
},
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)
})
},
materialgroupDelete(materialgroupObj) {
const that = this
this.$confirm('是否确认删除该分组?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(function() {
materialgroupDel(materialgroupObj.id)
.then(function() {
that.$delete(that.materialgroupList, materialgroupObj.index)
})
}).catch(() => {
})
},
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)
})
},
materialUrl(item){
let that = this
this.$prompt('素材链接', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
inputValue: item.url,
}).then(({ value }) => {
}).catch(() => {
}).catch(() => {
})
},
materialDel(item){
let that = this
this.$confirm('是否确认删除该素材?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
},
materialgroupAdd() {
const that = this
this.$prompt('请输入分组名', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消'
}).then(({ value }) => {
materialgroupAdd({
name: value
}).then(function() {
delObj(item.id)
.then(function() {
that.getPage(that.page)
})
that.materialgroupPage()
})
},
handleCommand(command) {
let that = this
let s = command.split('-')
}).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: s[0],
groupId: s[1]
id: item.id,
name: value
}).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
}).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>

12
src/components/pic-upload-two/index.vue

@ -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) {

12
src/components/pic-upload/index.vue

@ -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) {

82
src/components/pic-upload2/index.vue

@ -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>-->

4
src/utils/index.js

@ -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}

20
src/views/activity/bargain/form.vue

@ -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: {

10
src/views/activity/bargain/index.vue

@ -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>

18
src/views/activity/combination/form.vue

@ -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(',')
}
}
},

18
src/views/activity/seckill/form.vue

@ -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(',')
}
}
},

2
src/views/components/Editor.vue

@ -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)
}

2
src/views/dashboard/PanelGroup.vue

@ -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

2
src/views/dashboard/PanelGroupT.vue

@ -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

24
src/views/dashboard/YshopInfo.vue

@ -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">
1VIP为终身制包括JAVA端+H5公众号端后期免费升级迭代及其技术支持<br />
2价格vip会员价248元(JAVA+H5+公众号版)后续的系统升级vip价格会有相应的调整的所以早上车更优惠哦<br />
3VIP购买淘宝地址https://item.taobao.com/item.htm?id=607532386325<br />
4加入vip群931426444,请输入你的淘宝订单编号即可入群<br />
5群里面获取私服git<br />
6如果需要小程序需要单独购买看下面<br />
1VIP为终身制包括JAVA端+H5公众号端后期免费升级迭代及其技术支持<br>
2价格vip会员价248元(JAVA+H5+公众号版)后续的系统升级vip价格会有相应的调整的所以早上车更优惠哦<br>
3VIP购买淘宝地址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>

2
src/views/home.vue

@ -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

11
src/views/monitor/log/mlog.vue

@ -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>

2
src/views/monitor/online/indext.vue

@ -64,7 +64,7 @@ import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination'
// crudpresenter
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 },

121
src/views/shop/cate/form.vue

@ -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>

8
src/views/shop/cate/index.vue

@ -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(',')
}

14
src/views/shop/goods/form.vue

@ -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(',')
}
}
},

2
src/views/shop/order/detail.vue

@ -115,7 +115,7 @@ export default {
rules: {
unique: [
{ required: true, message: 'please enter', trigger: 'blur' }
],
]
}
}
},

10
src/views/shop/order/edit.vue

@ -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' }
],
]
}
}
},

19
src/views/shop/order/form.vue

@ -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()

98
src/views/shop/order/index.vue

@ -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}}&nbsp;{{item.cartInfoMap.productInfo.attrInfo.suk}}</span>
<span> | {{item.cartInfoMap.truePrice}}×{{item.cartInfoMap.cartNum}}</span>
<span>{{ item.cartInfoMap.productInfo.storeName }}&nbsp;{{ 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>

10
src/views/shop/order/refund.vue

@ -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' }
],
]
}
}
},

8
src/views/shop/order/remark.vue

@ -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' }
],
]
}
}
},

2
src/views/shop/set/act.vue

@ -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
}

8
src/views/shop/set/actform.vue

@ -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(',')
}
}
},

8
src/views/shop/set/form.vue

@ -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(',')
}
}
},

8
src/views/shop/set/menuform.vue

@ -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(',')
}
}
},

2
src/views/shop/set/usermenu.vue

@ -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>

8
src/views/shop/set/usermenuform.vue

@ -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(',')
}
}
},

18
src/views/shop/user/index.vue

@ -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

14
src/views/shop/userlevel/form.vue

@ -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
src/views/wechat/article/form.vue

@ -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(',')
}
}
},

10
src/views/wechat/config/index.vue

@ -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: {

4
src/views/wechat/config/pay.vue

@ -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>

2
vue.config.js

@ -21,7 +21,7 @@ module.exports = {
open: true,
overlay: {
warnings: false,
errors: true
errors: false
},
proxy: {
'/api': {

Loading…
Cancel
Save