通告功能

This commit is contained in:
13405411873 2025-04-25 21:43:22 +08:00
parent c03efe220a
commit c76258b433
7 changed files with 192 additions and 129 deletions

View File

@ -1,69 +1,69 @@
{ {
"name" : "多点通告", "name": "多点通告",
"appid" : "__UNI__5491739", "appid": "__UNI__5491739",
"description" : "", "description": "",
"versionName" : "1.1.0", "versionName": "1.1.0",
"versionCode" : "100", "versionCode": "100",
"transformPx" : false, "transformPx": false,
"app-plus" : { "app-plus": {
"usingComponents" : true, "usingComponents": true,
"nvueCompiler" : "uni-app", "nvueCompiler": "uni-app",
"splashscreen" : { "splashscreen": {
"alwaysShowBeforeRender" : true, "alwaysShowBeforeRender": true,
"waiting" : true, "waiting": true,
"autoclose" : true, "autoclose": true,
"delay" : 0 "delay": 0
}, },
"modules" : {}, "modules": {},
"distribute" : { "distribute": {
"android" : { "android": {
"permissions" : [ "permissions": [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>", "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>", "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>", "<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>", "<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
] ]
}, },
"ios" : {}, "ios": {},
"sdkConfigs" : {} "sdkConfigs": {}
} }
}, },
"quickapp" : {}, "quickapp": {},
"mp-weixin" : { "mp-weixin": {
"optimization" : { "optimization": {
"subPackages" : true "subPackages": true
}, },
"appid" : "wxd96fda6510adb6d3", "appid": "wxd96fda6510adb6d3",
"setting" : { "setting": {
"urlCheck" : false, "urlCheck": false,
"es6" : false, "es6": false,
"minified" : true, "minified": true,
"postcss" : true "postcss": true
}, },
"usingComponents" : true "usingComponents": true
}, },
"vueVersion" : "2", "vueVersion": "2",
"h5" : { "h5": {
"template" : "static/index.html", "template": "static/index.html",
"devServer" : { "devServer": {
"port" : 9090, "port": 9090,
"https" : false "https": false
}, },
"title" : "RuoYi-App", "title": "RuoYi-App",
"router" : { "router": {
"mode" : "hash", "mode": "history",
"base" : "./" "base": ""
} }
} }
} }

View File

@ -2,7 +2,9 @@
"dependencies": { "dependencies": {
"cos-js-sdk-v5": "^1.8.7", "cos-js-sdk-v5": "^1.8.7",
"html2canvas": "^1.4.1", "html2canvas": "^1.4.1",
"rich-text-parser": "^1.0.2" "jweixin-module": "^1.6.0",
"rich-text-parser": "^1.0.2",
"weixin-js-sdk": "^1.6.5"
}, },
"devDependencies": { "devDependencies": {
"rich-text-parser": "^1.0.2" "rich-text-parser": "^1.0.2"

View File

@ -144,6 +144,15 @@
placeholder="最高" /> placeholder="最高" />
</view> </view>
</view> </view>
<view class="uni-form-item uni-column">
<view class="title">地区</view>
<view class="dl-drawer-item">
<uni-data-picker placeholder="请选择" popup-title="请选择地址" :localdata="dataTree"
v-model="queryParams.cityId" @change="onchange" @nodeclick="onnodeclick"
@popupopened="onpopupopened" @popupclosed="onpopupclosed">
</uni-data-picker>
</view>
</view>
<view style="display: flex;margin-top: 10rpx;"> <view style="display: flex;margin-top: 10rpx;">
<button class="mini-btn" type="default" size="mini" @click="reset()">重置</button> <button class="mini-btn" type="default" size="mini" @click="reset()">重置</button>
<button class="mini-btn" type="warn" size="mini" <button class="mini-btn" type="warn" size="mini"
@ -191,12 +200,17 @@
import { import {
changeUserType changeUserType
} from '@/utils/common.js' } from '@/utils/common.js'
import {
treeCity
} from '@/api/business/base.js'
export default { export default {
components: { components: {
noticeItem noticeItem
}, },
data() { data() {
return { return {
//
dataTree: [],
menus: ['全部', '最新', '平台结算', '急招', '品牌置换'], menus: ['全部', '最新', '平台结算', '急招', '品牌置换'],
menuIndex: 0, menuIndex: 0,
dataList: [], dataList: [],
@ -243,6 +257,7 @@
this.initData("dl_blogger_type", "bloggerTypeList") this.initData("dl_blogger_type", "bloggerTypeList")
this.getByCodeInfo() this.getByCodeInfo()
this.selectDataList() this.selectDataList()
this.initAddress()
// //
// this.checkRights() // this.checkRights()
}, },
@ -250,6 +265,25 @@
}, },
methods: { methods: {
/**初始化树结构*/
initAddress() {
treeCity().then(res => {
res.data.forEach(it => {
if (it.children) {
it.children.forEach(item => {
item.children = null
})
}
})
this.dataTree = res.data
}).catch((e) => {
uni.showToast({
icon: 'error',
duration: 2000,
title: e
});
})
},
/** /**
* 去发布 * 去发布
*/ */

View File

@ -45,6 +45,9 @@
hasRights hasRights
} from '@/utils/common.js' } from '@/utils/common.js'
import rightsCode from '@/utils/rightsCode' import rightsCode from '@/utils/rightsCode'
import {
getMemberDetail
} from '@/api/business/member.js'
export default { export default {
components: { components: {
tabBarVue, tabBarVue,
@ -124,7 +127,18 @@
async changeMenu(code) { async changeMenu(code) {
this.nowUserType = getUserType() this.nowUserType = getUserType()
if ("fabu" == code) { if ("fabu" == code) {
this.$tab.navigateTo('/pages/notice/public-notice') getMemberDetail().then(res => {
if (!res.data.identityType) {
uni.showToast({
title: '暂未通告主认证,请先认证',
icon: 'none',
duration: 1000
})
} else {
this.$tab.navigateTo('/pages/notice/public-notice')
}
})
} else { } else {
if (code == 'dingyue') { if (code == 'dingyue') {
if (!await this.checkIfHasRights(rightsCode.subscribeSelect)) { if (!await this.checkIfHasRights(rightsCode.subscribeSelect)) {

View File

@ -83,7 +83,7 @@
saveOrder, saveOrder,
getOrderList, getOrderList,
prepayment, prepayment,
getMemberCoupon getMemberCoupon
} from '@/api/business/member.js' } from '@/api/business/member.js'
import { import {
toast toast
@ -143,10 +143,10 @@
let that = this let that = this
getWebAccessTokenAndOpenid(result.code).then(res => { getWebAccessTokenAndOpenid(result.code).then(res => {
that.$store.dispatch('GzhLogin', res).then(() => { that.$store.dispatch('GzhLogin', res).then(() => {
that.initCoupon(); that.initCoupon();
that.initOrder() that.initOrder()
that.loginSuccess() that.loginSuccess()
that.initMyCoupon() that.initMyCoupon()
}).catch((e) => { }).catch((e) => {
uni.showToast({ uni.showToast({
icon: 'error', icon: 'error',
@ -160,17 +160,17 @@
} }
} }
}, },
onShow(){ onShow() {
if (getToken()){ if (getToken()) {
this.initMyCoupon() this.initMyCoupon()
} }
}, },
methods: { methods: {
initMyCoupon(){ initMyCoupon() {
getMemberCoupon().then(res=>{ getMemberCoupon().then(res => {
this.coupon = res.data this.coupon = res.data
}) })
}, },
openVip() { openVip() {
// //
wx.openOfficialAccountProfile({ wx.openOfficialAccountProfile({
@ -194,12 +194,12 @@
/*#endif*/ /*#endif*/
/*#ifdef H5*/ /*#ifdef H5*/
// H5 // H5
if (!getToken()) {
// //
getCodeUrl("01", "pages/mine/coupon/my-coupon").then(res => { getCodeUrl("01", "pages/mine/coupon/my-coupon").then(res => {
window.location.href = res.codeUrl; window.location.href = res.codeUrl;
}) })
}
/*#endif*/ /*#endif*/
/*#ifdef MP-WEIXIN*/ /*#ifdef MP-WEIXIN*/
// //

View File

@ -185,34 +185,24 @@
let userTypeTemp = options.userType let userTypeTemp = options.userType
this.initData(userTypeTemp); this.initData(userTypeTemp);
//urlsearch //urlsearch
if (location.search) { if (options.code) {
let search = location.search.slice(1); userTypeTemp = options.state
let arr = search.split("&"); let that = this
let result = {}; getWebAccessTokenAndOpenid(options.code).then(res => {
arr.forEach(function(item) { that.$store.dispatch('GzhLogin', res).then(() => {
let itemArr = item.split('='); that.initData(userTypeTemp);
result[itemArr[0]] = itemArr[1]; that.loginSuccess()
}) }).catch((e) => {
if (result.code) { uni.showToast({
userTypeTemp = result.state icon: 'error',
let that = this duration: 2000,
getWebAccessTokenAndOpenid(result.code).then(res => { title: e
that.$store.dispatch('GzhLogin', res).then(() => { });
that.initData(userTypeTemp);
that.loginSuccess()
}).catch((e) => {
uni.showToast({
icon: 'error',
duration: 2000,
title: e
});
})
}) })
} else { })
this.toLogin(userTypeTemp) } else {
} this.toLogin(userTypeTemp)
} }
}, },
methods: { methods: {
openVip() { openVip() {
@ -238,12 +228,12 @@
/*#endif*/ /*#endif*/
/*#ifdef H5*/ /*#ifdef H5*/
// H5 // H5
if (!getToken()) {
// //
getCodeUrl(userType, "pages/mine/member/member-card").then(res => { getCodeUrl(userType, "pages/mine/member/member-card").then(res => {
window.location.href = res.codeUrl; window.location.href = res.codeUrl;
}) })
}
/*#endif*/ /*#endif*/
/*#ifdef MP-WEIXIN*/ /*#ifdef MP-WEIXIN*/
// //

View File

@ -155,7 +155,7 @@
地区要求 地区要求
</view> </view>
<view class="item-value"> <view class="item-value">
<uni-data-picker placeholder="请选择" popup-title="请选择收件地址" :localdata="dataTree" <uni-data-picker placeholder="请选择" popup-title="请选择地址" :localdata="dataTree"
v-model="dataObj.cityId" @change="onchange" @nodeclick="onnodeclick" v-model="dataObj.cityId" @change="onchange" @nodeclick="onnodeclick"
@popupopened="onpopupopened" @popupclosed="onpopupclosed"> @popupopened="onpopupopened" @popupclosed="onpopupclosed">
</uni-data-picker> </uni-data-picker>
@ -257,9 +257,7 @@
<script> <script>
import navigationBarVue from '@/components/navigation/navigationBar.vue'; import navigationBarVue from '@/components/navigation/navigationBar.vue';
import {
toast
} from '@/utils/common.js'
import upload from '@/utils/upload' import upload from '@/utils/upload'
import { import {
uniListByParentCode uniListByParentCode
@ -273,6 +271,12 @@
getNoticeDetail getNoticeDetail
} from '@/api/business/notice'; } from '@/api/business/notice';
import fuckTextarea from '@/components/fuck-textarea/fuck-textarea.vue' import fuckTextarea from '@/components/fuck-textarea/fuck-textarea.vue'
import {
toast,
hasRights
} from '@/utils/common.js'
import constant from '@/utils/constant';
import rightsCode from '@/utils/rightsCode'
export default { export default {
components: { components: {
navigationBarVue, navigationBarVue,
@ -369,6 +373,22 @@
} }
}, },
methods: { methods: {
/**
* 鉴权通用方法
* @param {Object} rigthsCode
*/
async checkIfHasRights() {
let res = await hasRights(rightsCode.reportInfoCollect)
if (!res) {
uni.showToast({
title: '如有需要请开通通告主卡',
icon: 'none',
duration: 1000
})
return false
}
return true
},
getSameNotice(sameId) { getSameNotice(sameId) {
getNoticeDetail({ getNoticeDetail({
noticeId: sameId noticeId: sameId
@ -610,7 +630,11 @@
/** /**
* 添加字段 * 添加字段
*/ */
addNewField() { async addNewField() {
//
if (!await this.checkIfHasRights(rightsCode.reportInfoCollect)) {
return
}
this.$refs.inputDialogCus.open() this.$refs.inputDialogCus.open()
}, },
// //
@ -1081,5 +1105,4 @@
.checklist-box { .checklist-box {
margin-right: 0 !important; margin-right: 0 !important;
} }
</style> </style>