7 Commits

Author SHA1 Message Date
aixianling
50e56a9812 更换构建工具rsbuild 2024-10-23 17:06:18 +08:00
aixianling
b64b102682 Merge remote-tracking branch 'origin/build' into devops 2024-10-18 09:31:36 +08:00
liuye
3f41df22a9 店铺 2024-10-17 14:18:33 +08:00
liuye
f9123942ca AppGridReview 2024-10-11 17:47:02 +08:00
liuye
b67e30ce25 地址 2024-10-11 16:52:20 +08:00
liuye
c43a8992fd 网格动态 2024-10-11 11:23:01 +08:00
liuye
705a252618 网格动态 2024-10-11 11:10:28 +08:00
7 changed files with 126 additions and 35 deletions

View File

@@ -4,11 +4,11 @@
"private": false,
"author": "kubbo",
"scripts": {
"dev": "vue-cli-service serve examples/main.js",
"build": "vue-cli-service build",
"oms": "vue-cli-service serve examples/main.js --mode oms",
"dev": "rsbuild dev",
"build": "rsbuild build",
"oms": "rsbuild dev --mode oms",
"sync": "node bin/appsSync.js",
"preview": "node bin/build.js && vue-cli-service serve",
"preview": "node bin/build.js && rsbuild dev",
"predev": "node bin/scanApps.js",
"preoms": "dotenv -e .env.oms node bin/scanApps.js"
},
@@ -41,16 +41,18 @@
"@babel/plugin-proposal-logical-assignment-operators": "^7.10.4",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4",
"@babel/plugin-proposal-optional-chaining": "^7.10.4",
"@vue/cli-plugin-babel": "^3.6.0",
"@vue/cli-plugin-eslint": "^3.6.0",
"@vue/cli-service": "^3.6.0",
"@rsbuild/core": "^1.0.17",
"@rsbuild/plugin-babel": "^1.0.2",
"@rsbuild/plugin-sass": "^1.0.4",
"@rsbuild/plugin-vue2": "^1.0.1",
"autoprefixer": "^10.4.20",
"axios": "^0.19.2",
"babel-eslint": "^10.1.0",
"core-js": "^2.6.11",
"dotenv-cli": "^7.4.2",
"element-ui": "^2.15.9",
"eslint": "^5.16.0",
"eslint-plugin-vue": "^5.0.0",
"fs-extra": "^11.2.0",
"image-webpack-loader": "^6.0.0",
"inquirer": "^6.5.2",
"mockjs": "^1.1.0",

View File

@@ -1,5 +1,5 @@
<template>
<div class="AppFormReview">
<div class="AppGridReview">
<keep-alive :include="['List']">
<component ref="component" :is="component" :permissions="permissions " @change="onChange" :params="params" :instance="instance" :dict="dict"></component>
</keep-alive>
@@ -11,7 +11,7 @@
import Detail from './components/Detail'
export default {
name: 'AppFormReview',
name: 'AppGridReview',
label: '网格动态',
props: {
@@ -56,7 +56,7 @@
</script>
<style lang="scss">
.AppFormReview {
.AppGridReview {
height: 100%;
background: #F3F6F9;
overflow: auto;

View File

@@ -14,11 +14,12 @@
<template #content>
<ai-wrapper label-width="120px">
<ai-info-item label="内容" isLine :value="info.content"></ai-info-item>
<ai-info-item label="类型" isLine >{{dict.getLabel("wyGirdNewsType", info.type)}}</ai-info-item>
<ai-info-item label="所属网格" isLine :value="info.girdName"></ai-info-item>
<ai-info-item label="网格员姓名" isLine :value="info.name"></ai-info-item>
<ai-info-item label="状态" isLine >{{dict.getLabel("auditStatus", info.status)}}</ai-info-item>
<ai-info-item label="发布时间" isLine :value="info.createTime"></ai-info-item>
<ai-info-item label="类型" >{{dict.getLabel("wyGirdNewsType", info.type)}}</ai-info-item>
<ai-info-item label="地址" >{{info.address}}</ai-info-item>
<ai-info-item label="网格员姓名" :value="info.name"></ai-info-item>
<ai-info-item label="状态" >{{dict.getLabel("auditStatus", info.status)}}</ai-info-item>
<ai-info-item label="发布时间" :value="info.createTime"></ai-info-item>
<ai-info-item label="图片" isLine>
<div class="files">
<div class="file-item" v-for="(item, index) in info.files" :key="index">
@@ -28,6 +29,15 @@
</ai-info-item>
</ai-wrapper>
</template>
</ai-card>
<ai-card title="审核信息" v-if="info.status != 0">
<template #content>
<ai-wrapper label-width="120px">
<ai-info-item label="审批意见" isLine :value="info.examineOpinion"></ai-info-item>
<ai-info-item label="审批人" :value="info.examineUserName"></ai-info-item>
<ai-info-item label="审批时间" :value="info.examineTime"></ai-info-item>
</ai-wrapper>
</template>
</ai-card>
<ai-dialog
:visible.sync="isShowExamine"
@@ -42,10 +52,10 @@
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="处理意见" prop="content" style="width: 100%;" :rules="[{ required: true, message: '请输入处理意见' }]">
<el-input type="textarea" :rows="5" :maxlength="500" v-model="form.content" clearable placeholder="请输入处理意见" show-word-limit></el-input>
<el-form-item label="审批意见" prop="opinion" style="width: 100%;" >
<el-input type="textarea" :rows="5" :maxlength="500" v-model="form.opinion" clearable placeholder="请输入审批意见" show-word-limit></el-input>
</el-form-item>
<el-form-item label="图片" prop="files" style="width: 100%;">
<!-- <el-form-item label="图片" prop="files" style="width: 100%;">
<ai-uploader
:instance="instance"
isShowTip
@@ -75,7 +85,7 @@
info: {},
id: '',
isShowExamine: false,
form: {status: ''}
form: {status: '', opinion: ''}
}
},
@@ -101,7 +111,7 @@
handleEvent() {
this.$refs.form.validate(v => {
if (v) {
this.instance.post(`/app/appgirdnews/examine?id=${this.params.id}&pass=${this.form.status}`).then(res => {
this.instance.post(`/app/appgirdnews/examine?id=${this.params.id}&pass=${this.form.status}&opinion=${this.form.opinion}`).then(res => {
if (res?.code == 0) {
this.isShowExamine = false
this.getDetail()
@@ -129,8 +139,8 @@
align-items: center;
flex-wrap: wrap;
.file-item {
width: 240px;
height: 240px;
width: 150px;
height: 150px;
margin: 0 20px 20px 0;
img, video {

View File

@@ -82,8 +82,9 @@
total: 0,
colConfigs: [
{ prop: 'content', label: '内容', align: 'left', width: '200px' },
{ prop: 'type', align: 'center', label: '类型', dict:"wyGirdNewsType"},
{ prop: 'girdName', label: '所属网格', align: 'center' },
{ prop: 'type', align: 'center', label: '类型', dict:"wyGirdNewsType"},
{ prop: 'address', label: '地址', align: 'center' },
{ prop: 'name', label: '网格员姓名', align: 'center' },
{ prop: 'status', align: 'center', label: '状态', dict:"auditStatus"},
{ prop: 'createTime', label: '发布时间', align: 'center' }

View File

@@ -11,6 +11,12 @@
<el-form-item style="width: 100%" label="店铺名称" prop="title" :rules="[{required: true, message: '请输入店铺名称', trigger: 'blur'}]">
<el-input type="input" size="small" v-model="form.title" clearable placeholder="请输入店铺名称" :maxlength="50" show-word-limit></el-input>
</el-form-item>
<el-form-item style="width: 50%" label="店家" prop="shopkeeper">
<el-input type="input" size="small" v-model="form.shopkeeper" clearable placeholder="请输入店家名字" :maxlength="10" show-word-limit></el-input>
</el-form-item>
<el-form-item style="width: 50%" label="联系电话" prop="phone" :rules="[{required: true, message: '请输入联系电话', trigger: 'blur'}]">
<el-input type="number" size="small" v-model="form.phone" clearable placeholder="请输入联系电话" :maxlength="11" show-word-limit></el-input>
</el-form-item>
<el-form-item style="width: 100%" label="店铺类型" prop="type" :rules="[{required: true, message: '请选择店铺类型', trigger: 'change'}]">
<ai-select
v-model="form.type"
@@ -227,6 +233,8 @@
isShow: false,
form: {
title: '',
shopkeeper: '',
phone: '',
type: '',
serviceType: '0',
visibleNames: '',

View File

@@ -4,18 +4,18 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico"/>
<link rel="stylesheet" href="<%= BASE_URL %>cdn/viewerjs/1.11.6/viewer.css"/>
<link rel="stylesheet" href="<%= BASE_URL %>cdn/avue/2.10.18/index.css">
<link rel="stylesheet" href="<%= BASE_URL %>cdn/jsoneditor/10.0.2/jsoneditor.min.css">
<link rel="stylesheet" href="<%= BASE_URL %>cdn/highlight/atom-one-dark.min.css">
<script src="<%= BASE_URL %>cdn/jsoneditor/10.0.2/jsoneditor.min.js" charset="utf-8"></script>
<script src="<%= BASE_URL %>cdn/viewerjs/1.11.6/viewer.min.js" charset="utf-8"></script>
<script src="<%= BASE_URL %>cdn/avue/2.10.18/avue.min.js" charset="utf-8"></script>
<script src="<%= BASE_URL %>cdn/echarts/echarts@5.5.0.min.js" charset="utf-8"></script>
<script src="<%= BASE_URL %>cdn/echarts/echarts-gl@2.0.9.min.js" charset="utf-8"></script>
<script src="<%= BASE_URL %>cdn/markdown-it/markdown-it.min.js" charset="utf-8"></script>
<script src="<%= BASE_URL %>cdn/highlight/highlight.min.js" charset="utf-8"></script>
<link rel="icon" href="<%= assetPrefix %>favicon.ico"/>
<link rel="stylesheet" href="<%= assetPrefix %>cdn/viewerjs/1.11.6/viewer.css"/>
<link rel="stylesheet" href="<%= assetPrefix %>cdn/avue/2.10.18/index.css">
<link rel="stylesheet" href="<%= assetPrefix %>cdn/jsoneditor/10.0.2/jsoneditor.min.css">
<link rel="stylesheet" href="<%= assetPrefix %>cdn/highlight/atom-one-dark.min.css">
<script src="<%= assetPrefix %>cdn/jsoneditor/10.0.2/jsoneditor.min.js" charset="utf-8"></script>
<script src="<%= assetPrefix %>cdn/viewerjs/1.11.6/viewer.min.js" charset="utf-8"></script>
<script src="<%= assetPrefix %>cdn/avue/2.10.18/avue.min.js" charset="utf-8"></script>
<script src="<%= assetPrefix %>cdn/echarts/echarts@5.5.0.min.js" charset="utf-8"></script>
<script src="<%= assetPrefix %>cdn/echarts/echarts-gl@2.0.9.min.js" charset="utf-8"></script>
<script src="<%= assetPrefix %>cdn/markdown-it/markdown-it.min.js" charset="utf-8"></script>
<script src="<%= assetPrefix %>cdn/highlight/highlight.min.js" charset="utf-8"></script>
<title>web端应用库-展示页面</title>
<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js" referrerpolicy="origin"></script>
<script src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js" referrerpolicy="origin"></script>

70
rsbuild.config.js Normal file
View File

@@ -0,0 +1,70 @@
import {defineConfig} from '@rsbuild/core';
import {pluginVue2} from '@rsbuild/plugin-vue2';
import {pluginSass} from '@rsbuild/plugin-sass';
import {pluginBabel} from '@rsbuild/plugin-babel';
import path from "path";
const proxy = process.env.VUE_APP_API || "http://192.168.1.87:9000"
const port = process.env.VUE_APP_PORT || 7000
const entry = process.env.NODE_ENV == "production" ? "./src/main.js" : "./examples/main.js"
console.log("当前模式:", process.env.NODE_ENV)
console.log("当前后台服务地址:", proxy, "\n")
export default defineConfig({
plugins: [pluginVue2(),
pluginSass({
sassLoaderOptions: {
additionalData: `@import "~dui/lib/styles/vars.scss";`
}
}),
// pluginBabel({
// include: [
// path.resolve(__dirname, 'packages'),
// path.resolve(__dirname, 'project'),
// path.resolve(__dirname, 'examples'),
// path.resolve(__dirname, 'src'),
// path.resolve(__dirname, 'ui/packages'),
// path.resolve(__dirname, 'ui/dv'),
// path.resolve(__dirname, 'ui/lib/js'),
// ]
// })
],
source: {
// 指定入口文件
entry: {
index: entry,
},
alias: {
'@packages': path.resolve(__dirname, 'packages'),
'@project': path.resolve(__dirname, 'project'),
'dui': path.resolve(__dirname, 'ui'),
}
},
html: {
template: './public/index.html',
},
server: {
host: '0.0.0.0', //主机地址
port, //端口号
open: true,
proxy: {
//设置代理,可解决跨
'/lan': {
target: proxy,
changeOrigin: true,
pathRewrite: {
//地址重写
'^/lan': '/'
}
},
'/sse': {
target: "http://192.168.1.87:10409/v1",
changeOrigin: true,
pathRewrite: {
//地址重写
'^/sse': '/'
}
},
},
disableHostCheck: true,
}
});