apply-clients 3.3.79 → 3.3.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/.project +17 -0
  2. package/build/dev-server-app.js +76 -76
  3. package/build/dev-server.js +156 -127
  4. package/package.json +1 -1
  5. package/src/App.vue +22 -20
  6. package/src/apply.js +5 -0
  7. package/src/applyAndroid.js +39 -34
  8. package/src/components/android/AppOnetomany.vue +50 -8
  9. package/src/components/android/AppServiceView.vue +88 -8
  10. package/src/components/android/AppSign.vue +151 -142
  11. package/src/components/android/AppTakePic.vue +144 -143
  12. package/src/components/android/AreaSelect/AppResAreaSelect.vue +108 -0
  13. package/src/components/android/AreaSelect/AppResAreaSelectGroup.vue +135 -0
  14. package/src/components/android/Process/AppExplorationUser.vue +495 -492
  15. package/src/components/android/Process/AppServiceControl.vue +64 -1
  16. package/src/components/android/Supervisory/AppProcessSupervisory.vue +311 -311
  17. package/src/components/product/AreaSelect/MyAreaSelect.vue +423 -0
  18. package/src/components/product/AreaSelect/ResAreaSelect.vue +106 -0
  19. package/src/components/product/AreaSelect/ResAreaSelectGroup.vue +150 -0
  20. package/src/components/product/AreaSelect/utils/EventListener.js +29 -0
  21. package/src/components/product/AreaSelect/utils/coerceBoolean.js +7 -0
  22. package/src/components/product/Function/InstallInfoSelect.vue +320 -320
  23. package/src/components/product/Onetomany.vue +49 -7
  24. package/src/components/product/Print/BuildOrder/buildOrderList.vue +8 -4
  25. package/src/components/product/Print/BuildOrder/printBuildOrder.vue +4 -0
  26. package/src/components/product/Process/ExplorationSelect.vue +36 -23
  27. package/src/components/product/Process/Service/ServiceControl.vue +62 -0
  28. package/src/components/product/ServiceView.vue +276 -6
  29. package/src/components/product/Supervisory/SupervisoryList.vue +29 -11
  30. package/src/main.js +27 -27
  31. package/yarn.lock +0 -9013
@@ -1,143 +1,144 @@
1
- <template>
2
- <div class="panel">
3
- <div class="panel-body panel-self" style="background-color: #F8F8F8;">
4
- <div class="row form-group" style="height: 240px;overflow: scroll;">
5
- <div class="col-xs-4 col-sm-3 col-md-2 col-xs-offset-1 col-sm-offset-1 col-md-offset-1" v-for="(index,file) in fileList">
6
- <img-self :src="file.f_downloadURL" :width="120" :height="170"></img-self>
7
- <img v-if="isdelete" src="../../../src/assets/删除.png" style="width: 15px;margin-top: -80px" @click.prevent="delfile(file, index)">
8
- </div>
9
- </div>
10
- <div class="row text-right form-group" v-if="istakepic">
11
- <v-select
12
- class="fileType"
13
- placeholder="请选择使用类型"
14
- v-if="istype"
15
- :search="false"
16
- close-on-select
17
- value-single
18
- :options="typeList"
19
- v-model="type"
20
- :value.sync="type"
21
- ></v-select>
22
- <button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click.prevent="takePic(type)">拍照</button>
23
- </div>
24
- </div>
25
- </div>
26
- </template>
27
-
28
- <script>
29
- import {HttpResetClass} from 'vue-client'
30
- import {guid, toStandardTimeString} from '../Util'
31
- import Vue from 'vue'
32
- export default {
33
- title: '附件',
34
- props: ['blobid', 'type', 'defname', 'istype', 'typelabel', 'isdelete', 'istakepic'],
35
- data () {
36
- return {
37
- fileList: []
38
- }
39
- },
40
- ready () {
41
- this.getFiles()
42
- },
43
- methods: {
44
- async getFiles () {
45
- console.log('----------------开始查询图片----------------')
46
- this.fileList = []
47
-
48
- let http = new HttpResetClass()
49
-
50
- let data = {
51
- tablename: 't_files',
52
- condition: `f_blobid = '${this.blobid}' and fremarks = '手机拍照' order by f_uploaddate desc `
53
- }
54
- let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/singleTable`, {data: data}, {
55
- // let res = await http.load('POST', `rs/sql/singleTable`, {data: data}, {
56
- warnMsg: null,
57
- resolveMsg: null
58
- })
59
-
60
- for (var i = 0; i < res.data.length; i++) {
61
- console.log('-----------地址----------------')
62
- console.log(`${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`)
63
- res.data[i].f_downloadURL = `${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`
64
- }
65
-
66
- this.fileList = res.data
67
- },
68
- delfile (file, index) {
69
- this.$resetdelete(`${this.$androidUtil.getProxyUrl()}/rs/entity/t_files`, {id: file.id}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
70
- this.$dispatch("delResid", file.id)
71
- this.getFiles()
72
- })
73
- },
74
- takePic (title) {
75
- // 拍照成功回调
76
- HostApp.__callback__ = this.cameraCallBack
77
- HostApp.__this__ = this
78
- let fileName = guid() + '.jpg'
79
- // 打开相机
80
- HostApp._open_a_page({
81
- type: 'boomerang',
82
- page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
83
- param: {
84
- file: fileName,
85
- requestCode: 200,
86
- callback: 'javascript:HostApp.__callback__("' + fileName + '", "%s");',
87
- watermark: title + '\t时间:' + toStandardTimeString() + '\t' + Vue.user.name // 水印
88
- }
89
- })
90
- },
91
- cameraCallBack (fileName, fileUrl) {
92
- console.log('-----------cameraCallBack-----------------')
93
-
94
- let data = {
95
- blodid: HostApp.__this__.blobid,
96
- type: HostApp.__this__.type,
97
- defname: HostApp.__this__.defname,
98
- username: Vue.user.name,
99
- fremarks: '手机拍照',
100
- fileName: fileName,
101
- fileUrl: fileUrl
102
- }
103
-
104
- console.log('-----------bzLogic-----------------')
105
- HostApp.bzLogic({
106
- 'logic': 'appFileUpload',
107
- 'data': data
108
- })
109
-
110
- console.log('----------------开始回调查询-------------------')
111
- HostApp.__this__.getFiles()
112
- console.log('----------------查询回调结束-------------------')
113
-
114
- HostApp.__callback__ = null
115
- HostApp.__this__ = null
116
- }
117
- },
118
- computed: {
119
- typeList () {
120
- if (this.typelabel) {
121
- return this.$appdata.getParam(this.typelabel)
122
- }
123
- return this.$appdata.getParam('使用类型')
124
- }
125
- },
126
- events: {
127
- }
128
- }
129
- </script>
130
-
131
- <style lang="less">
132
- .fileType {
133
- float: left;
134
- .select-style {
135
- background: #f8f8f8;
136
- border: 0px;
137
- }
138
- input {
139
- border-left: none;
140
- width: 100%;
141
- }
142
- }
143
- </style>
1
+ <template>
2
+ <div class="panel">
3
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;">
4
+ <div class="row form-group" style="height: 240px;overflow: scroll;">
5
+ <div class="col-xs-4 col-sm-3 col-md-2 col-xs-offset-1 col-sm-offset-1 col-md-offset-1" v-for="(index,file) in fileList">
6
+ <img-self :src="file.f_downloadURL" :width="120" :height="170"></img-self>
7
+ <img v-if="isdelete" src="../../../src/assets/删除.png" style="width: 15px;margin-top: -80px" @click.prevent="delfile(file, index)">
8
+ </div>
9
+ </div>
10
+ <div class="row text-right form-group" v-if="istakepic">
11
+ <v-select
12
+ class="fileType"
13
+ placeholder="请选择使用类型"
14
+ v-if="istype"
15
+ :search="false"
16
+ close-on-select
17
+ value-single
18
+ :options="typeList"
19
+ v-model="type"
20
+ :value.sync="type"
21
+ ></v-select>
22
+ <button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click.prevent="takePic(type)">拍照</button>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </template>
27
+
28
+ <script>
29
+ import {HttpResetClass} from 'vue-client'
30
+ import {guid, toStandardTimeString} from '../Util'
31
+ import Vue from 'vue'
32
+ export default {
33
+ title: '附件',
34
+ props: ['blobid', 'type', 'defname', 'istype', 'typelabel', 'isdelete', 'istakepic'],
35
+ data () {
36
+ return {
37
+ fileList: []
38
+ }
39
+ },
40
+ ready () {
41
+ this.getFiles()
42
+ },
43
+ methods: {
44
+ async getFiles () {
45
+ console.log('----------------开始查询图片----------------')
46
+ this.fileList = []
47
+
48
+ let http = new HttpResetClass()
49
+
50
+ let data = {
51
+ tablename: 't_files',
52
+ condition: `f_blobid = '${this.blobid}' and fremarks = '手机拍照' order by f_uploaddate desc `
53
+ }
54
+ let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/singleTable`, {data: data}, {
55
+ // let res = await http.load('POST', `rs/sql/singleTable`, {data: data}, {
56
+ warnMsg: null,
57
+ resolveMsg: null
58
+ })
59
+
60
+ for (var i = 0; i < res.data.length; i++) {
61
+ console.log('-----------地址----------------')
62
+ console.log(`${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`)
63
+ res.data[i].f_downloadURL = `${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`
64
+ }
65
+
66
+ this.fileList = res.data
67
+ },
68
+ delfile (file, index) {
69
+ console.log('-----------文件----------------')
70
+ this.$resetdelete(`${this.$androidUtil.getProxyUrl()}/rs/entity/t_files`, {id: file.id}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
71
+ this.$dispatch("delResid", file.id)
72
+ this.getFiles()
73
+ })
74
+ },
75
+ takePic (title) {
76
+ // 拍照成功回调
77
+ HostApp.__callback__ = this.cameraCallBack
78
+ HostApp.__this__ = this
79
+ let fileName = guid() + '.jpg'
80
+ // 打开相机
81
+ HostApp._open_a_page({
82
+ type: 'boomerang',
83
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
84
+ param: {
85
+ file: fileName,
86
+ requestCode: 200,
87
+ callback: 'javascript:HostApp.__callback__("' + fileName + '", "%s");',
88
+ watermark: title + '\t时间:' + toStandardTimeString() + '\t' + Vue.user.name // 水印
89
+ }
90
+ })
91
+ },
92
+ cameraCallBack (fileName, fileUrl) {
93
+ console.log('-----------cameraCallBack-----------------')
94
+
95
+ let data = {
96
+ blodid: HostApp.__this__.blobid,
97
+ type: HostApp.__this__.type,
98
+ defname: HostApp.__this__.defname,
99
+ username: Vue.user.name,
100
+ fremarks: '手机拍照',
101
+ fileName: fileName,
102
+ fileUrl: fileUrl
103
+ }
104
+
105
+ console.log('-----------bzLogic-----------------')
106
+ HostApp.bzLogic({
107
+ 'logic': 'appFileUpload',
108
+ 'data': data
109
+ })
110
+
111
+ console.log('----------------开始回调查询-------------------')
112
+ HostApp.__this__.getFiles()
113
+ console.log('----------------查询回调结束-------------------')
114
+
115
+ HostApp.__callback__ = null
116
+ HostApp.__this__ = null
117
+ }
118
+ },
119
+ computed: {
120
+ typeList () {
121
+ if (this.typelabel) {
122
+ return this.$appdata.getParam(this.typelabel)
123
+ }
124
+ return this.$appdata.getParam('使用类型')
125
+ }
126
+ },
127
+ events: {
128
+ }
129
+ }
130
+ </script>
131
+
132
+ <style lang="less">
133
+ .fileType {
134
+ float: left;
135
+ .select-style {
136
+ background: #f8f8f8;
137
+ border: 0px;
138
+ }
139
+ input {
140
+ border-left: none;
141
+ width: 100%;
142
+ }
143
+ }
144
+ </style>
@@ -0,0 +1,108 @@
1
+ <template>
2
+ <!--<v-select :options='options' placeholder='请选择'-->
3
+ <!-- :value.sync="selectres"-->
4
+ <!-- :multiple="isMul"-->
5
+ <!-- :search="issearch"-->
6
+ <!-- :close-on-select="!isMul"-->
7
+ <!-- @change="resChange"-->
8
+ <!-- :value-single="true"-->
9
+ <!--&gt;-->
10
+ <!--</v-select>-->
11
+ <area-select :options='options' placeholder='请选择'
12
+ :value.sync="selectres"
13
+ :multiple="!isMul"
14
+ :search="issearch"
15
+ :close-on-select="isMul"
16
+ @change="resChange"
17
+ :value-single="true"
18
+ >
19
+ </area-select>
20
+ </template>
21
+ <script>
22
+ import {HttpResetClass} from 'vue-client'
23
+
24
+ export default {
25
+ title: '资源管理',
26
+ props: {
27
+
28
+ //资源类型
29
+ restype:'',
30
+ //资源数据
31
+ resObj:{},
32
+ options:[],
33
+ isMul: {
34
+ type: Boolean,
35
+ default: true
36
+ },
37
+ issearch: {
38
+ type: Boolean,
39
+ default: true
40
+ },
41
+ //资源初始化数据 默认选中值
42
+ initresid: {
43
+ type: Array,
44
+ default() { return [] },
45
+ },
46
+ //父层id
47
+ parentresid: {
48
+ type: Array,
49
+ default() { return [] },
50
+ },
51
+ },
52
+ data () {
53
+ return {
54
+ //资源数据
55
+ resObj:{},
56
+ //资源数据列表
57
+ resoptions:[],
58
+ //选中资源数据
59
+ selectres: [],
60
+ }
61
+ },
62
+ ready () {
63
+ //获取资源列表
64
+ this.getResList()
65
+ },
66
+ methods:{
67
+ //资源改变
68
+ resChange(val){
69
+ let orgnames=[]
70
+ Object.keys(this.options).forEach((key) => {
71
+ if(this.selectres.includes(this.options[key].value))
72
+ orgnames.push(this.options[key].label)
73
+ })
74
+ // console.log("资源变化:",this.selectres, orgnames,this.options)
75
+ this.$dispatch('res-select', this.selectres, orgnames,this.options)
76
+ },
77
+ //获取资源数据
78
+ async getResList() {
79
+ this.dealdata()
80
+ },
81
+ dealdata(){
82
+ //赋值资源数据选中初始值
83
+ let arryselect=[]
84
+ this.options.forEach((item) => {
85
+ if(this.initresid.length>0){
86
+ this.initresid.forEach((init) => {
87
+ if(item.value==init){
88
+ arryselect.push(item.value)
89
+ }
90
+ })
91
+ }
92
+ })
93
+ //赋值资源选中初始值
94
+ this.selectres=arryselect
95
+ }
96
+ },
97
+ watch: {
98
+ //监听初始化资源id
99
+ 'initresid.length'(){
100
+ this.dealdata()
101
+ },
102
+ //监听初始化资源id
103
+ 'parentresid'(){
104
+ this.dealdata()
105
+ },
106
+ },
107
+ }
108
+ </script>
@@ -0,0 +1,135 @@
1
+ <template>
2
+ <div :class="style">
3
+ <label :class="labelstyle" :style="shijifontColors">市&emsp;&emsp;县</label>
4
+ <app-res-area-select
5
+ :options = options
6
+ @res-select="getXian"
7
+ :issearch = "false"
8
+ >
9
+ </app-res-area-select>
10
+ </div>
11
+ <div :class="style">
12
+ <label :class="labelstyle" :style="xianfontColors">街道乡镇</label>
13
+ <app-res-area-select
14
+ :options = xian_options
15
+ @res-select="getjdao"
16
+ :issearch = "false"
17
+ >
18
+ </app-res-area-select>
19
+ </div>
20
+ <div :class="style">
21
+ <label :class="labelstyle" :style="shequfontColors">社&emsp;&emsp;区</label>
22
+ <app-res-area-select
23
+ :options = jdao_options
24
+ @res-select="getshequ"
25
+ :issearch = "false"
26
+ >
27
+ </app-res-area-select>
28
+ </div>
29
+ </template>
30
+ <script>
31
+
32
+ import { HttpResetClass } from 'vue-client'
33
+ import Vue from "vue";
34
+ export default {
35
+ title: '区域选择分组',
36
+ props: {
37
+ style: {
38
+ type: String,
39
+ default: 'col-xs-12 form-group app-input'
40
+ },
41
+ labelstyle: {
42
+ type: String,
43
+ default: 'font_normal_title'
44
+ },
45
+ mul: {
46
+ type: Boolean,
47
+ default: true
48
+ },
49
+ //初始值 默认选中值
50
+ initres: {
51
+ type: Object,
52
+ default: null,
53
+ }
54
+ },
55
+ data () {
56
+ return {
57
+ options:[],
58
+ initres: [],
59
+ xianginitres: [],
60
+ jdaoinitres: [],
61
+ xian_options:[],
62
+ jdao_options:[],
63
+ shijifontColors:"color: #cd5c5c",//红色
64
+ xianfontColors:"color: #cd5c5c",//红色
65
+ shequfontColors:"color: #cd5c5c",//红色
66
+ pubColors:"color: #0c2e4d",// 黑色
67
+ pub2Colors:"color: #cd5c5c"// 红色
68
+ }
69
+ },
70
+ ready () {
71
+ this.getResList();
72
+ },
73
+ methods:{
74
+ //获取区域地址
75
+ async getResList() {
76
+ let http = new HttpResetClass()
77
+ let req = await http.load('POST', '/rs/logic/resAreaSelect', {
78
+ userid: Vue.user.id,
79
+ orgid: Vue.user.orgid
80
+ }, {resolveMsg: null, rejectMsg: '获取区域地址失败'})
81
+ this.options = []
82
+ this.options = req.data
83
+ },
84
+ async getXian(value,lable,obj) {
85
+ this.xian_options = []
86
+ this.jdao_options = []
87
+ let newFilArr = obj.filter( (item,i) =>{
88
+ if(item.value == value){
89
+ return item
90
+ }
91
+ } )
92
+ if (newFilArr.length>0){
93
+ this.xian_options = newFilArr[0].children
94
+ }
95
+ if (value !=null && value.length!=0){
96
+ this.shijifontColors = this.pubColors
97
+ }else {
98
+ this.shijifontColors = this.pub2Colors
99
+ this.xianfontColors = this.pub2Colors
100
+ this.shequfontColors = this.pub2Colors
101
+ }
102
+ this.$dispatch('shiji-select', value, lable)
103
+ },
104
+ async getjdao(value,lable,obj) {
105
+ this.jdao_options = []
106
+ let newFilArr = obj.filter( (item,i) =>{
107
+ if(item.value == value){
108
+ return item
109
+ }
110
+ } )
111
+ if (newFilArr.length>0){
112
+ this.jdao_options = newFilArr[0].children
113
+ }
114
+ if (value !=null && value.length!=0){
115
+ this.xianfontColors = this.pubColors
116
+ }else {
117
+ this.xianfontColors = this.pub2Colors
118
+ this.shequfontColors = this.pub2Colors
119
+ }
120
+ this.$dispatch('xian-select',value, lable)
121
+ },
122
+ async getshequ(value,lable,obj) {
123
+ if (value !=null && value.length!=0){
124
+ this.shequfontColors = this.pubColors
125
+ }else {
126
+ this.shequfontColors = this.pub2Colors
127
+ }
128
+ this.$dispatch('shequ-select',value, lable)
129
+ }
130
+ },
131
+ watch: {
132
+
133
+ }
134
+ }
135
+ </script>