调整工程目录
							
								
								
									
										52
									
								
								bin/serve.js
									
									
									
									
									
								
							
							
						
						| @@ -81,8 +81,21 @@ const start = () => { | |||||||
|       } |       } | ||||||
|       json.pages.push(app) |       json.pages.push(app) | ||||||
|     } |     } | ||||||
|   }).then(() => { |   }).then(() => findApp('src/apps', file => { | ||||||
|     return findApp('src/apps', file => { |     if (/.+\\App[^\\]+\\[^\\]+\.vue/g.test(file)) { | ||||||
|  |       let app = { | ||||||
|  |         name: file.replace(/.*\\([^\\]+).vue/g, '$1'), | ||||||
|  |         path: file.replace(/^src\\(.*).vue/g, '$1').replace(/\\/g, '/') | ||||||
|  |       } | ||||||
|  |       let vue = fs.readFileSync(file).toString() | ||||||
|  |       if (/appName/.test(vue)) { | ||||||
|  |         let appName = vue.replace(/[\s\S]*(appName:.+),[\s\S]*/gm, '$1'), | ||||||
|  |             title = appName.replace(/(appName:|["'])/g, '') | ||||||
|  |         app.style = {navigationBarTitleText: title} | ||||||
|  |       } | ||||||
|  |       json.pages.push(app) | ||||||
|  |     } | ||||||
|  |   })).then(() =>  findApp('src/saas', file => { | ||||||
|       if (/.+\\App[^\\]+\\[^\\]+\.vue/g.test(file)) { |       if (/.+\\App[^\\]+\\[^\\]+\.vue/g.test(file)) { | ||||||
|         let app = { |         let app = { | ||||||
|           name: file.replace(/.*\\([^\\]+).vue/g, '$1'), |           name: file.replace(/.*\\([^\\]+).vue/g, '$1'), | ||||||
| @@ -96,26 +109,23 @@ const start = () => { | |||||||
|         } |         } | ||||||
|         json.pages.push(app) |         json.pages.push(app) | ||||||
|       } |       } | ||||||
|     }).then(() => { |   })).then(() =>  findApp('src/project', file => { | ||||||
|       return findApp('src/saas', file => { |       if (/.+\\App[^\\]+\\[^\\]+\.vue/g.test(file)) { | ||||||
|         if (/.+\\App[^\\]+\\[^\\]+\.vue/g.test(file)) { |         let app = { | ||||||
|           let app = { |           name: file.replace(/.*\\([^\\]+).vue/g, '$1'), | ||||||
|             name: file.replace(/.*\\([^\\]+).vue/g, '$1'), |           path: file.replace(/^src\\(.*).vue/g, '$1').replace(/\\/g, '/') | ||||||
|             path: file.replace(/^src\\(.*).vue/g, '$1').replace(/\\/g, '/') |  | ||||||
|           } |  | ||||||
|           let vue = fs.readFileSync(file).toString() |  | ||||||
|           if (/appName/.test(vue)) { |  | ||||||
|             let appName = vue.replace(/[\s\S]*(appName:.+),[\s\S]*/gm, '$1'), |  | ||||||
|                 title = appName.replace(/(appName:|["'])/g, '') |  | ||||||
|             app.style = {navigationBarTitleText: title} |  | ||||||
|           } |  | ||||||
|           json.pages.push(app) |  | ||||||
|         } |         } | ||||||
|       }) |         let vue = fs.readFileSync(file).toString() | ||||||
|     }).then(() => { |         if (/appName/.test(vue)) { | ||||||
|       fsExtra.outputJson('src/pages.json', json, () => { |           let appName = vue.replace(/[\s\S]*(appName:.+),[\s\S]*/gm, '$1'), | ||||||
|         chalkTag.done('生成pages.json') |               title = appName.replace(/(appName:|["'])/g, '') | ||||||
|       }) |           app.style = {navigationBarTitleText: title} | ||||||
|  |         } | ||||||
|  |         json.pages.push(app) | ||||||
|  |       } | ||||||
|  |   })).then(() => { | ||||||
|  |     fsExtra.outputJson('src/pages.json', json, () => { | ||||||
|  |       chalkTag.done('生成pages.json') | ||||||
|     }) |     }) | ||||||
|   }) |   }) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ | |||||||
|     "src/saas" |     "src/saas" | ||||||
|   ], |   ], | ||||||
|   "workspaces": [ |   "workspaces": [ | ||||||
|     "project/*" |     "src/project/*" | ||||||
|   ], |   ], | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@amap/amap-jsapi-loader": "^1.0.1", |     "@amap/amap-jsapi-loader": "^1.0.1", | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ | |||||||
|     </u-radio-group> |     </u-radio-group> | ||||||
|     <input class="codeText" v-model="search" placeholder="搜索要查找的应用"/> |     <input class="codeText" v-model="search" placeholder="搜索要查找的应用"/> | ||||||
|     <div flex class="appsPane wrap"> |     <div flex class="appsPane wrap"> | ||||||
|       <b v-for="app in appsList" :key="app.key" @tap="handleGotoApp(app)">{{ app.name }}</b> |       <b v-for="app in appsList" :key="app.path" @tap="handleGotoApp(app)">{{ app.name }}</b> | ||||||
|     </div> |     </div> | ||||||
|   </section> |   </section> | ||||||
| </template> | </template> | ||||||
| @@ -28,8 +28,9 @@ export default { | |||||||
|   computed: { |   computed: { | ||||||
|     ...mapState(['token', 'openUser', 'user']), |     ...mapState(['token', 'openUser', 'user']), | ||||||
|     appsList() { |     appsList() { | ||||||
|       let {search} = this |       let {search, currentLib} = this | ||||||
|       return this.apps?.filter(e => !!search ? e.name.indexOf(search) > -1 : true) || [] |       return this.apps.filter(e => (currentLib == "apps" && e.path.indexOf("project")) || e.path.indexOf(currentLib) > -1) | ||||||
|  |       .filter(e => !!search ? e.name.indexOf(search) > -1 : true) || [] | ||||||
|     }, |     }, | ||||||
|     currentApp() { |     currentApp() { | ||||||
|       return this.apps.find(e => e.key == this.$route.query.app) || {} |       return this.apps.find(e => e.key == this.$route.query.app) || {} | ||||||
| @@ -51,15 +52,15 @@ export default { | |||||||
|     ...mapMutations(['logout']), |     ...mapMutations(['logout']), | ||||||
|     ...mapActions(['agentSign']), |     ...mapActions(['agentSign']), | ||||||
|     handleGotoApp(app) { |     handleGotoApp(app) { | ||||||
|       uni.navigateTo({url: `/${this.currentLib}${app.path}`}) |       console.log(app) | ||||||
|  |       uni.navigateTo({url: `${app.path}`}) | ||||||
|     }, |     }, | ||||||
|     handleLogin() { |     handleLogin() { | ||||||
|       uni.navigateTo({url: "./login"}) |       uni.navigateTo({url: "./login"}) | ||||||
|     }, |     }, | ||||||
|     getApps() { |     getApps() { | ||||||
|       this.apps = [] |       this.apps = [] | ||||||
|       let applications = this.currentLib == "apps" ? require.context('../apps', true, /\.(\/.+)\/App[^\/]+\.vue$/) : |       let applications = require.context('../', true, /\.(\/.+)\/App[^\/]+\.vue$/) | ||||||
|           this.currentLib == "saas" ? require.context('../saas', true, /\.(\/.+)\/App[^\/]+\.vue$/) : null |  | ||||||
|       applications.keys().map(path => { |       applications.keys().map(path => { | ||||||
|         if (applications(path).default) { |         if (applications(path).default) { | ||||||
|           let {name: key, appName: name} = applications(path).default |           let {name: key, appName: name} = applications(path).default | ||||||
|   | |||||||
| @@ -17,7 +17,9 @@ | |||||||
|         <u-row> |         <u-row> | ||||||
|           <span>紧急程度:</span> |           <span>紧急程度:</span> | ||||||
|           <span |           <span | ||||||
|               :style="{color:$dict.getColor('documentEmergencyLevel',detail.emergencyLevel)}">{{ $dict.getLabel("documentEmergencyLevel", detail.emergencyLevel) }}</span> |               :style="{color:$dict.getColor('documentEmergencyLevel',detail.emergencyLevel)}">{{ | ||||||
|  |               $dict.getLabel("documentEmergencyLevel", detail.emergencyLevel) | ||||||
|  |             }}</span> | ||||||
|         </u-row> |         </u-row> | ||||||
|         <u-gap height="8"></u-gap> |         <u-gap height="8"></u-gap> | ||||||
|         <u-row> |         <u-row> | ||||||
| @@ -54,7 +56,7 @@ | |||||||
|         </div> |         </div> | ||||||
|       </div> |       </div> | ||||||
|       <div class="card"> |       <div class="card"> | ||||||
|         <div class="label" style="96px;">{{ detail.readType == 0 ? "流转信息" : "传阅情况" }} |         <div class="label">{{ detail.readType == 0 ? "流转信息" : "传阅情况" }} | ||||||
|           <em>({{ $dict.getLabel("documentStatus", detail.status) }})</em></div> |           <em>({{ $dict.getLabel("documentStatus", detail.status) }})</em></div> | ||||||
|         <div class="progress"> |         <div class="progress"> | ||||||
|           <div class="item" v-for="(item,index) in detail.flowUsers" :key="index"> |           <div class="item" v-for="(item,index) in detail.flowUsers" :key="index"> | ||||||
| @@ -98,13 +100,10 @@ | |||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script> | <script> | ||||||
| import AiBack from "../../../components/AiBack"; |  | ||||||
| import AiSelectEnterprise from "../../../components/AiSelectEnterprise"; |  | ||||||
| import {mapActions} from "vuex"; | import {mapActions} from "vuex"; | ||||||
| 
 | 
 | ||||||
| export default { | export default { | ||||||
|   name: "detail", |   name: "detail", | ||||||
|   components: {AiBack, AiSelectEnterprise}, |  | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       id: null, |       id: null, | ||||||
| Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB | 
| Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB | 
| Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB | 
| Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB | 
| Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB | 
| Before Width: | Height: | Size: 802 B After Width: | Height: | Size: 802 B | 
| Before Width: | Height: | Size: 622 B After Width: | Height: | Size: 622 B | 
| @@ -106,7 +106,7 @@ export default { | |||||||
|     margin: -80px 32px 0 32px; |     margin: -80px 32px 0 32px; | ||||||
|     padding: 38px 30px 78px 28px; |     padding: 38px 30px 78px 28px; | ||||||
|     background: #ffffff; |     background: #ffffff; | ||||||
|     box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.02); |     box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.02); | ||||||
|     border-radius: 16px; |     border-radius: 16px; | ||||||
|     z-index: 999; |     z-index: 999; | ||||||
|     .hint { |     .hint { | ||||||
| @@ -131,7 +131,7 @@ export default { | |||||||
|     } |     } | ||||||
|     .card { |     .card { | ||||||
|       display: flex; |       display: flex; | ||||||
|       box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.08); |       box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.08); | ||||||
|       border-radius: 16px; |       border-radius: 16px; | ||||||
|       padding: 48px 32px; |       padding: 48px 32px; | ||||||
|       margin-bottom: 32px; |       margin-bottom: 32px; | ||||||
| @@ -111,7 +111,7 @@ export default { | |||||||
|   height: 100%; |   height: 100%; | ||||||
|   .card { |   .card { | ||||||
|     display: flex; |     display: flex; | ||||||
|     box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.08); |     box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.08); | ||||||
|     border-radius: 16px; |     border-radius: 16px; | ||||||
|     padding: 48px 32px; |     padding: 48px 32px; | ||||||
|     margin-bottom: 32px; |     margin-bottom: 32px; | ||||||
| @@ -205,6 +205,6 @@ export default { | |||||||
|   ::v-deep .content{ |   ::v-deep .content{ | ||||||
|     padding: 0; |     padding: 0; | ||||||
|   } |   } | ||||||
|    | 
 | ||||||
| } | } | ||||||
| </style> | </style> | ||||||
| Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB | 
| Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB | 
| Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB | 
| Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB | 
| @@ -25,7 +25,7 @@ | |||||||
|       <u-index-list :scrollTop="scrollTop" :index-list="indexList"> |       <u-index-list :scrollTop="scrollTop" :index-list="indexList"> | ||||||
|         <div v-for="(letter, index) in indexList" :key="index"> |         <div v-for="(letter, index) in indexList" :key="index"> | ||||||
|           <u-index-anchor :index="letter"/> |           <u-index-anchor :index="letter"/> | ||||||
|           <div class="item" v-for="(item, index) in list.filter(e=>e.nameInitials==letter)"> |           <div class="item" v-for="(item, index) in list.filter(e=>e.nameInitials==letter)" :key="index"> | ||||||
|             <div class="title">{{item.label}}</div> |             <div class="title">{{item.label}}</div> | ||||||
|             <div class="phone-list"> |             <div class="phone-list"> | ||||||
|               <div class="item-info"> |               <div class="item-info"> | ||||||
| @@ -155,7 +155,7 @@ export default { | |||||||
|         width: 680px; |         width: 680px; | ||||||
|         padding: 32px 48px; |         padding: 32px 48px; | ||||||
|         box-sizing: border-box; |         box-sizing: border-box; | ||||||
|         box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.02); |         box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.02); | ||||||
|         p{ |         p{ | ||||||
|           font-size: 32px; |           font-size: 32px; | ||||||
|           font-family: PingFangSC-Medium, PingFang SC; |           font-family: PingFangSC-Medium, PingFang SC; | ||||||
| @@ -165,7 +165,6 @@ export default { | |||||||
|           word-break: break-all; |           word-break: break-all; | ||||||
|           margin-bottom: 8px; |           margin-bottom: 8px; | ||||||
|           width: 100%; |           width: 100%; | ||||||
|           word-break: break-all; |  | ||||||
|         } |         } | ||||||
|         .phone{ |         .phone{ | ||||||
|           font-size: 26px; |           font-size: 26px; | ||||||
| @@ -189,7 +188,7 @@ export default { | |||||||
|     height: 112px; |     height: 112px; | ||||||
|     line-height: 112px; |     line-height: 112px; | ||||||
|     background: #3975C6; |     background: #3975C6; | ||||||
|     box-shadow: 0px 1px 0px 0px #EEEEEE; |     box-shadow: 0 1px 0 0 #EEEEEE; | ||||||
|     position: fixed; |     position: fixed; | ||||||
|     bottom: 0; |     bottom: 0; | ||||||
|     left: 0; |     left: 0; | ||||||
| @@ -209,7 +208,7 @@ export default { | |||||||
|     position: absolute; |     position: absolute; | ||||||
|     top: 60px; |     top: 60px; | ||||||
|     right: 64px; |     right: 64px; | ||||||
|   }  |   } | ||||||
|   .currentLeft-top { |   .currentLeft-top { | ||||||
|     display: flex; |     display: flex; | ||||||
|     align-items: center; |     align-items: center; | ||||||
| @@ -229,4 +228,4 @@ export default { | |||||||
|     margin-bottom: 0; |     margin-bottom: 0; | ||||||
|   } |   } | ||||||
| } | } | ||||||
| </style> | </style> | ||||||
| Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB | 
| Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB | 
| Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.2 KiB | 
| @@ -4,7 +4,7 @@ | |||||||
|       <u-index-list :scrollTop="scrollTop" :index-list="indexList"> |       <u-index-list :scrollTop="scrollTop" :index-list="indexList"> | ||||||
|         <div v-for="(letter, index) in indexList" :key="index"> |         <div v-for="(letter, index) in indexList" :key="index"> | ||||||
|           <u-index-anchor :index="letter"/> |           <u-index-anchor :index="letter"/> | ||||||
|           <div class="item" v-for="(item, index) in list.filter(e=>e.nameInitials==letter)"> |           <div class="item" v-for="(item, index) in list.filter(e=>e.nameInitials==letter)" :key="index"> | ||||||
|             <div class="title">{{item.label}}</div> |             <div class="title">{{item.label}}</div> | ||||||
|             <div class="phone-list"> |             <div class="phone-list"> | ||||||
|               <div class="item-info"> |               <div class="item-info"> | ||||||
| @@ -103,7 +103,7 @@ export default { | |||||||
|         width: 680px; |         width: 680px; | ||||||
|         padding: 32px 48px; |         padding: 32px 48px; | ||||||
|         box-sizing: border-box; |         box-sizing: border-box; | ||||||
|         box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.02); |         box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.02); | ||||||
|         p{ |         p{ | ||||||
|           font-size: 32px; |           font-size: 32px; | ||||||
|           font-family: PingFangSC-Medium, PingFang SC; |           font-family: PingFangSC-Medium, PingFang SC; | ||||||
| @@ -113,7 +113,6 @@ export default { | |||||||
|           word-break: break-all; |           word-break: break-all; | ||||||
|           margin-bottom: 8px; |           margin-bottom: 8px; | ||||||
|           width: 100%; |           width: 100%; | ||||||
|           word-break: break-all; |  | ||||||
|         } |         } | ||||||
|         .phone{ |         .phone{ | ||||||
|           font-size: 26px; |           font-size: 26px; | ||||||
| @@ -137,7 +136,7 @@ export default { | |||||||
|     height: 112px; |     height: 112px; | ||||||
|     line-height: 112px; |     line-height: 112px; | ||||||
|     background: #3975C6; |     background: #3975C6; | ||||||
|     box-shadow: 0px 1px 0px 0px #EEEEEE; |     box-shadow: 0 1px 0 0 #EEEEEE; | ||||||
|     position: fixed; |     position: fixed; | ||||||
|     bottom: 0; |     bottom: 0; | ||||||
|     left: 0; |     left: 0; | ||||||
| @@ -157,6 +156,6 @@ export default { | |||||||
|     position: absolute; |     position: absolute; | ||||||
|     top: 60px; |     top: 60px; | ||||||
|     right: 64px; |     right: 64px; | ||||||
|   }  |   } | ||||||
| } | } | ||||||
| </style> | </style> | ||||||
| @@ -153,7 +153,7 @@ export default { | |||||||
|     height: 112px; |     height: 112px; | ||||||
|     line-height: 112px; |     line-height: 112px; | ||||||
|     background: #3975C6; |     background: #3975C6; | ||||||
|     box-shadow: 0px 1px 0px 0px #EEEEEE; |     box-shadow: 0 1px 0 0 #EEEEEE; | ||||||
|     position: fixed; |     position: fixed; | ||||||
|     bottom: 0; |     bottom: 0; | ||||||
|     left: 0; |     left: 0; | ||||||
| @@ -2,9 +2,6 @@ | |||||||
|   "name": "@dvcp-weapps/shandong10086", |   "name": "@dvcp-weapps/shandong10086", | ||||||
|   "version": "1.0.0", |   "version": "1.0.0", | ||||||
|   "description": "为山东移动定制的模块", |   "description": "为山东移动定制的模块", | ||||||
|   "files": [ |  | ||||||
|     "../../src/apps/AppHandSnapshot" |  | ||||||
|   ], |  | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|   } |   } | ||||||
| } | } | ||||||