address-client 3.0.34-aode → 3.0.35-aode

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.
package/package.json CHANGED
@@ -1,105 +1,105 @@
1
- {
2
- "name": "address-client",
3
- "version": "3.0.34-aode",
4
- "description": "地址管理前台组件",
5
- "author": "wanbochao",
6
- "license": "ISC",
7
- "main": "src/index.js",
8
- "keywords": [
9
- "sale"
10
- ],
11
- "scripts": {
12
- "unit": "karma start test/unit/karma.conf.js",
13
- "example": "node build/example-server.js",
14
- "dev": "node build/dev-server.js",
15
- "lint": "eslint src/**.js test/e2e/**.js test/unit/specs/** build/**.js",
16
- "build": "rimraf dist && mkdirp dist && ncp static dist/static && cross-env NODE_ENV=production webpack --progress --hide-modules --config build/webpack.prod.conf.js",
17
- "e2e": "node test/e2e/runner.js",
18
- "make": "rimraf dist-android && mkdirp dist-android && ncp static dist-android/static && cross-env NODE_ENV=production webpack --progress --hide-modules --config build/webpack.prodandroid.conf.js && publish",
19
- "release": "bash build/release.sh"
20
- },
21
- "repository": {
22
- "type": "git",
23
- "url": "https://gitee.com/aote/address_management.git"
24
- },
25
- "dependencies": {
26
- "less-loader": "^2.2.3",
27
- "vue": "^1.0.17"
28
- },
29
- "devDependencies": {
30
- "babel-core": "^6.0.0",
31
- "babel-loader": "^6.0.0",
32
- "axios": "0.15.3",
33
- "babel-plugin-transform-runtime": "^6.0.0",
34
- "babel-preset-es2015": "^6.0.0",
35
- "babel-preset-stage-2": "^6.0.0",
36
- "chai": "^3.5.0",
37
- "co": "^4.6.0",
38
- "ldap-clients": "3.0.28",
39
- "connect-history-api-fallback": "^1.1.0",
40
- "cross-env": "^1.0.7",
41
- "cross-spawn": "^2.1.5",
42
- "css-loader": "^0.23.0",
43
- "echarts": "^4.1.0",
44
- "eslint": "^2.0.0",
45
- "eslint-config-standard": "^5.1.0",
46
- "eslint-friendly-formatter": "^1.2.2",
47
- "eslint-loader": "^1.3.0",
48
- "eslint-plugin-html": "^1.3.0",
49
- "eslint-plugin-promise": "^1.0.8",
50
- "eslint-plugin-standard": "^1.3.2",
51
- "eslint-plugin-vue": "^0.1.1",
52
- "eventsource-polyfill": "^0.9.6",
53
- "express": "^4.13.3",
54
- "extract-text-webpack-plugin": "^1.0.1",
55
- "file-loader": "^0.8.4",
56
- "function-bind": "^1.0.2",
57
- "html-webpack-plugin": "^2.8.1",
58
- "http-proxy-middleware": "^0.11.0",
59
- "inject-loader": "^2.0.1",
60
- "isparta-loader": "^2.0.0",
61
- "jasmine-core": "^2.4.1",
62
- "jquery": "^3.3.1",
63
- "json-loader": "^0.5.4",
64
- "karma": "^1.4.1",
65
- "karma-chrome-launcher": "^2.2.0",
66
- "karma-coverage": "^1.1.1",
67
- "karma-mocha": "^1.3.0",
68
- "karma-sinon-chai": "^1.3.1",
69
- "karma-sourcemap-loader": "^0.3.7",
70
- "karma-spec-reporter": "0.0.31",
71
- "karma-webpack": "^2.0.2",
72
- "less": "^2.7.3",
73
- "mkdirp": "^0.5.1",
74
- "mocha": "^3.2.0",
75
- "ncp": "^2.0.0",
76
- "rimraf": "^2.5.0",
77
- "sale-client": "1.0.66-aode",
78
- "selenium-server": "2.52.0",
79
- "sinon": "^2.1.0",
80
- "sinon-chai": "^2.8.0",
81
- "style": "0.0.3",
82
- "style-loader": "^0.20.3",
83
- "system-clients": "3.1.84",
84
- "url-loader": "^0.5.7",
85
- "vue-client": "1.22.20-5",
86
- "vue-hot-reload-api": "^1.2.0",
87
- "vue-html-loader": "^1.0.0",
88
- "vue-loader": "^8.2.1",
89
- "vue-resource": "^1.5.0",
90
- "vue-router": "^0.7.13",
91
- "vue-strap": "^1.0.9",
92
- "vue-style-loader": "^1.0.0",
93
- "vue-validator": "2.1.7",
94
- "webpack": "^1.12.2",
95
- "webpack-dev-middleware": "^1.4.0",
96
- "webpack-hot-middleware": "^2.6.0",
97
- "webpack-merge": "^0.8.3",
98
- "jsencrypt": "3.0.0-rc.1"
99
- },
100
- "directories": {
101
- "doc": "doc",
102
- "example": "examples",
103
- "test": "test"
104
- }
105
- }
1
+ {
2
+ "name": "address-client",
3
+ "version": "3.0.35-aode",
4
+ "description": "地址管理前台组件",
5
+ "author": "wanbochao",
6
+ "license": "ISC",
7
+ "main": "src/index.js",
8
+ "keywords": [
9
+ "sale"
10
+ ],
11
+ "scripts": {
12
+ "unit": "karma start test/unit/karma.conf.js",
13
+ "example": "node build/example-server.js",
14
+ "dev": "node build/dev-server.js",
15
+ "lint": "eslint src/**.js test/e2e/**.js test/unit/specs/** build/**.js",
16
+ "build": "rimraf dist && mkdirp dist && ncp static dist/static && cross-env NODE_ENV=production webpack --progress --hide-modules --config build/webpack.prod.conf.js",
17
+ "e2e": "node test/e2e/runner.js",
18
+ "make": "rimraf dist-android && mkdirp dist-android && ncp static dist-android/static && cross-env NODE_ENV=production webpack --progress --hide-modules --config build/webpack.prodandroid.conf.js && publish",
19
+ "release": "bash build/release.sh"
20
+ },
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "https://gitee.com/aote/address_management.git"
24
+ },
25
+ "dependencies": {
26
+ "less-loader": "^2.2.3",
27
+ "vue": "^1.0.17"
28
+ },
29
+ "devDependencies": {
30
+ "babel-core": "^6.0.0",
31
+ "babel-loader": "^6.0.0",
32
+ "axios": "0.15.3",
33
+ "babel-plugin-transform-runtime": "^6.0.0",
34
+ "babel-preset-es2015": "^6.0.0",
35
+ "babel-preset-stage-2": "^6.0.0",
36
+ "chai": "^3.5.0",
37
+ "co": "^4.6.0",
38
+ "ldap-clients": "3.0.28",
39
+ "connect-history-api-fallback": "^1.1.0",
40
+ "cross-env": "^1.0.7",
41
+ "cross-spawn": "^2.1.5",
42
+ "css-loader": "^0.23.0",
43
+ "echarts": "^4.1.0",
44
+ "eslint": "^2.0.0",
45
+ "eslint-config-standard": "^5.1.0",
46
+ "eslint-friendly-formatter": "^1.2.2",
47
+ "eslint-loader": "^1.3.0",
48
+ "eslint-plugin-html": "^1.3.0",
49
+ "eslint-plugin-promise": "^1.0.8",
50
+ "eslint-plugin-standard": "^1.3.2",
51
+ "eslint-plugin-vue": "^0.1.1",
52
+ "eventsource-polyfill": "^0.9.6",
53
+ "express": "^4.13.3",
54
+ "extract-text-webpack-plugin": "^1.0.1",
55
+ "file-loader": "^0.8.4",
56
+ "function-bind": "^1.0.2",
57
+ "html-webpack-plugin": "^2.8.1",
58
+ "http-proxy-middleware": "^0.11.0",
59
+ "inject-loader": "^2.0.1",
60
+ "isparta-loader": "^2.0.0",
61
+ "jasmine-core": "^2.4.1",
62
+ "jquery": "^3.3.1",
63
+ "json-loader": "^0.5.4",
64
+ "karma": "^1.4.1",
65
+ "karma-chrome-launcher": "^2.2.0",
66
+ "karma-coverage": "^1.1.1",
67
+ "karma-mocha": "^1.3.0",
68
+ "karma-sinon-chai": "^1.3.1",
69
+ "karma-sourcemap-loader": "^0.3.7",
70
+ "karma-spec-reporter": "0.0.31",
71
+ "karma-webpack": "^2.0.2",
72
+ "less": "^2.7.3",
73
+ "mkdirp": "^0.5.1",
74
+ "mocha": "^3.2.0",
75
+ "ncp": "^2.0.0",
76
+ "rimraf": "^2.5.0",
77
+ "sale-client": "1.0.66-aode",
78
+ "selenium-server": "2.52.0",
79
+ "sinon": "^2.1.0",
80
+ "sinon-chai": "^2.8.0",
81
+ "style": "0.0.3",
82
+ "style-loader": "^0.20.3",
83
+ "system-clients": "3.1.84",
84
+ "url-loader": "^0.5.7",
85
+ "vue-client": "1.22.20-5",
86
+ "vue-hot-reload-api": "^1.2.0",
87
+ "vue-html-loader": "^1.0.0",
88
+ "vue-loader": "^8.2.1",
89
+ "vue-resource": "^1.5.0",
90
+ "vue-router": "^0.7.13",
91
+ "vue-strap": "^1.0.9",
92
+ "vue-style-loader": "^1.0.0",
93
+ "vue-validator": "2.1.7",
94
+ "webpack": "^1.12.2",
95
+ "webpack-dev-middleware": "^1.4.0",
96
+ "webpack-hot-middleware": "^2.6.0",
97
+ "webpack-merge": "^0.8.3",
98
+ "jsencrypt": "3.0.0-rc.1"
99
+ },
100
+ "directories": {
101
+ "doc": "doc",
102
+ "example": "examples",
103
+ "test": "test"
104
+ }
105
+ }
@@ -40,6 +40,10 @@
40
40
  <button class="button_new button_spacing" style="width: max-content" @click="$parent.$parent.add('民用')">添加民用</button>
41
41
  <button class="button_new button_spacing" style="width: max-content" @click="$parent.$parent.add('非民用')">添加特殊地址</button>
42
42
  <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
43
+ <export-excel :data="$parent.$parent.getCondition" :defaultselect="$parent.$parent.getfield"
44
+ :field="$parent.$parent.getfield"
45
+ sqlurl="rs/logic/exportfile" sql-name="address_getAddress" template-name='地址导出'
46
+ :choose-col="true"></export-excel>
43
47
  <button class="button_export button_spacing" @click="$parent.$parent.importAddress">导入地址</button>
44
48
  <div style="float: right" class="button_spacing" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.hidden()"></div>
45
49
  </div>
@@ -175,7 +179,7 @@
175
179
  model: new PagedList('rs/sql/address_getAddress',20,{tablename: `'t_user_address'`,items: `'*'`,orderitem: `'id desc'`}),
176
180
  addflag: false,
177
181
  addtitle:'',
178
-
182
+ condition:'',
179
183
  // 公司下拉
180
184
  curorgid: [this.$login.f.orgid],
181
185
  f_orgid: '',
@@ -264,6 +268,7 @@
264
268
  }
265
269
  console.log("xxx"+this.f_filialeids)
266
270
  args.condition = `${args.condition} and a.f_filialeid = '${this.f_filialeids}'`
271
+ this.condition = args.condition
267
272
  this.model.search(args.condition, args.model)
268
273
  },
269
274
 
@@ -279,6 +284,17 @@
279
284
  this.f_filialeids = val[0]
280
285
  }
281
286
  },
287
+ computed:{
288
+ getCondition() {
289
+ return {condition: this.condition}
290
+ },
291
+ getfield() {
292
+ let filed =[]
293
+ filed = {'f_userinfo_code': '用户编号','f_pcd': '区/县', 'f_slice_area': '片区/管理站', 'f_street': '街道名称','f_residential_area':'小区名称','f_building': '楼号','f_unit': '单元','f_floor':'楼层',
294
+ 'f_room': '门牌号','f_address': '详细地址','f_create_date': '时间'}
295
+ return filed
296
+ },
297
+ },
282
298
  events: {
283
299
  onFileUpload: async function (file, res) {
284
300
  this.$showAlert('文件上传成功','success',1000);
@@ -1,334 +1,357 @@
1
- <template>
2
- <div class="flex" @keyup.enter="search">
3
- <criteria-paged :model="model" v-ref:paged>
4
- <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
5
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
- <div class="row">
7
- <div :class="$parent.$parent.style">
8
- <label class="font_normal_body">组织机构</label>
9
- <res-select restype='organization'
10
- @res-select="$parent.$parent.getorg"
11
- is-mul="false"
12
- :initresid='$parent.$parent.curorgid'>
13
- </res-select>
14
- </div>
15
- <div :class="$parent.$parent.style">
16
- <label class="font_normal_body">小区编号</label>
17
- <input type="text" class="input_search" style="width:60%" v-model="model.f_area_id"
18
- condition="f_area_id = '{}'" placeholder="小区编号"/>
19
- </div>
20
- <div :class="$parent.$parent.style" v-if="false">
21
- <label class="font_normal_body">省&emsp;&emsp;份</label>
22
- <input type="text" class="input_search" style="width:60%" v-model="model.f_province"
23
- condition="f_province like '%{}%'" placeholder="省份"/>
24
- </div>
25
- <!--<div :class="$parent.$parent.style" v-if="!$parent.$parent.$parent.areaShow">-->
26
- <div :class="$parent.$parent.style" v-if="false">
27
- <label class="font_normal_body">城&emsp;&emsp;市</label>
28
- <input type="text" class="input_search" style="width:60%" v-model="model.f_city"
29
- condition="f_city like '%{}%'" placeholder="城市"/>
30
- </div>
31
- <div :class="$parent.$parent.style" v-if="!$parent.$parent.$parent.areaShow">
32
- <label class="font_normal_body">区&emsp;&emsp;县</label>
33
- <input type="text" class="input_search" style="width:60%" v-model="model.f_district"
34
- condition="f_district like '%{}%'" placeholder="区县"/>
35
- </div>
36
- <div :class="$parent.$parent.style" v-if="!$parent.$parent.$parent.areaShow">
37
- <label class="font_normal_body">街&emsp;&emsp;道</label>
38
- <input type="text" class="input_search" style="width:60%" v-model="model.f_street"
39
- condition="f_street like '%{}%'" placeholder="街道"/>
40
- </div>
41
- <div :class="$parent.$parent.style" v-if="!$parent.$parent.$parent.areaShow">
42
- <label class="font_normal_body">户数大于</label>
43
- <input type="text" class="input_search" style="width:60%" v-model="model.areacount"
44
- condition="isnull(resi.areacount,0) >= '{}'" placeholder="使用人数大于等于"/>
45
- </div>
46
- <div :class="$parent.$parent.style" v-if="!$parent.$parent.$parent.areaShow">
47
- <label class="font_normal_body">户数小于</label>
48
- <input type="text" class="input_search" style="width:60%" v-model="model.areacount_end"
49
- condition="isnull(resi.areacount,0) <='{}'" placeholder="使用人数小于等于"/>
50
- </div>
51
- <div class="col-sm-4 form-group button-range">
52
- <button class="button_search button_spacing" @click="search()" >查询</button>
53
- <button v-if="!$parent.$parent.f_special" class="button_new button_spacing" style="width: max-content;" @click="$parent.$parent.add('小区')">添加小区</button>
54
- <button v-if="$parent.$parent.f_special"class="button_new button_spacing" style="width: max-content;" @click="$parent.$parent.add('单位')">添加单位</button>
55
- <button v-if="$parent.$parent.checkitem.length>=1" class="button_clear button_spacing" @click="$parent.$parent.deleteall()">批量删除</button>
56
- <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
57
- <div style="float: right" class="button_spacing" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.hidden()"></div>
58
- </div>
59
- </div>
60
- <div class="row" v-if="$parent.$parent.criteriaShow">
61
- <div :class="$parent.$parent.style" v-if="$parent.$parent.$parent.areaShow">
62
- <label class="font_normal_body">城&emsp;&emsp;市</label>
63
- <input type="text" class="input_search" style="width:60%" v-model="model.f_city"
64
- condition="f_city like '%{}%'" placeholder="城市"
65
- :size="model.f_city ? model.f_city.length*2 : 6"/>
66
- </div>
67
- <div :class="$parent.$parent.style" v-if="$parent.$parent.$parent.areaShow">
68
- <label class="font_normal_body">区&emsp;&emsp;县</label>
69
- <input type="text" class="input_search" style="width:60%" v-model="model.f_district"
70
- condition="f_district like '%{}%'" placeholder="区县"
71
- :size="model.f_district ? model.f_district.length*2 : 6"/>
72
- </div>
73
- <div :class="$parent.$parent.style" v-if="$parent.$parent.$parent.areaShow">
74
- <label class="font_normal_body">街&emsp;&emsp;道</label>
75
- <input type="text" class="input_search" style="width:60%" v-model="model.f_street"
76
- condition="f_street like '%{}%'" placeholder="街道"
77
- :size="model.f_street ? model.f_street.length*2 : 6"/>
78
- </div>
79
- <div :class="$parent.$parent.style">
80
- <label class="font_normal_body">小&emsp;&emsp;区</label>
81
- <input type="text" class="input_search" style="width:60%" v-model="model.f_residential_area"
82
- condition="f_residential_area like '%{}%'" placeholder="小区"
83
- :size="model.f_residential_area ? model.f_residential_area.length*2 : 6"/>
84
- </div>
85
-
86
- </div>
87
- </div>
88
-
89
-
90
- </criteria>
91
- <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
92
- <template partial='head'>
93
- <tr>
94
- <th>
95
- <input
96
- type="checkbox"
97
- v-model="$parent.$parent.$parent.checkall"
98
- @change="$parent.$parent.$parent.chooseAll"
99
- />
100
- </th>
101
- <th><nobr>序号</nobr></th>
102
- <th v-if="false"><nobr>省份</nobr></th>
103
- <th v-if="false"><nobr>城市</nobr></th>
104
- <th><nobr>区/县</nobr></th>
105
- <th><nobr>街道名称</nobr></th>
106
- <!--民用小区信息开始-->
107
- <th v-if="!$parent.$parent.$parent.f_special"><nobr>小区名称</nobr></th>
108
- <th v-if="!$parent.$parent.$parent.f_special"><nobr>详细地址</nobr></th>
109
- <th v-if="!$parent.$parent.$parent.f_special"><nobr>小区备注</nobr></th>
110
- <!--民用小区信息结束-->
111
- <!--非民用单位信息开始-->
112
- <th v-if="$parent.$parent.$parent.f_special"><nobr>单位名称</nobr></th>
113
- <th v-if="$parent.$parent.$parent.f_special"><nobr>单位地址</nobr></th>
114
- <th v-if="$parent.$parent.$parent.f_special"><nobr>联系人</nobr></th>
115
- <th v-if="$parent.$parent.$parent.f_special"><nobr>联系电话</nobr></th>
116
- <!--非民用单位信息结束-->
117
- <th><nobr>片区/管理站 </nobr></th>
118
- <th><nobr>使用人数 </nobr></th>
119
- <th><nobr>关联地址 </nobr></th>
120
- <th><nobr>操作人</nobr></th>
121
- <th><nobr>操作日期</nobr></th>
122
- <th><nobr>操作</nobr></th>
123
-
124
- </tr>
125
- </template>
126
- <template partial='body'>
127
- <tr>
128
- <td style="text-align: center">
129
- <input
130
- v-if="row.areacount===0"
131
- :id="model.pageIndex"
132
- type="checkbox"
133
- @change="$parent.$parent.$parent.chooseOne($event, row, model.rows)"
134
- :checked="$parent.$parent.$parent.ischecked(row.id)"
135
- />
136
- </td>
137
- <td style="text-align:center"><nobr>{{$index + 1}}</nobr></td>
138
- <td style="text-align:center" v-if="false"><nobr>{{row.f_province}}</nobr></td>
139
- <td style="text-align:center" v-if="false"><nobr>{{row.f_city}}</nobr></td>
140
- <td style="text-align:center"><nobr>{{row.f_district}}</nobr></td>
141
- <td style="text-align:center"><nobr>{{row.f_street}}</nobr></td>
142
- <td style="text-align:center"><nobr>{{row.f_residential_area}}</nobr></td>
143
- <td style="text-align:center"><nobr>{{row.f_area_address}}{{row.f_residential_area}}</nobr></td>
144
- <td style="text-align:center"><nobr>{{row.f_comments}}</nobr></td>
145
- <!--非民用单位信息开始-->
146
- <td v-if="$parent.$parent.$parent.f_special" style="text-align:center"><nobr>{{row.f_linkname}}</nobr></td>
147
- <td v-if="$parent.$parent.$parent.f_special" style="text-align:center"><nobr>{{row.f_linkphone}}</nobr></td>
148
- <!--非民用单位信息结束-->
149
- <td style="text-align:center"><nobr>{{row.f_slice_area}}</nobr></td>
150
- <td style="text-align:center"><button @click.stop="$parent.$parent.$parent.operate(row.id,row.f_residential_area)" class="btn btn-link">{{row.areacount}}</button></td>
151
- <td style="text-align:center"><nobr>{{row.addresscount}}</nobr></td>
152
- <td style="text-align:center"><nobr>{{row.f_operator}}</nobr></td>
153
- <td style="text-align:center"><nobr>{{row.f_operate_date}}</nobr></td>
154
- <td><nobr>
155
- <!--<button type="button" name="button" class="btn btn-link"
156
- @click.stop="$parent.$parent.$parent.modify(row)">修改</button>-->
157
- <button type="button" name="button" class="btn btn-link" v-if="row.areacount===0"
158
- @click.stop="$parent.$parent.$parent.delete(row)">删除</button>
159
- </nobr></td>
160
- </tr>
161
- </template>
162
- <template partial='foot'></template>
163
- </data-grid>
164
- </criteria-paged>
165
- </div>
166
- </template>
167
-
168
- <script>
169
- import { PagedList } from 'vue-client'
170
-
171
- export default {
172
-
173
- data () {
174
- return {
175
- checkall:false,
176
- checkitem:[],
177
- criteriaShow: false,
178
- model: new PagedList('rs/sql/address_getarealist',50),
179
- addflag: false,
180
- addtitle:'',
181
-
182
- // 公司下拉
183
- curorgid: [this.$login.f.orgid],
184
- f_orgid: ''
185
- }
186
- },
187
- title: '小区管理',
188
- computed:{
189
- ischeckall(){
190
- let arr =[]
191
- for(let i=0;i<this.model.rows.length;i++){
192
- if(this.model.rows[i].areacount<1){
193
- arr.push(this.model.rows[i].id)
194
- }
195
- }
196
- if(arr.sort().toString()===this.checkitem.sort().toString() && this.checkitem.length>0){
197
- console.log(arr.sort().toString())
198
- console.log(this.checkitem.sort().toString())
199
- // this.checkall = true
200
- } else {
201
- // this.checkall = false
202
- }
203
- // return this.checkall
204
- }
205
- },
206
- props:{
207
- f_filialeids:{
208
- type: String
209
- },
210
- style: {
211
- type: String,
212
- default: 'col-sm-2 form-group'
213
- },
214
- f_special:{
215
- type: String
216
- }
217
- },
218
- ready(){
219
- this.search()
220
- },
221
- methods: {
222
- chooseAll(){
223
- console.log(this.checkall)
224
- if(this.checkall){
225
- this.checkitem = []
226
- for(let i=0;i<this.model.rows.length;i++){
227
- if(this.model.rows[i].areacount<1){
228
- this.checkitem.push(this.model.rows[i].id)
229
- }
230
- }
231
- }else{
232
- this.checkitem = []
233
- }
234
- },
235
- chooseOne(e, row, rows) {
236
- console.log("row", row);
237
- let checked = e.target.checked;
238
- console.log("state", e.target.checked);
239
- if(checked===false){
240
- this.checkitem.splice(this.checkitem.indexOf(row.id), 1)
241
- } else {
242
- this.checkitem.push(row.id)
243
- }
244
- },
245
- ischecked(row){
246
- return this.checkitem.indexOf(row)>-1
247
- },
248
- operate (f_residential_area_id,f_residential_area) {
249
- this.$parent.areaShow = false;
250
- this.$parent.usershow=true
251
- this.$parent.f_residential_area_id=f_residential_area_id
252
- this.$parent.f_residential_area=f_residential_area
253
- },
254
- hidden() {
255
- this.criteriaShow = !this.criteriaShow
256
- },
257
- search() {
258
- this.$refs.paged.$refs.cri.search()
259
- },
260
-
261
- async delete(row){
262
- if(row.id){
263
- var id = row.id
264
- let useraredss = await this.$resetpost('rs/sql/address_singleTable',
265
- {data: {
266
- items: 'f_residential_area_id',
267
- tablename: 't_user_address',
268
- condition: `f_residential_area_id='${id}'`}
269
- },
270
- {resolveMsg: null, rejectMsg: null})
271
- if(useraredss.data.length>0){
272
- this.$showAlert('该小区下已有地址信息,无法删除!','warning',1000)
273
- }else{
274
- this.$resetdelete('rs/entity/t_area', {id: id}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
275
- this.$dispatch('cancel')
276
- })
277
- }
278
- }
279
- },
280
- deleteall(){
281
- let msg =`共计删除${this.checkitem.length}个小区,请确认删除操作`
282
- this.$showMessage(msg, ['confirm', 'cancel']).then((res) => {
283
- if (res === 'confirm') {
284
- //发出事件,用于建档或修正档案
285
- this.$resetpost('rs/logic/deleteAreaAll',{data:{arr:this.checkitem}}).then((res)=>{
286
- this.search()
287
- })
288
- }
289
- })
290
-
291
-
292
- },
293
- add(val){
294
- if (this.f_filialeids) {
295
- this.$refs.paged.$refs.grid.selectStore.selected = null
296
- this.$dispatch('add')
297
- } else {
298
- this.$showAlert('请先选择左上角的所在分公司', 'warning', 2000)
299
- }
300
- },
301
- modify(val){
302
- this.$refs.paged.$refs.grid.selectStore.selected = null
303
- this.$dispatch('modify',val)
304
- },
305
- selfSearch (args) {
306
- this.checkall = false;
307
- this.$parent.usershow = false;
308
- this.$parent.areaShow = false;
309
- if (!this.f_orgid) {
310
- this.getorg([this.$login.f.orgid])
311
- }
312
- console.log('查询。。。', this.f_orgid)
313
- if(this.f_special){
314
- args.condition = `${args.condition} and s.f_special='1' and s.f_filialeid = '${this.f_filialeids}'`
315
- }else{
316
- args.condition = `${args.condition} and s.f_filialeid = ${this.f_orgid}`
317
- }
318
- this.model.search(args.condition, args.model)
319
- },
320
- //清空
321
- clear(){
322
- this.$refs.paged.$refs.cri.model = {}
323
- },
324
- getorg (val) {
325
- this.f_orgid = this.$login.convertToIn(val)
326
- this.f_filialeids = val[0]
327
- }
328
- },
329
- watch:{
330
-
331
- }
332
-
333
- }
334
- </script>
1
+ <template>
2
+ <div class="flex" @keyup.enter="search">
3
+ <criteria-paged :model="model" v-ref:paged>
4
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
5
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
+ <div class="row">
7
+ <div :class="$parent.$parent.style">
8
+ <label class="font_normal_body">组织机构</label>
9
+ <res-select restype='organization'
10
+ @res-select="$parent.$parent.getorg"
11
+ is-mul="false"
12
+ :initresid='$parent.$parent.curorgid'>
13
+ </res-select>
14
+ </div>
15
+ <div :class="$parent.$parent.style">
16
+ <label class="font_normal_body">小区编号</label>
17
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_area_id"
18
+ condition="f_area_id = '{}'" placeholder="小区编号"/>
19
+ </div>
20
+ <div :class="$parent.$parent.style" v-if="false">
21
+ <label class="font_normal_body">省&emsp;&emsp;份</label>
22
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_province"
23
+ condition="f_province like '%{}%'" placeholder="省份"/>
24
+ </div>
25
+ <!--<div :class="$parent.$parent.style" v-if="!$parent.$parent.$parent.areaShow">-->
26
+ <div :class="$parent.$parent.style" v-if="false">
27
+ <label class="font_normal_body">城&emsp;&emsp;市</label>
28
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_city"
29
+ condition="f_city like '%{}%'" placeholder="城市"/>
30
+ </div>
31
+ <div :class="$parent.$parent.style" v-if="!$parent.$parent.$parent.areaShow">
32
+ <label class="font_normal_body">区&emsp;&emsp;县</label>
33
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_district"
34
+ condition="f_district like '%{}%'" placeholder="区县"/>
35
+ </div>
36
+ <div :class="$parent.$parent.style" v-if="!$parent.$parent.$parent.areaShow">
37
+ <label class="font_normal_body">街&emsp;&emsp;道</label>
38
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_street"
39
+ condition="f_street like '%{}%'" placeholder="街道"/>
40
+ </div>
41
+ <div :class="$parent.$parent.style" v-if="!$parent.$parent.$parent.areaShow">
42
+ <label class="font_normal_body">户数大于</label>
43
+ <input type="text" class="input_search" style="width:60%" v-model="model.areacount"
44
+ condition="isnull(resi.areacount,0) >= '{}'" placeholder="使用人数大于等于"/>
45
+ </div>
46
+ <div :class="$parent.$parent.style" v-if="!$parent.$parent.$parent.areaShow">
47
+ <label class="font_normal_body">户数小于</label>
48
+ <input type="text" class="input_search" style="width:60%" v-model="model.areacount_end"
49
+ condition="isnull(resi.areacount,0) <='{}'" placeholder="使用人数小于等于"/>
50
+ </div>
51
+ <div class="col-sm-4 form-group button-range">
52
+ <button class="button_search button_spacing" @click="search()" >查询</button>
53
+ <button v-if="!$parent.$parent.f_special" class="button_new button_spacing" style="width: max-content;" @click="$parent.$parent.add('小区')">添加小区</button>
54
+ <button v-if="$parent.$parent.f_special"class="button_new button_spacing" style="width: max-content;" @click="$parent.$parent.add('单位')">添加单位</button>
55
+ <button v-if="$parent.$parent.checkitem.length>=1" class="button_clear button_spacing" @click="$parent.$parent.deleteall()">批量删除</button>
56
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
57
+ <export-excel :data="$parent.$parent.getCondition" :defaultselect="$parent.$parent.getfield"
58
+ :field="$parent.$parent.getfield"
59
+ sqlurl="rs/logic/exportfile" sql-name="address_getarealist" template-name='小区导出'
60
+ :choose-col="true"></export-excel>
61
+ <div style="float: right" class="button_spacing" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.hidden()"></div>
62
+ </div>
63
+ </div>
64
+ <div class="row" v-if="$parent.$parent.criteriaShow">
65
+ <div :class="$parent.$parent.style" v-if="$parent.$parent.$parent.areaShow">
66
+ <label class="font_normal_body">城&emsp;&emsp;市</label>
67
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_city"
68
+ condition="f_city like '%{}%'" placeholder="城市"
69
+ :size="model.f_city ? model.f_city.length*2 : 6"/>
70
+ </div>
71
+ <div :class="$parent.$parent.style" v-if="$parent.$parent.$parent.areaShow">
72
+ <label class="font_normal_body">区&emsp;&emsp;县</label>
73
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_district"
74
+ condition="f_district like '%{}%'" placeholder="区县"
75
+ :size="model.f_district ? model.f_district.length*2 : 6"/>
76
+ </div>
77
+ <div :class="$parent.$parent.style" v-if="$parent.$parent.$parent.areaShow">
78
+ <label class="font_normal_body">街&emsp;&emsp;道</label>
79
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_street"
80
+ condition="f_street like '%{}%'" placeholder="街道"
81
+ :size="model.f_street ? model.f_street.length*2 : 6"/>
82
+ </div>
83
+ <div :class="$parent.$parent.style">
84
+ <label class="font_normal_body">小&emsp;&emsp;区</label>
85
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_residential_area"
86
+ condition="f_residential_area like '%{}%'" placeholder="小区"
87
+ :size="model.f_residential_area ? model.f_residential_area.length*2 : 6"/>
88
+ </div>
89
+
90
+ </div>
91
+ </div>
92
+
93
+
94
+ </criteria>
95
+ <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
96
+ <template partial='head'>
97
+ <tr>
98
+ <th>
99
+ <input
100
+ type="checkbox"
101
+ v-model="$parent.$parent.$parent.checkall"
102
+ @change="$parent.$parent.$parent.chooseAll"
103
+ />
104
+ </th>
105
+ <th><nobr>序号</nobr></th>
106
+ <th v-if="false"><nobr>省份</nobr></th>
107
+ <th v-if="false"><nobr>城市</nobr></th>
108
+ <th><nobr>区/县</nobr></th>
109
+ <th><nobr>街道名称</nobr></th>
110
+ <!--民用小区信息开始-->
111
+ <th v-if="!$parent.$parent.$parent.f_special"><nobr>小区名称</nobr></th>
112
+ <th v-if="!$parent.$parent.$parent.f_special"><nobr>详细地址</nobr></th>
113
+ <th v-if="!$parent.$parent.$parent.f_special"><nobr>小区备注</nobr></th>
114
+ <!--民用小区信息结束-->
115
+ <!--非民用单位信息开始-->
116
+ <th v-if="$parent.$parent.$parent.f_special"><nobr>单位名称</nobr></th>
117
+ <th v-if="$parent.$parent.$parent.f_special"><nobr>单位地址</nobr></th>
118
+ <th v-if="$parent.$parent.$parent.f_special"><nobr>联系人</nobr></th>
119
+ <th v-if="$parent.$parent.$parent.f_special"><nobr>联系电话</nobr></th>
120
+ <!--非民用单位信息结束-->
121
+ <th><nobr>片区/管理站 </nobr></th>
122
+ <th><nobr>使用人数 </nobr></th>
123
+ <th><nobr>首次通气日期 </nobr></th>
124
+ <th><nobr>通气年限 </nobr></th>
125
+ <th><nobr>关联地址 </nobr></th>
126
+ <th><nobr>操作人</nobr></th>
127
+ <th><nobr>操作日期</nobr></th>
128
+ <th><nobr>操作</nobr></th>
129
+
130
+ </tr>
131
+ </template>
132
+ <template partial='body'>
133
+ <tr>
134
+ <td style="text-align: center">
135
+ <input
136
+ v-if="row.areacount===0"
137
+ :id="model.pageIndex"
138
+ type="checkbox"
139
+ @change="$parent.$parent.$parent.chooseOne($event, row, model.rows)"
140
+ :checked="$parent.$parent.$parent.ischecked(row.id)"
141
+ />
142
+ </td>
143
+ <td style="text-align:center"><nobr>{{$index + 1}}</nobr></td>
144
+ <td style="text-align:center" v-if="false"><nobr>{{row.f_province}}</nobr></td>
145
+ <td style="text-align:center" v-if="false"><nobr>{{row.f_city}}</nobr></td>
146
+ <td style="text-align:center"><nobr>{{row.f_district}}</nobr></td>
147
+ <td style="text-align:center"><nobr>{{row.f_street}}</nobr></td>
148
+ <td style="text-align:center"><nobr>{{row.f_residential_area}}</nobr></td>
149
+ <td style="text-align:center"><nobr>{{row.f_area_address}}{{row.f_residential_area}}</nobr></td>
150
+ <td style="text-align:center"><nobr>{{row.f_comments}}</nobr></td>
151
+ <!--非民用单位信息开始-->
152
+ <td v-if="$parent.$parent.$parent.f_special" style="text-align:center"><nobr>{{row.f_linkname}}</nobr></td>
153
+ <td v-if="$parent.$parent.$parent.f_special" style="text-align:center"><nobr>{{row.f_linkphone}}</nobr></td>
154
+ <!--非民用单位信息结束-->
155
+ <td style="text-align:center"><nobr>{{row.f_slice_area}}</nobr></td>
156
+ <td style="text-align:center"><button @click.stop="$parent.$parent.$parent.operate(row.id,row.f_residential_area)" class="btn btn-link">{{row.areacount}}</button></td>
157
+ <td style="text-align:center"><nobr>{{row.addresscount}}</nobr></td>
158
+ <td style="text-align:center"><nobr>{{row.open_date}}</nobr></td>
159
+ <td style="text-align:center"><nobr>{{row.yeardiff}}</nobr></td>
160
+ <td style="text-align:center"><nobr>{{row.f_operator}}</nobr></td>
161
+ <td style="text-align:center"><nobr>{{row.f_operate_date}}</nobr></td>
162
+ <td><nobr>
163
+ <!--<button type="button" name="button" class="btn btn-link"
164
+ @click.stop="$parent.$parent.$parent.modify(row)">修改</button>-->
165
+ <button type="button" name="button" class="btn btn-link" v-if="row.areacount===0"
166
+ @click.stop="$parent.$parent.$parent.delete(row)">删除</button>
167
+ </nobr></td>
168
+ </tr>
169
+ </template>
170
+ <template partial='foot'></template>
171
+ </data-grid>
172
+ </criteria-paged>
173
+ </div>
174
+ </template>
175
+
176
+ <script>
177
+ import { PagedList } from 'vue-client'
178
+
179
+ export default {
180
+
181
+ data () {
182
+ return {
183
+ checkall:false,
184
+ checkitem:[],
185
+ criteriaShow: false,
186
+ model: new PagedList('rs/sql/address_getarealist',50),
187
+ addflag: false,
188
+ addtitle:'',
189
+ condition:'',
190
+ // 公司下拉
191
+ curorgid: [this.$login.f.orgid],
192
+ f_orgid: ''
193
+ }
194
+ },
195
+ title: '小区管理',
196
+ computed:{
197
+ getCondition() {
198
+ return {condition: this.condition}
199
+ },
200
+ getfield() {
201
+ let filed =[]
202
+ if(this.f_special){
203
+ filed = {'f_district': '区/县', 'f_street': '街道名称','f_residential_area':'小区名称','f_area_address': '详细地址','f_comments': '小区备注', 'f_slice_area': '片区/管理站','areacount':'使用人数',
204
+ 'open_date': '首次通气时间','yeardiff': '通气年限','f_operator': '操作人','f_operate_date': '操作日期'}
205
+ }else {
206
+ filed = {'f_district': '区/县', 'f_street': '街道名称','f_residential_area':'单位名称','f_area_address': '单位地址','f_comments': '小区备注','f_linkname':'联系人', 'f_linkphone':'联系电话','f_slice_area': '片区/管理站','areacount':'使用人数',
207
+ 'open_date': '首次通气时间','yeardiff': '通气年限','f_operator': '操作人','f_operate_date': '操作日期'}
208
+ }
209
+ return filed
210
+ },
211
+ ischeckall(){
212
+ let arr =[]
213
+ for(let i=0;i<this.model.rows.length;i++){
214
+ if(this.model.rows[i].areacount<1){
215
+ arr.push(this.model.rows[i].id)
216
+ }
217
+ }
218
+ if(arr.sort().toString()===this.checkitem.sort().toString() && this.checkitem.length>0){
219
+ console.log(arr.sort().toString())
220
+ console.log(this.checkitem.sort().toString())
221
+ // this.checkall = true
222
+ } else {
223
+ // this.checkall = false
224
+ }
225
+ // return this.checkall
226
+ }
227
+ },
228
+ props:{
229
+ f_filialeids:{
230
+ type: String
231
+ },
232
+ style: {
233
+ type: String,
234
+ default: 'col-sm-2 form-group'
235
+ },
236
+ f_special:{
237
+ type: String
238
+ }
239
+ },
240
+ ready(){
241
+ this.search()
242
+ },
243
+ methods: {
244
+ chooseAll(){
245
+ console.log(this.checkall)
246
+ if(this.checkall){
247
+ this.checkitem = []
248
+ for(let i=0;i<this.model.rows.length;i++){
249
+ if(this.model.rows[i].areacount<1){
250
+ this.checkitem.push(this.model.rows[i].id)
251
+ }
252
+ }
253
+ }else{
254
+ this.checkitem = []
255
+ }
256
+ },
257
+ chooseOne(e, row, rows) {
258
+ console.log("row", row);
259
+ let checked = e.target.checked;
260
+ console.log("state", e.target.checked);
261
+ if(checked===false){
262
+ this.checkitem.splice(this.checkitem.indexOf(row.id), 1)
263
+ } else {
264
+ this.checkitem.push(row.id)
265
+ }
266
+ },
267
+ ischecked(row){
268
+ return this.checkitem.indexOf(row)>-1
269
+ },
270
+ operate (f_residential_area_id,f_residential_area) {
271
+ this.$parent.areaShow = false;
272
+ this.$parent.usershow=true
273
+ this.$parent.f_residential_area_id=f_residential_area_id
274
+ this.$parent.f_residential_area=f_residential_area
275
+ },
276
+ hidden() {
277
+ this.criteriaShow = !this.criteriaShow
278
+ },
279
+ search() {
280
+ this.$refs.paged.$refs.cri.search()
281
+ },
282
+
283
+ async delete(row){
284
+ if(row.id){
285
+ var id = row.id
286
+ let useraredss = await this.$resetpost('rs/sql/address_singleTable',
287
+ {data: {
288
+ items: 'f_residential_area_id',
289
+ tablename: 't_user_address',
290
+ condition: `f_residential_area_id='${id}'`}
291
+ },
292
+ {resolveMsg: null, rejectMsg: null})
293
+ if(useraredss.data.length>0){
294
+ this.$showAlert('该小区下已有地址信息,无法删除!','warning',1000)
295
+ }else{
296
+ this.$resetdelete('rs/entity/t_area', {id: id}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
297
+ this.$dispatch('cancel')
298
+ })
299
+ }
300
+ }
301
+ },
302
+ deleteall(){
303
+ let msg =`共计删除${this.checkitem.length}个小区,请确认删除操作`
304
+ this.$showMessage(msg, ['confirm', 'cancel']).then((res) => {
305
+ if (res === 'confirm') {
306
+ //发出事件,用于建档或修正档案
307
+ this.$resetpost('rs/logic/deleteAreaAll',{data:{arr:this.checkitem}}).then((res)=>{
308
+ this.search()
309
+ })
310
+ }
311
+ })
312
+
313
+
314
+ },
315
+ add(val){
316
+ if (this.f_filialeids) {
317
+ this.$refs.paged.$refs.grid.selectStore.selected = null
318
+ this.$dispatch('add')
319
+ } else {
320
+ this.$showAlert('请先选择左上角的所在分公司', 'warning', 2000)
321
+ }
322
+ },
323
+ modify(val){
324
+ this.$refs.paged.$refs.grid.selectStore.selected = null
325
+ this.$dispatch('modify',val)
326
+ },
327
+ selfSearch (args) {
328
+ this.checkall = false;
329
+ this.$parent.usershow = false;
330
+ this.$parent.areaShow = false;
331
+ if (!this.f_orgid) {
332
+ this.getorg([this.$login.f.orgid])
333
+ }
334
+ console.log('查询。。。', this.f_orgid)
335
+ if(this.f_special){
336
+ args.condition = `${args.condition} and s.f_special='1' and s.f_filialeid = '${this.f_filialeids}'`
337
+ }else{
338
+ args.condition = `${args.condition} and s.f_filialeid = ${this.f_orgid}`
339
+ }
340
+ this.condition = args.condition
341
+ this.model.search(args.condition, args.model)
342
+ },
343
+ //清空
344
+ clear(){
345
+ this.$refs.paged.$refs.cri.model = {}
346
+ },
347
+ getorg (val) {
348
+ this.f_orgid = this.$login.convertToIn(val)
349
+ this.f_filialeids = val[0]
350
+ }
351
+ },
352
+ watch:{
353
+
354
+ }
355
+
356
+ }
357
+ </script>
@@ -66,24 +66,25 @@
66
66
  close-on-select v-ref:slice>
67
67
  </v-select>
68
68
  </div>
69
- <div v-if="!usertype" class="col-sm-6 form-group ">
69
+ <div v-if="!usertype" class="col-sm-6 form-group " :class="[$v.f_building.required ? 'has-error' : 'has-success']">
70
70
  <label for="f_address" class="font_normal_body">楼&emsp;&emsp;号</label>
71
71
  <input type="text" style="width:40%" v-model="model.f_building" class="input_search"
72
- placeholder="楼号"/>
72
+ placeholder="楼号" v-validate:f_building='{required: true }'/>
73
73
  <input type="text" style="width:20%" v-model="model.f_building_suffix" class="input_search"
74
74
  />
75
75
 
76
76
  </div>
77
- <div v-if="!usertype" class="col-sm-6 form-group ">
77
+ <div v-if="!usertype" class="col-sm-6 form-group " :class="[$v.f_unit.required ? 'has-error' : 'has-success']">
78
78
  <label for="f_address" class="font_normal_body">单&emsp;&emsp;元</label>
79
- <input type="text" style="width:40%" v-model="model.f_unit" class="input_search" placeholder="单元"/>
79
+ <input type="text" style="width:40%" v-model="model.f_unit" class="input_search" placeholder="单元"
80
+ v-validate:f_unit='{required: true }' />
80
81
  <input type="text" style="width:20%" v-model="model.f_unit_suffix" class="input_search"
81
82
  />
82
83
  </div>
83
- <div v-if="!usertype" class="col-sm-6 form-group ">
84
+ <div v-if="!usertype" class="col-sm-6 form-group " :class="[$v.f_floor.required ? 'has-error' : 'has-success']">
84
85
  <label for="f_address" class="font_normal_body">楼&emsp;&emsp;层</label>
85
86
  <input type="text" style="width:40%" v-model="model.f_floor" class="input_search"
86
- placeholder="楼层" />
87
+ placeholder="楼层" v-validate:f_floor='{required: true }' />
87
88
  <input type="text" style="width:20%" v-model="model.f_floor_suffix" class="input_search"
88
89
  />
89
90
  </div>
@@ -66,24 +66,25 @@
66
66
  close-on-select v-ref:slice>
67
67
  </v-select>
68
68
  </div>
69
- <div v-if="!usertype" class="col-sm-6 form-group ">
69
+ <div v-if="!usertype" class="col-sm-6 form-group " :class="[$v.f_building.required ? 'has-error' : 'has-success']">
70
70
  <label for="f_address" class="font_normal_body">楼&emsp;&emsp;号</label>
71
71
  <input type="text" style="width:40%" v-model="model.f_building" class="input_search"
72
- placeholder="楼号"/>
72
+ placeholder="楼号" v-validate:f_building='{required: true }'/>
73
73
  <input type="text" style="width:20%" v-model="model.f_building_suffix" class="input_search"
74
74
  />
75
75
 
76
76
  </div>
77
- <div v-if="!usertype" class="col-sm-6 form-group ">
77
+ <div v-if="!usertype" class="col-sm-6 form-group " :class="[$v.f_unit.required ? 'has-error' : 'has-success']">
78
78
  <label for="f_address" class="font_normal_body">单&emsp;&emsp;元</label>
79
- <input type="text" style="width:40%" v-model="model.f_unit" class="input_search" placeholder="单元"/>
79
+ <input type="text" style="width:40%" v-model="model.f_unit" class="input_search" placeholder="单元"
80
+ v-validate:f_unit='{required: true }' />
80
81
  <input type="text" style="width:20%" v-model="model.f_unit_suffix" class="input_search"
81
82
  />
82
83
  </div>
83
- <div v-if="!usertype" class="col-sm-6 form-group ">
84
+ <div v-if="!usertype" class="col-sm-6 form-group " :class="[$v.f_floor.required ? 'has-error' : 'has-success']">
84
85
  <label for="f_address" class="font_normal_body">楼&emsp;&emsp;层</label>
85
86
  <input type="text" style="width:40%" v-model="model.f_floor" class="input_search"
86
- placeholder="楼层" />
87
+ placeholder="楼层" v-validate:f_floor='{required: true }' />
87
88
  <input type="text" style="width:20%" v-model="model.f_floor_suffix" class="input_search"
88
89
  />
89
90
  </div>