Merge branch 'dev' of e.coding.net:g-cphe0354/yinshoukeguanliduan/management into gyq
This commit is contained in:
@@ -13,4 +13,6 @@ VUE_APP_BASE_API = 'https://admintestpapi.sxczgkj.cn'
|
|||||||
# VUE_APP_BASE_API = 'http://192.168.2.147:8000/'
|
# VUE_APP_BASE_API = 'http://192.168.2.147:8000/'
|
||||||
VUE_APP_WS_API = 'ws://192.168.2.128:8000'
|
VUE_APP_WS_API = 'ws://192.168.2.128:8000'
|
||||||
|
|
||||||
|
VUE_APP_PHP_API = 'https://kysh.sxczgkj.cn'
|
||||||
|
|
||||||
# 是否启用 babel-plugin-dynamic-import-node插
|
# 是否启用 babel-plugin-dynamic-import-node插
|
||||||
@@ -8,4 +8,6 @@ VUE_APP_BASE_API = 'https://admintestpapi.sxczgkj.cn'
|
|||||||
# VUE_APP_BASE_API = 'https://cashieradmin.sxczgkj.cn'
|
# VUE_APP_BASE_API = 'https://cashieradmin.sxczgkj.cn'
|
||||||
# VUE_APP_BASE_API = 'http://192.168.2.98:8000'
|
# VUE_APP_BASE_API = 'http://192.168.2.98:8000'
|
||||||
# 如果接口是 http 形式, wss 需要改为 ws
|
# 如果接口是 http 形式, wss 需要改为 ws
|
||||||
VUE_APP_WS_API = 'wss://123.56.110.252
|
VUE_APP_WS_API = 'wss://123.56.110.252'
|
||||||
|
|
||||||
|
VUE_APP_PHP_API = 'https://kysh.sxczgkj.cn'
|
||||||
|
|||||||
@@ -60,6 +60,7 @@
|
|||||||
"vue-image-crop-upload": "^3.0.3",
|
"vue-image-crop-upload": "^3.0.3",
|
||||||
"vue-material": "^1.0.0-beta-15",
|
"vue-material": "^1.0.0-beta-15",
|
||||||
"vue-router": "3.0.2",
|
"vue-router": "3.0.2",
|
||||||
|
"vue-select-image": "^1.9.0",
|
||||||
"vue-splitpane": "1.0.4",
|
"vue-splitpane": "1.0.4",
|
||||||
"vue2-editor": "^2.10.3",
|
"vue2-editor": "^2.10.3",
|
||||||
"vuedraggable": "2.20.0",
|
"vuedraggable": "2.20.0",
|
||||||
|
|||||||
17
src/api/imagesPhp.js
Normal file
17
src/api/imagesPhp.js
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
import request from "@/utils/requestPhp";
|
||||||
|
|
||||||
|
// 查询图库
|
||||||
|
export function getcommonCategor(data,params) {
|
||||||
|
return request({
|
||||||
|
url: data + `/channel/file/getcommon-category`,
|
||||||
|
method: "get",params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
export function getcommonpicture(data,params) {
|
||||||
|
return request({
|
||||||
|
url: data + "/channel/file/getcommon-picture",
|
||||||
|
method: "get",
|
||||||
|
params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@@ -6,6 +6,11 @@ import "normalize.css/normalize.css";
|
|||||||
|
|
||||||
import Element from "element-ui";
|
import Element from "element-ui";
|
||||||
|
|
||||||
|
// 图片选择器
|
||||||
|
import VueSelectImage from 'vue-select-image'
|
||||||
|
import "vue-select-image/dist/vue-select-image.css";
|
||||||
|
Vue.use(VueSelectImage)
|
||||||
|
|
||||||
// 数据字典
|
// 数据字典
|
||||||
import dict from "./components/Dict";
|
import dict from "./components/Dict";
|
||||||
import Editor from "@/components/Editor";
|
import Editor from "@/components/Editor";
|
||||||
|
|||||||
93
src/utils/requestPhp.js
Normal file
93
src/utils/requestPhp.js
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
import axios from 'axios'
|
||||||
|
import router from '@/router/routers'
|
||||||
|
import { Notification } from 'element-ui'
|
||||||
|
import store from '../store'
|
||||||
|
import { getToken } from '@/utils/auth'
|
||||||
|
import Config from '@/settings'
|
||||||
|
import Cookies from 'js-cookie'
|
||||||
|
|
||||||
|
// 创建axios实例
|
||||||
|
const service = axios.create({
|
||||||
|
baseURL: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_PHP_API : '/php',
|
||||||
|
// baseURL: process.env.VUE_APP_PHP_API, // api 的 base_url
|
||||||
|
timeout: Config.timeout // 请求超时时间
|
||||||
|
})
|
||||||
|
|
||||||
|
// request拦截器
|
||||||
|
service.interceptors.request.use(
|
||||||
|
config => {
|
||||||
|
// if (getToken()) {
|
||||||
|
// config.headers['Authorization'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
||||||
|
// }
|
||||||
|
// config.headers['Content-Type'] = 'application/json'
|
||||||
|
// config.headers['loginName'] = 'admin'
|
||||||
|
// config.headers['token'] = 'eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyVHlwZSI6Ik1HIiwiZXhwIjoxNjkwMTgwNzE2LCJ1c2VySWQiOiIyNDQiLCJpYXQiOjE2ODg3MDk0ODcsImxvZ2luTmFtZSI6ImFkbWluIn0.lqxxvv2-FcecQngMBorz4MpkB3mIJQDG-IUULQyV-KQ'
|
||||||
|
// config.headers["userId"] = '244'
|
||||||
|
return config
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
Promise.reject(error)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// response 拦截器
|
||||||
|
service.interceptors.response.use(
|
||||||
|
response => {
|
||||||
|
return response.data
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
console.log(error);
|
||||||
|
// 兼容blob下载出错json提示
|
||||||
|
if (error.response.data instanceof Blob && error.response.data.type.toLowerCase().indexOf('json') !== -1) {
|
||||||
|
const reader = new FileReader()
|
||||||
|
reader.readAsText(error.response.data, 'utf-8')
|
||||||
|
reader.onload = function (e) {
|
||||||
|
const errorMsg = JSON.parse(reader.result).message
|
||||||
|
Notification.error({
|
||||||
|
title: errorMsg,
|
||||||
|
duration: 5000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
let code = 0
|
||||||
|
try {
|
||||||
|
code = error.response.data.status
|
||||||
|
} catch (e) {
|
||||||
|
if (error.toString().indexOf('Error: timeout') !== -1) {
|
||||||
|
Notification.error({
|
||||||
|
title: '网络请求超时',
|
||||||
|
duration: 5000
|
||||||
|
})
|
||||||
|
return Promise.reject(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(code)
|
||||||
|
if (code) {
|
||||||
|
if (code === 401) {
|
||||||
|
store.dispatch('LogOut').then(() => {
|
||||||
|
// 用户登录界面提示
|
||||||
|
Cookies.set('point', 401)
|
||||||
|
location.reload()
|
||||||
|
})
|
||||||
|
} else if (code === 403) {
|
||||||
|
router.push({ path: '/401' })
|
||||||
|
} else {
|
||||||
|
const errorMsg = error.response.data.message
|
||||||
|
if (errorMsg !== undefined) {
|
||||||
|
Notification.error({
|
||||||
|
title: errorMsg,
|
||||||
|
duration: 5000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Notification.error({
|
||||||
|
title: '接口请求失败',
|
||||||
|
duration: 5000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Promise.reject(error)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
export default service
|
||||||
@@ -47,6 +47,7 @@
|
|||||||
<el-form-item label="商品图片">
|
<el-form-item label="商品图片">
|
||||||
<uploadImg ref="uploadImg" :limit="9" @success="uploadSuccess" @remove="uploadRemove" />
|
<uploadImg ref="uploadImg" :limit="9" @success="uploadSuccess" @remove="uploadRemove" />
|
||||||
<div class="tips">注:第一张图为商品封面图,图片尺寸为750×750</div>
|
<div class="tips">注:第一张图为商品封面图,图片尺寸为750×750</div>
|
||||||
|
<!-- <el-button type="primary" plain icon="el-icon-plus" @click="$refs.addImg.show()">从图库中选取</el-button> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="套餐商品" v-if="shopTypes[shopTypesActive].typeEnum == 'group'">
|
<el-form-item label="套餐商品" v-if="shopTypes[shopTypesActive].typeEnum == 'group'">
|
||||||
<el-table :data="form.groupSnap" border v-if="form.groupSnap.length">
|
<el-table :data="form.groupSnap" border v-if="form.groupSnap.length">
|
||||||
@@ -360,6 +361,8 @@
|
|||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!-- 选择团购券分类 -->
|
<!-- 选择团购券分类 -->
|
||||||
<groupTypeList ref="groupTypeList" @success="res => (form.groupCategoryId = res)" />
|
<groupTypeList ref="groupTypeList" @success="res => (form.groupCategoryId = res)" />
|
||||||
|
<!-- 选择图片 -->
|
||||||
|
<addImg ref='addImg' @successEvent="successEvent"></addImg>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -374,6 +377,7 @@ import {
|
|||||||
tbProductPut
|
tbProductPut
|
||||||
} from "@/api/shop";
|
} from "@/api/shop";
|
||||||
import addUnit from "./components/addUnit";
|
import addUnit from "./components/addUnit";
|
||||||
|
import addImg from './components/addImages.vue'
|
||||||
import addClassify from "./components/addClassify";
|
import addClassify from "./components/addClassify";
|
||||||
import shopList from "@/components/shopList";
|
import shopList from "@/components/shopList";
|
||||||
import groupTypeList from "@/components/groupTypeList";
|
import groupTypeList from "@/components/groupTypeList";
|
||||||
@@ -390,7 +394,7 @@ export default {
|
|||||||
uploadImg,
|
uploadImg,
|
||||||
shopList,
|
shopList,
|
||||||
groupTypeList,
|
groupTypeList,
|
||||||
Editor
|
Editor, addImg
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
const validatordateUsed = (rule, value, callback) => {
|
const validatordateUsed = (rule, value, callback) => {
|
||||||
@@ -547,6 +551,17 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
successEvent(d) {
|
||||||
|
d.forEach(item => {
|
||||||
|
item.uid = item.id
|
||||||
|
item.url = item.src
|
||||||
|
this.form.images.push(item.src);
|
||||||
|
})
|
||||||
|
this.$refs.uploadImg.fileList.push(...d)
|
||||||
|
// this.form.images.push(res[0]);
|
||||||
|
// console.log(this.$refs.uploadImg.fileList, '调试111111')
|
||||||
|
// console.log(this.$refs.uploadImg.files, '调试222')
|
||||||
|
},
|
||||||
priceFormat(item, key) {
|
priceFormat(item, key) {
|
||||||
const messageheight = 48;
|
const messageheight = 48;
|
||||||
const offset = window.innerHeight / 2 - (messageheight / 2) - 100
|
const offset = window.innerHeight / 2 - (messageheight / 2) - 100
|
||||||
|
|||||||
84
src/views/product/components/addImages.vue
Normal file
84
src/views/product/components/addImages.vue
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-dialog title="请选择" :visible.sync="dialogVisible" width="">
|
||||||
|
<el-select v-model="value" placeholder="请选择" @change="selectchange">
|
||||||
|
<el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<vue-select-image :dataImages="dataImages" h="100px" w="100px" :is-multiple="true"
|
||||||
|
@onselectmultipleimage="onSelectImage">
|
||||||
|
</vue-select-image>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="sumbit">确 定</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getcommonCategor, getcommonpicture } from "@/api/imagesPhp";
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogVisible: false,
|
||||||
|
selectImage: [],
|
||||||
|
dataImages: [
|
||||||
|
// {
|
||||||
|
// id: '1',
|
||||||
|
// src: 'https://unsplash.it/200?random',
|
||||||
|
// alt: 'Alt Image 1'
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// id: '2',
|
||||||
|
// src: 'https://unsplash.it/200?random',
|
||||||
|
// alt: 'Alt Image 2',
|
||||||
|
// disabled: true
|
||||||
|
// }
|
||||||
|
],
|
||||||
|
options: [],
|
||||||
|
value: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getType()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
selectchange() {
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
sumbit() {
|
||||||
|
this.dialogVisible = false
|
||||||
|
this.$emit('successEvent', this.selectImage)
|
||||||
|
},
|
||||||
|
show() {
|
||||||
|
this.dialogVisible = true
|
||||||
|
},
|
||||||
|
async getList() {
|
||||||
|
let obj = {
|
||||||
|
category: this.value,
|
||||||
|
page: 1,
|
||||||
|
size: 10,
|
||||||
|
store_id: localStorage.getItem("shopId"),
|
||||||
|
|
||||||
|
}
|
||||||
|
const res = await getcommonpicture('https://kysh.sxczgkj.cn', obj);
|
||||||
|
this.dataImages = res.data
|
||||||
|
},
|
||||||
|
async getType() {
|
||||||
|
const res = await getcommonCategor('https://kysh.sxczgkj.cn',{
|
||||||
|
store_id: localStorage.getItem("shopId"),
|
||||||
|
});
|
||||||
|
this.options = res.data
|
||||||
|
this.value = res.data[0].id
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
onSelectImage(d) { this.selectImage = d }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -40,6 +40,13 @@ module.exports = {
|
|||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
'^/auth': 'auth'
|
'^/auth': 'auth'
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
'/php': {
|
||||||
|
target: process.env.VUE_APP_PHP_API,
|
||||||
|
changeOrigin: true,
|
||||||
|
pathRewrite: {
|
||||||
|
'^/auth': 'auth'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user