Commit 9b29ea89 authored by leiqingsong's avatar leiqingsong

Merge branch 'master' of http://114.67.93.201/xulili/ybf

parents 1c877ad9 4a5e5c17
......@@ -6,4 +6,4 @@ VUE_APP_TITLE = 亿百分-dev
VUE_APP_OY_API = /api/
VUE_APP_API_A = http://139.155.48.151:8085
VUE_APP_API_B = http://111.26.165.55:8010/crminterface.ashx
VUE_APP_API_B = http://139.155.48.151:8084
......@@ -6,4 +6,4 @@ VUE_APP_TITLE = 亿百分-dev
VUE_APP_OY_API = http://111.26.165.55:8010/crminterface.ashx
VUE_APP_API_A = http://139.155.48.151:8085
VUE_APP_API_B = http://111.26.165.55:8010/crminterface.ashx
VUE_APP_API_B = http://139.155.48.151:8084
......@@ -6,4 +6,4 @@ VUE_APP_TITLE = 亿百分-prod
VUE_APP_OY_API = http://111.26.165.55:8010/crminterface.ashx
VUE_APP_API_A = http://139.155.48.151:8085
VUE_APP_API_B = http://111.26.165.55:8010/crminterface.ashx
VUE_APP_API_B = http://139.155.48.151:8084
......@@ -15,11 +15,12 @@
"core-js": "^3.4.4",
"js-md5": "^0.7.3",
"jssdk": "^0.0.1",
"qrcode": "^1.4.4",
"vant": "^2.3.3",
"vant": "^2.5.9",
"vue": "^2.6.10",
"vue-quill-editor": "^3.0.6",
"vue-router": "^3.1.3",
"vuex": "^3.1.2"
"vuex": "^3.1.2",
"wangeditor": "^3.1.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^4.1.0",
......@@ -31,6 +32,7 @@
"node-sass": "^4.13.0",
"postcss-loader": "^3.0.0",
"postcss-pxtorem": "^4.0.1",
"quill-image-extend-module": "^1.1.2",
"sass-loader": "^8.0.0",
"vue-template-compiler": "^2.6.10"
}
......
......@@ -59,3 +59,11 @@ input:focus{ outline: none;}
width: 100%;
height: 100%;
}
.flex-start {
display: flex;
height: auto;
justify-content: flex-start;
flex-direction: column;
width: 100%;
background-color: #fff;
}
\ No newline at end of file
<template>
<div class="editor">
<quill-editor
v-model="content"
ref="myQuillEditor"
:options="options"
:disabled="redact"
@change="onEditorChange($event)"
></quill-editor>
<van-uploader v-show="false" :afterRead="afterRead" :beforeRead="beforeRead">
<van-button icon="photo" type="primary">上传图片</van-button>
</van-uploader>
</div>
<!-- <div class="ql-editor" v-html="content"></div> -->
</template>
<script>
import "quill/dist/quill.core.css" //引入样式
import "quill/dist/quill.snow.css"//引入样式
import "quill/dist/quill.bubble.css"//引入样式
import { quillEditor } from "vue-quill-editor"//引入组件
export default {
name: "quillEditors",
props: {
//是否可以编辑
redact: {
type: Boolean,
default: false
},
//头部是否可显示
title: {
type: Boolean,
default: false
}
},
data() {
return {
content: ``,
options: {
placeholder: "请输入模板...",
modules: {
toolbar: {
container: [
["bold", "italic", "underline", "strike"], //切换按钮 //bold 加粗 italic 斜 underline 下划线 strike删除线
["blockquote", "code-block"], //blockquote 引用 code-block 代码块
["link", "image"], //图片 link 链接 image图片
[{ header: 1 }, { header: 2 }], // 标题,键值对的形式;1、2表示字体大小
[{ list: "ordered" }, { list: "bullet" }], //排序 ordered 有序 bullet 无序
// [{ header: [1, 2, 3, 4, 5, 6, false] }], //几级标题
[{ script: "sub" }, { script: "super" }], // sub上标 / super下标
[{ indent: "-1" }, { indent: "+1" }], // 减少缩进/缩进
[{ direction: "rtl" }], // 文本方向
[{ color: [] }, { background: [] }], // color 字体颜色 background 背景颜色 从主题默认下拉
[{ align: [] }], //文本对齐方式
[{ font: [] }], //字体格式
[{ size: [] }] // 自定义下拉
],
handlers: {
image: value => {
if (value) {
//禁止软键盘弹出
document.activeElement.blur();
// 触发input框选择图片文件
document.querySelector(".van-uploader input").click();
} else {
this.quill.format("image", false);
}
}
}
}
}
}
};
},
computed: {},
watch: {
//title变化时触发
title(bool) {
if (bool) {
document.querySelector(".quill-editor .ql-toolbar").style.display =
"none";
}
}
},
methods: {
//图片上传成功
afterRead(file) {
console.log("后", file);
},
//图片上传前
async beforeRead(file) {
console.log("前", file, file.size / 1024);
if (file.size == 0) {
return false
}
if (!/^image\/(jpeg|png|jpg)$/.test(file.type)) {
this.$toast("请上传 jpg,jpeg,png 格式图片");
return false;
}
this.$toast.allowMultiple();
let loading = this.$toast.loading({
duration: 0,
mask: false,
forbidClick: true,
message: "上传中..."
});
let fr = new FormData();
fr.append("image", file);
try {
let quill = this.$refs.myQuillEditor.quill;
let { msg, code, data } = await this.$post("img/V1/uploadImage", fr);
if (code === 1) {
console.log("上传成功", data[0]);
// 获取光标所在位置
let length = quill.getSelection().index;
// 插入图片
quill.insertEmbed(length, "image", data[0]);
// 调整光标到最后
quill.setSelection(length + 1);
return true;
} else {
this.$toast(`${msg}`);
}
} catch (err) {
console.log("错误", err);
this.$toast("网络错误,请检查网络连接!");
} finally {
loading.clear();
}
},
//内容改变触发
onEditorChange() {
this.$emit("ChangeText", this.content);
}
},
mounted() {
//初始化title
this.title == true
? (document.querySelector(".quill-editor .ql-toolbar").style.display =
"none")
: "";
},
components: { quillEditor }
// components: { editor }
};
</script>
<style lang='scss' >
.editor {
height: 80%;
position: relative;
display: flex;
flex-direction: column;
.quill-editor {
height: 100%;
}
.ql-toolbar {
z-index: inherit;
// position: absolute;
// top: 0;
}
.ql-container {
flex: 1;
s,
i,
em {
font-style: italic;
text-decoration: line-through;
}
}
}
</style>
\ No newline at end of file
......@@ -5,11 +5,13 @@ import router from './router'
import store from './store'
import './lib/rem';
import Vant from 'vant';
import { Toast } from 'vant';
import 'vant/lib/index.css';
Vue.config.productionTip = false
Vue.use(Vant);
Vue.use(Toast);
const originalPush = Router.prototype.push
Router.prototype.push = function push(location) {
......
......@@ -3,7 +3,7 @@ import VueRouter from 'vue-router'
import Home from '../views/home.vue'
import { getXToken, configWx } from '@/utils/aCommon'
import mineRoute from './mine'
Vue.use(VueRouter)
const routes = [
......@@ -67,6 +67,21 @@ const routes = [
name: 'counterMaintain',
component: () => import('@/views/counter/counterMaintain')
},
{
path: '/counterEdit',
name: 'counterEdit',
component: () => import('@/views/counter/counterEdit')
},
{
path: '/chargeCode',
name: 'chargeCode',
component: () => import('@/views/counter/chargeCode')
},
{
path: '/pushStoreInfo',
name: 'pushStoreInfo',
component: () => import('@/views/counter/pushStoreInfo')
},
{
path: '/goodManage',
name: 'goodManage',
......@@ -136,7 +151,8 @@ const routes = [
path: '/qrCode',
name: 'qrCode',
component: () => import('@/views/qrCode/index')
}
},
...mineRoute
// {
// path: '/about',
// name: 'about',
......
export default {
namespaced: true,
state: {
title:'',
content:''
},
mutations: {
title(state, title) {
state.title = title
},
content(state, content) {
state.content = content
},
}
}
import axios from 'axios'
import envConfig from '@/config/env-config'
let INFO = {
// corpId: 'wwd1cdbca7b8b2b6c4',
// agentId: '1000015',
corpId: 'ww4df265003b43fa0d',
agentId: '1000033',
url: envConfig.appBaseUrlB,
}
// 创建axios实例
const service = axios.create({
baseURL: INFO.url, // api 的 base_url
timeout: 50000 // 请求超时时间
})
// request拦截器
service.interceptors.request.use(
(config) => {
if (sessionStorage['token']) {
config.headers['token'] = sessionStorage['token']
config.headers['businessId'] = sessionStorage['businessId']
} else {
config.headers['businessId'] = '10'
}
return config;
},
(error) => {
Promise.reject(error)
}
)
// response 拦截器
service.interceptors.response.use(
response => {
console.log(response)
if(response.status == 200) {
return response.data
} else {
Message({
message: response.data.msg,
type: 'error',
duration: 5 * 1000
})
}
},
error => {
console.log(error)
}
)
export default service
/**
* Created by supervisor on 2020/3/31
*/
import requestAPI from '@/utils/bRequest'
export function getMessageByClerkId(params) {
return requestAPI({
url: '/admin/auth/marketing/getMessageByClerkId',
method: 'get',
params
})
}
export function getClerkInfoBySupervisorId(params) {
return requestAPI({
url: '/admin/auth/addressbook/clerk/getClerkInfoBySupervisorId',
method: 'get',
params
})
}
export function newTask(data) {
return requestAPI({
url: '/admin/auth/marketing/newTask',
method: 'post',
data
})
}
<template>
<div>
<div></div>
<div>收款码</div>
</div>
</template>
<script>
export default {
}
</script>
<style>
</style>
\ No newline at end of file
<template>
<div class="container">
<div class="flex-start">
<van-uploader v-model="bannerList" :max-count="4" />
<div>
<quill-editors @ChangeText="(text)=>{content=text}" :title="title" />
<!-- <van-uploader class="avatar-uploader" />D -->
<quill-editor v-model="content" ref="myQuillEditor" :options="editorOption" @change="onEditorChange($event)"></quill-editor>
</div>
</div>
<div class="creat">保存信息</div>
</div>
</template>
<script>
import QuillEditors from "@/components/quill"
// import { quillEditor } from "vue-quill-editor"
// import "quill/dist/quill.core.css"
// import "quill/dist/quill.snow.css"
// import "quill/dist/quill.bubble.css"
const toolbarOptions = [
[{ size: ["small", false, "large", "huge"] }], // 字体大小
[ "image" ] // 链接、图片、视频
]
export default {
components: {
// quillEditor
QuillEditors
},
data() {
return {
bannerList: [],
content: '',
isClear: false,
detail:"",
editorOption: {
placeholder: "",
theme: "snow", // or 'bubble'
modules: {
toolbar: {
container: toolbarOptions,
handlers: {
// image: function(value) {
// if (value) {
// // 触发input框选择图片文件
// document.querySelector(".avatar-uploader input").click();
// } else {
// this.quill.format("image", false);
// }
// }
}
}
}
},
header: {
}, // 有的图片服务器要求请求头需要有token
serverUrl: "https://139.219.7.104:8021/file/upload",
// title:
}
},
methods: {
change(val) {
console.log(val)
},
onEditorChange({ editor, html, text }) {
console.log(this.content,'内容')
console.log(html,'html')
console.log(editor,'editor')
console.log(text,'text')
this.$emit("input", this.content);
},
}
}
</script>
<style >
</style>
<style scoped>
.container {
min-height: 100%;
height: auto;
background: #F8F8F8;
display: flex;
justify-content: space-between;
flex-direction: column;
align-items: center;
}
.content {
background: #fff;
height: auto;
}
.creat {
margin: 20px 0;
width: 343px;
height: 40px;
line-height: 40px;
background: rgba(117, 178, 253, 1);
border-radius: 10px;
font-size: 16px;
font-weight: bold;
color: rgba(255, 255, 255, 1);
text-align: center;
bottom: 0;
}
</style>
<template>
<div class="container">
<div class="flex-start top" >
<div class="flex-start">
<van-cell-group class="gn">
<van-cell title="专柜LOGO" center class="logo">
<template slot="default">
<van-uploader v-model="addForm.logo" :max-count="1" class="input">
<div class="cube" style="width:54px;height:50px;">
<van-icon name="photo" size="40" />
<div class="mb">点击替换</div>
</div>
</van-uploader>
</template>
</van-cell>
<van-cell title="专柜名称">
<template slot="default">
<van-field v-model="addForm.name" placeholder="输入名称" class="input" />
</template>
</van-cell>
<van-cell title="门店">
<template slot="default">
<van-field v-model="addForm.store" placeholder="输入名称" class="input" />
</template>
</van-cell>
<van-cell title="专柜地址">
<template slot="default">
<van-field v-model="addForm.address" placeholder="输入名称" class="input" />
</template>
</van-cell>
<div class="border">
<div class="des">摘要信息</div>
<van-field
v-model="addForm.abstract"
rows="4"
autosize
type="textarea"
placeholder="请输入摘要信息"
show-word-limit
maxlength="30"
/>
</div>
</van-cell-group>
</div>
<div class="flex-start fwb" >
<div class="txt">轮播图</div>
<van-uploader v-model="bannerList" :max-count="4" class="pic" />
<van-field v-model="addForm.title" placeholder="标题(不超过30个字)" maxlength="30"></van-field>
<quill-editor v-model="content" ref="myQuillEditor" :options="editorOption" @change="onEditorChange($event)"></quill-editor>
</div>
</div>
<div class="creat">保存信息</div>
</div>
</template>
<script>
import { quillEditor, Quill } from "vue-quill-editor";
import { container, ImageExtend, QuillWatch } from "quill-image-extend-module";
import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css";
Quill.register("modules/ImageExtend", ImageExtend);
const toolbarOptions = [
[{ size: ["small", false, "large", "huge"] }], // 字体大小
["image"] // 图片
];
export default {
components: {
quillEditor
},
data() {
return {
addForm: {
logo: [],
abstract: '',
store: '',
name: '',
address: '',
title: ''
},
bannerList: [],
title: "",
content: "",
// 富文本框参数设置
editorOption: {
modules: {
ImageExtend: {
name: "file", // 图片参数名
// size: 3,
action: "http://139.155.48.151:8084/admin/auth/util/saveImg",
// response 为一个函数用来获取服务器返回的具体图片地址
// 例如服务器返回{code: 200; data:{ url: 'baidu.com'}}
// 则 return res.data.url
response: res => {
return res.data.imgPath;
},
headers: xhr => {
// xhr.setRequestHeader('Content-Type','multipart/form-data')
} // 可选参数 设置请求头部
},
toolbar: {
// 如果不上传图片到服务器,此处不必配置
container: toolbarOptions, // container为工具栏,此次引入了全部工具栏,也可自行配置
placeholder: "请输入正文",
handlers: {
image: function() {
// 劫持原来的图片点击按钮事件
QuillWatch.emit(this.quill.id);
}
}
}
}
}
};
},
methods: {
change(val) {
console.log(val);
},
onEditorChange({ editor, html, text }) {
console.log(this.content, "内容")
this.$emit("input", this.content)
}
}
};
</script>
<style >
</style>
<style scoped>
.pic {
border-bottom: 2px solid #ebedf0;
}
.pic >>> .van-uploader__wrapper {
justify-content: center;
}
.txt {
font-size: 18px;
color:rgba(45, 71, 106, 1);
font-weight: bold;
margin: 6px 16px 4px;
}
.top {
background: #f8f8f8;
}
.fwb {
margin-top: 10px;
}
.container {
min-height: 100%;
height: auto;
background: #f8f8f8;
display: flex;
justify-content: space-between;
flex-direction: column;
align-items: center;
}
.content {
background: #fff;
height: auto;
}
.creat {
margin: 20px 0;
width: 343px;
height: 40px;
line-height: 40px;
background: rgba(117, 178, 253, 1);
border-radius: 10px;
font-size: 16px;
font-weight: bold;
color: rgba(255, 255, 255, 1);
text-align: center;
bottom: 0;
}
.des {
font-size: 14px;
font-weight: bold;
color: rgba(45, 71, 106, 1);
margin-bottom: 12px;
}
.detail {
background-color: #fff;
padding: 12px 16px 0 16px;
}
.border {
padding: 15px;
}
.border >>> .van-field__control {
text-align: left !important;
background-color: #f8f8f8;
}
.border >>> .van-cell {
padding: 0;
}
.van-cell__value,
.van-cell__value--alone {
text-align: right;
}
.input {
padding: 0;
}
.gn >>> .van-field__control {
text-align: right;
}
.gn >>> .van-cell__title {
font-size: 14px;
font-weight: bold;
color: rgba(45, 71, 106, 1);
}
.gn {
margin-top: 12px;
width: 100%;
padding-bottom: 12px;
}
.input >>> .van-uploader__input-wrapper {
width: 100%;
}
</style>
......@@ -23,18 +23,33 @@
</div>
</div>
<van-cell-group class="gn">
<van-cell title="专柜信息" is-link value="详细信息" />
<van-cell title="专柜信息" is-link value="详细信息" @click="handleEdit" />
<van-cell title="访问专柜首页" is-link value="详细信息" />
<van-cell title="专柜收款码" is-link value="详细信息" />
<van-cell title="推送门店信息" is-link value="详细信息" />
<van-cell title="专柜收款码" is-link value="详细信息" @click="getChargeCode" />
<van-cell title="推送门店信息" is-link value="详细信息" @click="handlePushInfo" />
</van-cell-group>
</div>
</template>
<script>
import { quillEditor } from "vue-quill-editor";
import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css";
export default {
data() {
return {};
},
methods: {
handleEdit() {
this.$router.push("counterEdit")
},
getChargeCode() {
this.$router.push("chargeCode")
},
handlePushInfo() {
this.$router.push("pushStoreInfo")
}
}
};
</script>
......
......@@ -49,7 +49,7 @@
/>
</div>
</div>
</van-cell-group>
</van-cell-group>
<div class="creat">保存信息</div>
</div>
</template>
......
<template>
<div class="container">
<div>
<!-- 搜索框 -->
<van-search v-model="inputValue" placeholder="请输入搜索关键词" />
</div>
<van-checkbox-group v-model="list" @change="onChange">
<van-cell-group >
<van-cell class="content" v-for="(item, index) in newMemberList" :key="index" clickable data-index="index" bind:click="toggle">
<template slot="title">
<img src="../../../public/img/photo.png" alt="" />
<span class="custom-title">{{ item.name }}</span>
</template>
<van-checkbox slot="right-icon" catch:tap="noop" :name="item.id" />
</van-cell>
</van-cell-group>
</van-checkbox-group>
<div>外部联系人{{ info }}</div>
</div>
</template>
<script>
export default {
data() {
return {
inputValue: '',
newMemberList: [
{
id: 1,
src: "",
name: "Solomon"
},
{
id: 2,
src: "",
name: "Solomon"
}
],
list: [],
info: ''
}
},
mounted() {
this.getAgentAuth()
},
methods: {
getList() {
wx.invoke('selectExternalContact', {
"filterType": 0,
},
function(res){
if(res.err_msg == "selectExternalContact:ok"){
alert(`${JSON.stringify(res)}`)
this.info = `${JSON.stringify(res)}`
}else {
//错误处理
alert('获取失败')
}
})
},
onChange(val) { },
toggle(event) {
const { index } = event.currentTarget.dataset;
const checkbox = this.selectComponent(`.checkboxes-${index}`);
checkbox.toggle();
},
noop() {}
}
}
</script>
<style scoped>
.content {
align-items: center;
}
.content >>> .van-icon-arrow:before {
margin-top: 10px;
color: #2d476a;
}
.custom-title {
margin-left: 12px;
font-size: 16px;
font-weight: bold;
color: rgba(45, 71, 106, 1);
}
.content img {
width: 44px;
height: 44px;
border-radius: 50%;
vertical-align: middle;
}
</style>
......@@ -48,10 +48,10 @@
</div>
<div class="main-actives">
<div class="actives-banners">
<!-- <img class="actives-banner-small" :src="test.activeInfo.icon['0']">-->
<!--<img class="actives-banner-small" :src="test.activeInfo.icon['0']">-->
<div class="actives-banner-title">现有开展活动</div>
<!-- <img class="actives-banner-small" :src="test.cache.imgUrl">-->
<!-- <img class="actives-banner-small" :src="test.cache.imgUrl">-->
</div>
<div class="actives-main">
......@@ -199,7 +199,6 @@
methods: {
checkNowMenuBar() {
let inData = '1'
this.test.menuBarInfo.icon.now = this.test.menuBarInfo.icon.ua
this.test.menuBarInfo.icon.now[inData] = this.test.menuBarInfo.icon.ac[inData]
},
......@@ -221,7 +220,7 @@
this.$router.push("activeList")
},
menu04Click() {
this.$router.push("counterMaintain")
this.$router.push("counterInfo")
},
menu05Click() {
this.$router.push("ActTemplate")
......
......@@ -36,7 +36,7 @@
<div class="list list-latest">
<div class="list-title">我的收益</div>
<img class="list-icon" :src="cache.icon.arrowRightDark" />
</div>
</div>
</div>
<div class="main-menuBar">
......@@ -65,55 +65,56 @@
</template>
<script>
import { configWx, getUserInfo } from "@/utils/aCommon";
import axios from "axios";
export default {
name: "me",
data() {
return {
cache: {
icon: {
testImg: "/mainSale/test-city.png",
arrowRightLight: "/mainSale/icon-arrow-right-light.png",
arrowRightDark: "/mainSale/icon-arrow-right-dark.png"
}
},
userInfo: '',
menuBarInfo: {
list: {
main: [
{
name: "",
iconUaUrl: "",
iconAcUrl: ""
}
]
import {configWx, getUserInfo} from "@/utils/aCommon";
import axios from "axios";
export default {
name: "me",
data() {
return {
cache: {
icon: {
testImg: "/mainSale/test-city.png",
arrowRightLight: "/mainSale/icon-arrow-right-light.png",
arrowRightDark: "/mainSale/icon-arrow-right-dark.png"
}
},
icon: {
now: {
"1": "",
"2": "",
"3": "",
"4": "",
"5": ""
userInfo: '',
menuBarInfo: {
list: {
main: [
{
name: "",
iconUaUrl: "",
iconAcUrl: ""
}
]
},
ua: {
"1": "/mainSale/icon-menuBar-1-ua.png",
"2": "/mainSale/icon-menuBar-2-ua.png",
"3": "/mainSale/icon-menuBar-3-ua.png",
"4": "/mainSale/icon-menuBar-4-ua.png",
"5": "/mainSale/icon-menuBar-5-ua.png"
},
ac: {
"1": "/mainSale/icon-menuBar-1-ac.png",
"2": "/mainSale/icon-menuBar-2-ac.png",
"3": "/mainSale/icon-menuBar-3-ac.png",
"4": "/mainSale/icon-menuBar-4-ac.png",
"5": "/mainSale/icon-menuBar-5-ac.png"
icon: {
now: {
"1": "",
"2": "",
"3": "",
"4": "",
"5": ""
},
ua: {
"1": "/mainSale/icon-menuBar-1-ua.png",
"2": "/mainSale/icon-menuBar-2-ua.png",
"3": "/mainSale/icon-menuBar-3-ua.png",
"4": "/mainSale/icon-menuBar-4-ua.png",
"5": "/mainSale/icon-menuBar-5-ua.png"
},
ac: {
"1": "/mainSale/icon-menuBar-1-ac.png",
"2": "/mainSale/icon-menuBar-2-ac.png",
"3": "/mainSale/icon-menuBar-3-ac.png",
"4": "/mainSale/icon-menuBar-4-ac.png",
"5": "/mainSale/icon-menuBar-5-ac.png"
}
}
}
},
zcache: {
},
zcache: {
nowUrl: "",
preAuthCodeUrl: "",
code: "",
......@@ -129,9 +130,9 @@ export default {
alert(this.$route.query.code) */
this.zReadyUserId()
this.zTestGetNowUrlInfo()
},
methods: {
methods: {
checkNowMenuBar() {
let inData = "5";
this.menuBarInfo.icon.now = this.menuBarInfo.icon.ua;
......@@ -159,7 +160,7 @@ export default {
"color: orange;",
this.$route.query.code
) */
if (this.$route.query.code === undefined){
// alert('没code')
// this.zTestPreAuthCode()
......@@ -174,10 +175,10 @@ export default {
// alert('获取url')
this.zcache.nowUrl = JSON.stringify(this.$route.query);
this.zcache.code = String(this.$route.query.code);
this.url = this.zcache.nowUrl
this.url = this.zcache.nowUrl
},
zTestPreAuthCode() {
// alert('获取code')
// alert('获取code')
const basicInfo = {
head: "https://open.weixin.qq.com/connect/oauth2/authorize?",
// appId: "wwd1cdbca7b8b2b6c4",
......@@ -232,8 +233,13 @@ export default {
this.zcache.userInfoResNew = "RESERR.";
});
},
}
};
handleDetail(type){
if(type === 'message'){
this.$router.push('/message')
}
}
}
};
</script>
<style scoped>
......
<template>
<div class="add-message-container">
<van-nav-bar left-text="取消" right-text="下一步"
@click-left="onClickLeft"
@click-right="onClickRight"
/>
<van-panel class="van-panel">
<template #header>
<van-field class="message-title" v-model="title" placeholder="请输入标题" />
</template>
<van-field class="message-content" v-model="content" placeholder="请输入内容" input-align="left" type="textarea"
/>
</van-panel>
</div>
</template>
<script>
export default {
name: 'addMessage',
data() {
return {
title:'',
content:''
}
},
methods: {
onClickLeft() {
this.$router.back()
},
onClickRight() {
//发布 全员发送 获取全部id 部分可见 获取check 的id
if(!this.title){
this.$toast("请输入标题")
return false
}
if(!this.content){
this.$toast("请输入内容")
return false
}
this.$store.commit('message/title',this.title)
this.$store.commit('message/content',this.content)
this.$router.push('/releaseMessage')
},
}
}
</script>
<style scoped lang="scss">
.add-message-container {
height: 100%;
overflow: hidden;
.van-nav-bar {
padding: 0 20px;
&:after {
border: none;
}
}
/deep/.van-panel{
padding: 0 20px;
&:after{
border: none;
}
.message-title{
&:after{
left: 0;
border-color: #ccc;
}
.van-field__control{
height: 45px;
}
}
.message-content{
padding-top: 10px;
.van-field__control{
height: calc(100vh - 110px);
}
}
}
}
</style>
<template>
<div class="message-container">
<div class="message-list">
<div class="message-panel-box" v-for="(item,index) in messageList" :key="index">
<div class="message-panel-box-left">
<p class="message-title"></p>
<p class="message-content"></p>
</div>
<div class="message-panel-box-right">
<span></span>
</div>
</div>
</div>
<div class="btn-plus" @click="handleAddMessage"> <span>+</span> </div>
</div>
</template>
<script>
import {getMessageByClerkId} from '@/utils/utils.Request.aApi'
export default {
name: 'index',
data() {
return {
clerkId: '2003160512400400000',
messageList: []
}
},
mounted() {
this.handleGetMessageByClerkId()
},
methods: {
handleGetMessageByClerkId() {
let _this = this
getMessageByClerkId({clerkId: _this.clerkId})
.then(res => {
if (res.result == 'success') {
_this.messageList = res.data
} else {
_this.messageList = []
_this.$toast(res.errorMsg);
}
})
.catch(err => {
})
},
handleAddMessage(){
this.$router.push('/addMessage')
}
}
}
</script>
<style scoped lang="scss">
.message-container{
height: 100%;
.btn-plus{
position: fixed;
right: 30px;
bottom: 30px;
font-size: 40px;
font-weight: bold;
width: 50px;
height: 50px;
border: 2px solid #ccc;
border-radius: 50%;
text-align: center;
color: green;
line-height: 1;
}
}
</style>
<template>
<div class="release-message-container">
<van-nav-bar left-text="取消" right-text="发布"
@click-left="onClickLeft"
@click-right="onClickRight"
/>
<div class="radio-group">
<van-radio-group v-model="radio" direction="horizontal" @change="handleChangeRadio">
<van-radio name="1">全员发送</van-radio>
<van-radio name="2">部分可见</van-radio>
</van-radio-group>
</div>
<div class="userlist">
<van-checkbox-group v-model="checkIds">
<van-checkbox :name="item.userId" shape="square" v-for="(item,index) in userList" :key="index">{{item.userName}}</van-checkbox>
</van-checkbox-group>
</div>
</div>
</template>
<script>
import {getClerkInfoBySupervisorId,newTask} from '@/utils/utils.Request.aApi'
export default {
name: 'releaseMessage',
data() {
return {
radio: '1',
checkIds:[],
supervisorId:'2003160512400400000',
userList:[]
}
},
mounted(){
this.getClerkInfoBySupervisorId()
},
methods: {
// 根据主管id获取所属部门全部员工信息
getClerkInfoBySupervisorId(){
let _this = this
getClerkInfoBySupervisorId({supervisorId: _this.supervisorId})
.then(res => {
if (res.result == 'success') {
_this.userList = res.data
_this.checkIds = res.data.map(v=>{
return v.userId
})
} else {
_this.userList = []
_this.$toast(res.errorMsg);
}
})
.catch(err => {
})
},
onClickLeft() {
this.$router.back()
},
onClickRight() {
//发布 全员发送 获取全部id 部分可见 获取check 的id
let title = this.$store.state.title
let content = this.$store.state.content
let supervisorId = this.supervisorId
let clerkIds = this.checkIds
debugger
let requestParam = {
title:title,
content:content,
supervisorId:supervisorId,
clerkIds:clerkIds
}
let _this = this
// newTask(requestParam)
// .then(res => {
// if (res.result == 'success') {
// _this.$toast('发布成功');
// _this.$router.push('/message')
// } else {
// _this.$toast(res.errorMsg);
// }
// })
// .catch(err => {
//
// })
},
handleChangeRadio(val){
if(val == '1'){
this.checkIds = this.userList.map(v=>{
return v.userId
})
}
},
}
}
</script>
<style lang="scss">
.release-message-container {
height: 100%;
overflow: hidden;
.van-nav-bar {
padding: 0 20px;
/*&:after{*/
/*border: none;*/
/*}*/
}
.radio-group {
margin: 10px 0 20px 0;
.van-radio-group--horizontal{
padding: 0 20px;
justify-content: space-around;
}
.van-radio__icon{
font-size: 18px;
}
.van-radio__label {
font-size: 14px;
}
}
.userlist{
height: calc(100% - 66px);
overflow-x: hidden;
overflow-y: scroll;
.van-checkbox-group{
padding: 0 30px;
.van-checkbox{
margin-bottom: 10px;
.van-checkbox__icon{
font-size: 18px;
}
.van-checkbox__label{
font-size: 14px;
}
}
}
}
}
</style>
......@@ -2171,6 +2171,11 @@ clone@^1.0.2:
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
clone@^2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
coa@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
......@@ -3268,6 +3273,11 @@ event-pubsub@4.3.0:
resolved "https://registry.yarnpkg.com/event-pubsub/-/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e"
integrity sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==
eventemitter3@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba"
integrity sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=
eventemitter3@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb"
......@@ -3399,7 +3409,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
assign-symbols "^1.0.0"
is-extendable "^1.0.1"
extend@~3.0.2:
extend@^3.0.2, extend@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
......@@ -3442,6 +3452,11 @@ fast-deep-equal@^2.0.1:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
fast-diff@1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154"
integrity sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==
fast-glob@^2.2.6:
version "2.2.7"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d"
......@@ -5923,6 +5938,11 @@ param-case@2.1.x:
dependencies:
no-case "^2.2.0"
parchment@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/parchment/-/parchment-1.1.4.tgz#aeded7ab938fe921d4c34bc339ce1168bc2ffde5"
integrity sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==
parent-module@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
......@@ -6682,6 +6702,27 @@ querystringify@^2.1.1:
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e"
integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==
quill-delta@^3.6.2:
version "3.6.3"
resolved "https://registry.yarnpkg.com/quill-delta/-/quill-delta-3.6.3.tgz#b19fd2b89412301c60e1ff213d8d860eac0f1032"
integrity sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==
dependencies:
deep-equal "^1.0.1"
extend "^3.0.2"
fast-diff "1.1.2"
quill@^1.3.4:
version "1.3.7"
resolved "https://registry.yarnpkg.com/quill/-/quill-1.3.7.tgz#da5b2f3a2c470e932340cdbf3668c9f21f9286e8"
integrity sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==
dependencies:
clone "^2.1.1"
deep-equal "^1.0.1"
eventemitter3 "^2.0.3"
extend "^3.0.2"
parchment "^1.1.4"
quill-delta "^3.6.2"
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
version "2.1.0"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
......@@ -8280,6 +8321,14 @@ vue-loader@^15.7.2:
vue-hot-reload-api "^2.3.0"
vue-style-loader "^4.1.0"
vue-quill-editor@^3.0.6:
version "3.0.6"
resolved "https://registry.yarnpkg.com/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz#1f85646211d68a31a80a72cb7f45bb2f119bc8fb"
integrity sha512-g20oSZNWg8Hbu41Kinjd55e235qVWPLfg4NvsLW6d+DhgBTFbEuMpcWlUdrD6qT3+Noim6DRu18VLM9lVShXOQ==
dependencies:
object-assign "^4.1.1"
quill "^1.3.4"
vue-router@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.1.3.tgz#e6b14fabc0c0ee9fda0e2cbbda74b350e28e412b"
......@@ -8316,6 +8365,11 @@ vuex@^3.1.2:
resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.1.2.tgz#a2863f4005aa73f2587e55c3fadf3f01f69c7d4d"
integrity sha512-ha3jNLJqNhhrAemDXcmMJMKf1Zu4sybMPr9KxJIuOpVcsDQlTBYLLladav2U+g1AvdYDG5Gs0xBTb0M5pXXYFQ==
wangeditor@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/wangeditor/-/wangeditor-3.1.1.tgz#fbd3c1d4976923c9edebb85b29d30b35512ad039"
integrity sha1-+9PB1JdpI8nt67hbKdMLNVEq0Dk=
watchpack@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
......
......@@ -31,9 +31,9 @@ export default [
title: '任务管理',
icon: ''
}, */
{
path: '/goods/main',
title: '活动商品',
icon: ''
}
// {
// path: '/goods/main',
// title: '活动商品',
// icon: ''
// }
]
......@@ -121,7 +121,6 @@ export default {
rules: {
label: [
{ required: true, message: "请输入部门名称", trigger: "blur" },
{ validator: nameValidate, trigger: "blur" },
{ max: 50, message: "长度在50个字符以内", trigger: "blur" }
],
parentId: [{ required: true, message: "请选择上级部门", trigger: "change" }]
......
......@@ -125,7 +125,6 @@ export default {
rules: {
label: [
{ required: true, message: "请输入部门名称", trigger: "blur" },
{ validator: nameValidate, trigger: "blur" },
{ max: 50, message: "长度在50个字符以内", trigger: "blur" }
],
parentId: [{ required: true, message: "请选择上级部门", trigger: "change" }]
......
......@@ -183,7 +183,8 @@ export default {
counterId: 0,
title: "全部",
totalNumber: "",
nowNode: {}
nowNode: {},
flag: 0
};
},
components: {
......@@ -206,6 +207,7 @@ export default {
});
},
handleTreeClick(data) {
this.flag = ''
this.nowNode = data
this.groupName = data.label
this.groupId = data.id
......@@ -263,6 +265,7 @@ export default {
this.formData.keywords = ''
this.groupName = "全部"
this.type = this.sType = 1;
this.flag = 0
this.page.currentPage = ctPage
this.groupId = ''
let params = {
......@@ -279,6 +282,7 @@ export default {
this.formData.keywords = ''
this.page.currentPage = ctPage
this.groupName = "未分组"
this.flag = 1
this.type = this.sType = 2;
this.groupId = ''
let params = {
......@@ -329,7 +333,8 @@ export default {
}
let params = {
param: this.formData.keywords,
departmentId: this.groupId
departmentId: this.groupId,
flag: this.flag
}
search(params).then(res=>{
console.log(res,'搜索数据')
......@@ -350,7 +355,6 @@ export default {
id
}
changeRole(params).then(res => {
if(this.groupId) {
this.getGroupMember(1,1);
}else if(this.title === '未分组') {
......
......@@ -39,7 +39,7 @@ const frameIn = [
component: () => import('@/pages/in/contact'),
meta: {
auth: true,
title: '进件管理'
title: '通讯录管理'
}
},
// // Z-进件管理-通讯录管理
......@@ -113,15 +113,15 @@ const frameIn = [
}
},
// Z-活动商品-活动商品
{
path: '/goods/main',
name: 'goodsMain',
component: () => import('@/pages/goods/main'),
meta: {
auth: true,
title: '活动商品'
}
},
// {
// path: '/goods/main',
// name: 'goodsMain',
// component: () => import('@/pages/goods/main'),
// meta: {
// auth: true,
// title: '活动商品'
// }
// },
// // 演示页面
// {
// path: 'page1',
......
......@@ -55,7 +55,6 @@
</div>
</div>
<script>
alert(window.location.href)
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg)
......@@ -74,7 +73,6 @@
const showQRInfo = () => {
// let pageUri = `${nowUrl}&detailid=${voucherId}&actionid=${activeId}&unionid=${unionId}`;
// let storecode = "181"
alert(storecode)
let pageUri = `pages/user/register/register?storeCode=${storecode}`
let pageUrl = `http://139.155.48.151:8085/workWx/auth/oauth2/wxMiniQrCode?pageUri=${pageUri}`;
......
......@@ -74,26 +74,18 @@
},
methods: {
zReadyUserId() {
zlog(
"%c--->this.zcache.code =",
"color: orange;",
this.$route.query.code
);
if (this.$route.query.code === undefined){
this.zTestPreAuthCode()
} else {
this.zTestGetNowUrlInfo();
this.zTestGetUserInfoByOldToken();
this.zTestGetNowUrlInfo()
this.zTestGetUserInfoByOldToken()
}
},
// 测试-获取当前Url信息
zTestGetNowUrlInfo() {
this.zcache.nowUrl = JSON.stringify(this.$route.query);
this.zcache.code = String(this.$route.query.code);
zlog("%c--->zTestGetNowUrlInfo: ", "color: orange;", this.zcache.nowUrl);
this.zcache.nowUrl = JSON.stringify(this.$route.query)
this.zcache.code = String(this.$route.query.code)
zlog("%c--->zTestGetNowUrlInfo: ", "color: orange;", this.zcache.nowUrl)
},
zTestPreAuthCode() {
const basicInfo = {
......
......@@ -127,17 +127,19 @@ export default {
},
zReadyGetUserFromId() {
let postData = {
userId: this.zcache.userId
userName: this.zcache.userId
}
getUserInfoByUserId(postData)
.then(res => {
// alert(`--->userInfoFromId: res = ${JSON.stringify(res.data)}`);
// this.zcache.userInfo = String(res.data[0].departmentId);
// storeId 暂时写死
alert(res.data[0])
this.zcache.storeId = res.data[0]
// this.zcache.storeId = Number(res.data[0].stall);
this.zReadySetVoucherList();
if(res.data[0].oyStallCode == '') {
alert('您当前没有绑定店铺')
}else {
this.zcache.storeId = res.data[0].oyStallCode
// this.zcache.storeId = Number(res.data[0].stall);
this.zReadySetVoucherList()
}
})
.catch(err => {})
},
......@@ -149,14 +151,18 @@ export default {
mdid: this.zcache.storeId
}
getVoucherList(postData).then(res => {
this.zVoucherSet(res.result.coupons);
if(res.result.coupons.length == 0) {
alert('当前店铺暂无优惠券可发放')
}else {
this.zVoucherSet(res.result.coupons)
}
})
.catch(err => {
});
})
},
zReadyDelVoucherList() {
this.zVoucherDel();
this.zVoucherUrlDel();
this.zVoucherDel()
this.zVoucherUrlDel()
},
zVoucherPick(inActiveId, inVoucherId) {
......@@ -169,13 +175,9 @@ export default {
appCode: "0697",
action_id: Number(inActiveId),
coupon_id: Number(inVoucherId)
};
zlog("%c--->VoucherWxUrl: PD =", "background: red;", postData);
}
getVoucherWxUrl(postData).then(res => {
this.zVoucherUrlSet(res.result.link)
alert('获取列表成功')
});
},
......
......@@ -38,46 +38,38 @@ import { getUserInfoByUserId } from "@/api/sidebar/voucher";
},
methods:{
zReadyGetUserFromId() {
alert('获取店铺')
alert(this.$route.params.userId)
// let postData = {
// userId: this.$route.params.userId
// }
let userId = this.$route.params.userId
alert('请求')
getUserInfoByUserId({ userId }).then(res => {
alert('获取成功')
alert(res.data[0])
this.storeCode = res.data[0]
let userName = this.$route.params.userId
getUserInfoByUserId({ userName }).then(res => {
// alert('获取成功')
this.storeCode = res.data[0].oyStallMemberId
})
.catch(err => {
alert('获取店铺失败')
})
alert('what?')
},
sendMessage(){
alert('发消息')
let url = `http://oysales.oywanhao.com/register?storeCode=${this.storeCode}`
alert(url)
wx.invoke(
"sendChatMessage",
{
msgtype: "news", //消息类型,必填
news: {
link: url, //H5消息页面url 必填
title: "注册邀请", //H5消息标题
desc: "注册成为欧亚会员", //H5消息摘要
imgUrl: "" //H5消息封面图片URL
}
},
function(res) {
alert('进入发送')
// alert('sendChatMessage')
if (res.err_msg == "sendChatMessage:ok") {
} else if (res.err_msg != "sendChatMessage:ok") {
if(this.storeCode == '') {
alert('您当前没有绑定店铺')
}else {
let url = `http://oysales.oywanhao.com/register?storeCode=${this.storeCode}`
wx.invoke(
"sendChatMessage",
{
msgtype: "news", //消息类型,必填
news: {
link: url, //H5消息页面url 必填
title: "注册邀请", //H5消息标题
desc: "注册成为欧亚会员", //H5消息摘要
imgUrl: "" //H5消息封面图片URL
}
},
function(res) {
// alert('sendChatMessage')
if (res.err_msg == "sendChatMessage:ok") {
} else if (res.err_msg != "sendChatMessage:ok") {
}
}
}
);
)
}
},
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment