|
@@ -18,56 +18,17 @@
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</a-col>
|
|
</a-col>
|
|
<a-col :md="5" :sm="24">
|
|
<a-col :md="5" :sm="24">
|
|
- <a-form-model-item label="调拨单号">
|
|
|
|
- <a-input id="allocationDetailsList-allocateNo" v-model.trim="queryParam.allocateNo" allowClear placeholder="请输入调拨单号"/>
|
|
|
|
|
|
+ <a-form-model-item label="产品名称">
|
|
|
|
+ <a-input id="allocationDetailsList-name" v-model.trim="queryParam.name" allowClear placeholder="请输入产品名称"/>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</a-col>
|
|
</a-col>
|
|
<a-col :md="5" :sm="24">
|
|
<a-col :md="5" :sm="24">
|
|
- <a-form-model-item label="产品编码">
|
|
|
|
- <a-input id="allocationDetailsList-queryWord" v-model.trim="queryParam.queryWord" allowClear placeholder="请输入产品编码"/>
|
|
|
|
|
|
+ <a-form-model-item label="品牌分类">
|
|
|
|
+ <v-select code="BRAND_TYPE" id="allocationDetailsList-dealerLevel" v-model="queryParam.dealerLevel" allowClear placeholder="请选择品牌分类"></v-select>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</a-col>
|
|
</a-col>
|
|
<template v-if="advanced">
|
|
<template v-if="advanced">
|
|
- <a-col :md="6" :sm="24">
|
|
|
|
- <a-form-model-item label="所在区域">
|
|
|
|
- <!-- <a-select id="allocationDetailsList-allocateTypeSn" v-model="queryParam.allocateTypeSn" placeholder="请选择区域" allowClear >
|
|
|
|
- <a-select-option v-for="item in allocateTypeList" :key="item.allocateTypeSn" :value="item.allocateTypeSn">{{ item.name }}</a-select-option>
|
|
|
|
- </a-select> -->
|
|
|
|
- <subarea id="allocationDetailsList-subarea" v-model="queryParam.subareaSn"></subarea>
|
|
|
|
- </a-form-model-item>
|
|
|
|
- </a-col>
|
|
|
|
- <a-col :md="6" :sm="24">
|
|
|
|
- <a-form-model-item label="省份">
|
|
|
|
- <a-select id="allocationDetailsList-state" v-model="queryParam.state" placeholder="请选择省份" allowClear >
|
|
|
|
- <a-select-option v-for="item in allocateTypeList" :key="item.allocateTypeSn" :value="item.allocateTypeSn">{{ item.name }}</a-select-option>
|
|
|
|
- </a-select>
|
|
|
|
- </a-form-model-item>
|
|
|
|
- </a-col>
|
|
|
|
- <a-col :md="6" :sm="24">
|
|
|
|
- <a-form-model-item label="排序">
|
|
|
|
- <a-select id="allocationDetailsList-state" v-model="queryParam.state" placeholder="请选择排序" allowClear >
|
|
|
|
- <a-select-option v-for="item in allocateTypeList" :key="item.allocateTypeSn" :value="item.allocateTypeSn">{{ item.name }}</a-select-option>
|
|
|
|
- </a-select>
|
|
|
|
- </a-form-model-item>
|
|
|
|
- </a-col>
|
|
|
|
- <a-col :md="6" :sm="24">
|
|
|
|
- <a-form-model-item label="操作员">
|
|
|
|
- <a-select id="allocationDetailsList-state" v-model="queryParam.state" placeholder="请选择操作员" allowClear >
|
|
|
|
- <a-select-option v-for="item in allocateTypeList" :key="item.allocateTypeSn" :value="item.allocateTypeSn">{{ item.name }}</a-select-option>
|
|
|
|
- </a-select>
|
|
|
|
- </a-form-model-item>
|
|
|
|
- </a-col>
|
|
|
|
- <a-col :md="6" :sm="24">
|
|
|
|
- <a-form-model-item label="产品名称">
|
|
|
|
- <a-input id="allocationDetailsList-name" v-model.trim="queryParam.name" allowClear placeholder="请输入产品名称"/>
|
|
|
|
- </a-form-model-item>
|
|
|
|
- </a-col>
|
|
|
|
- <a-col :md="6" :sm="24">
|
|
|
|
- <a-form-model-item label="客户名称">
|
|
|
|
- <a-input id="allocationDetailsList-name" v-model.trim="queryParam.name" allowClear placeholder="请输入客户名称"/>
|
|
|
|
- </a-form-model-item>
|
|
|
|
- </a-col>
|
|
|
|
- <a-col :md="6" :sm="24">
|
|
|
|
|
|
+ <a-col :md="7" :sm="24">
|
|
<a-form-model-item label="产品品牌">
|
|
<a-form-model-item label="产品品牌">
|
|
<a-select
|
|
<a-select
|
|
placeholder="请选择"
|
|
placeholder="请选择"
|
|
@@ -82,32 +43,28 @@
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</a-col>
|
|
</a-col>
|
|
<a-col :md="6" :sm="24">
|
|
<a-col :md="6" :sm="24">
|
|
- <a-form-model-item label="客户级别">
|
|
|
|
- <a-select
|
|
|
|
- placeholder="请选择"
|
|
|
|
- id="allocationDetailsList-productBrandSn"
|
|
|
|
- allowClear
|
|
|
|
- v-model="queryParam.productBrandSn"
|
|
|
|
- :showSearch="true"
|
|
|
|
- option-filter-prop="children"
|
|
|
|
- :filter-option="filterOption">
|
|
|
|
- <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
|
|
|
|
|
|
+ <a-form-model-item label="产品编码">
|
|
|
|
+ <a-input id="allocationDetailsList-queryWord" v-model.trim="queryParam.queryWord" allowClear placeholder="请输入产品编码"/>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ </a-col>
|
|
|
|
+ <a-col :md="6" :sm="24">
|
|
|
|
+ <a-form-model-item label="调拨类型名称">
|
|
|
|
+ <a-select id="allocationDetailsList-allocateTypeSn" v-model="queryParam.allocateTypeSn" placeholder="请选择调拨类型名称" allowClear >
|
|
|
|
+ <a-select-option v-for="item in allocateTypeList" :key="item.allocateTypeSn" :value="item.allocateTypeSn">{{ item.name }}</a-select-option>
|
|
</a-select>
|
|
</a-select>
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
</a-col>
|
|
</a-col>
|
|
<a-col :md="6" :sm="24">
|
|
<a-col :md="6" :sm="24">
|
|
- <a-form-item label="品牌">
|
|
|
|
- <a-select
|
|
|
|
- placeholder="请选择"
|
|
|
|
- id="allocationDetailsList-productBrandSn"
|
|
|
|
- allowClear
|
|
|
|
- v-model="queryParam.productBrandSn"
|
|
|
|
- :showSearch="true"
|
|
|
|
- option-filter-prop="children"
|
|
|
|
- :filter-option="filterOption">
|
|
|
|
- <a-select-option v-for="item in productBrandList" :key="item.brandSn" :value="item.brandSn">{{ item.brandName }}</a-select-option>
|
|
|
|
|
|
+ <a-form-model-item label="操作员">
|
|
|
|
+ <a-select id="allocationDetailsList-state" v-model="queryParam.state" placeholder="请选择操作员" allowClear >
|
|
|
|
+ <a-select-option v-for="item in allocateTypeList" :key="item.allocateTypeSn" :value="item.allocateTypeSn">{{ item.name }}</a-select-option>
|
|
</a-select>
|
|
</a-select>
|
|
- </a-form-item>
|
|
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ </a-col>
|
|
|
|
+ <a-col :md="6" :sm="24">
|
|
|
|
+ <a-form-model-item label="调拨单号">
|
|
|
|
+ <a-input id="allocationDetailsList-allocateNo" v-model.trim="queryParam.allocateNo" allowClear placeholder="请输入调拨单号"/>
|
|
|
|
+ </a-form-model-item>
|
|
</a-col>
|
|
</a-col>
|
|
<a-col :md="6" :sm="24">
|
|
<a-col :md="6" :sm="24">
|
|
<a-form-item label="产品分类">
|
|
<a-form-item label="产品分类">
|
|
@@ -123,6 +80,30 @@
|
|
v-model="productType" />
|
|
v-model="productType" />
|
|
</a-form-item>
|
|
</a-form-item>
|
|
</a-col>
|
|
</a-col>
|
|
|
|
+ <a-col :md="6" :sm="24">
|
|
|
|
+ <a-form-model-item label="客户名称">
|
|
|
|
+ <a-input id="allocationDetailsList-name" v-model.trim="queryParam.name" allowClear placeholder="请输入客户名称"/>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ </a-col>
|
|
|
|
+ <a-col :md="6" :sm="24">
|
|
|
|
+ <a-form-model-item label="客户级别">
|
|
|
|
+ <v-select code="DEALER_LEVEL" id="allocationDetailsList-dealerLevel" v-model="queryParam.dealerLevel" allowClear placeholder="请选择客户级别"></v-select>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ </a-col>
|
|
|
|
+ <a-col :md="6" :sm="24">
|
|
|
|
+ <a-form-model-item label="所在区域">
|
|
|
|
+ <subarea id="allocationDetailsList-subarea" v-model="queryParam.subareaSn"></subarea>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ </a-col>
|
|
|
|
+ <a-col :md="6" :sm="24">
|
|
|
|
+ <a-form-model-item label="地区">
|
|
|
|
+ <a-form-model-item prop="provinceSn">
|
|
|
|
+ <a-select id="allocationDetailsList-provinceSn" v-model="queryParam.provinceSn" placeholder="请选择省">
|
|
|
|
+ <a-select-option v-for="item in addrProvinceList" :value="item.areaSn" :key="item.areaSn + 'a'">{{ item.name }}</a-select-option>
|
|
|
|
+ </a-select>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ </a-form-model-item>
|
|
|
|
+ </a-col>
|
|
</template>
|
|
</template>
|
|
<a-col :md="7" :sm="24" style="margin-top: 3px;">
|
|
<a-col :md="7" :sm="24" style="margin-top: 3px;">
|
|
<a-button
|
|
<a-button
|
|
@@ -151,21 +132,21 @@
|
|
:columns="columns"
|
|
:columns="columns"
|
|
:data="loadData"
|
|
:data="loadData"
|
|
:defaultLoadData="false"
|
|
:defaultLoadData="false"
|
|
- :scroll="{ x: 2960 }"
|
|
|
|
|
|
+ :scroll="{ x: 3430 }"
|
|
bordered>
|
|
bordered>
|
|
<template slot="footer" slot-scope="currentPageData">
|
|
<template slot="footer" slot-scope="currentPageData">
|
|
<a-row :gutter="15">
|
|
<a-row :gutter="15">
|
|
<a-col :md="4" :sm="24">
|
|
<a-col :md="4" :sm="24">
|
|
- 总数量:263320
|
|
|
|
|
|
+ 总数量:{{ (totalData && (totalData.totalQty || totalData.totalQty==0)) ? totalData.totalQty : '--' }}
|
|
</a-col>
|
|
</a-col>
|
|
<a-col :md="4" :sm="24">
|
|
<a-col :md="4" :sm="24">
|
|
- 总进价:1,827,311.38
|
|
|
|
|
|
+ 总成本价:{{ (totalData && (totalData.totalQty || totalData.totalQty==0)) ? totalData.totalQty : '--' }}
|
|
</a-col>
|
|
</a-col>
|
|
<a-col :md="4" :sm="24">
|
|
<a-col :md="4" :sm="24">
|
|
- 总毛利:1187.11
|
|
|
|
|
|
+ 总毛利:{{ (totalData && (totalData.totalQty || totalData.totalQty==0)) ? totalData.totalQty : '--' }}
|
|
</a-col>
|
|
</a-col>
|
|
<a-col :md="4" :sm="24">
|
|
<a-col :md="4" :sm="24">
|
|
- 总售价:2,233,739.75
|
|
|
|
|
|
+ 总售价:{{ (totalData && (totalData.totalQty || totalData.totalQty==0)) ? totalData.totalQty : '--' }}
|
|
</a-col>
|
|
</a-col>
|
|
</a-row>
|
|
</a-row>
|
|
</template>
|
|
</template>
|
|
@@ -180,6 +161,8 @@ import rangeDate from '@/views/common/rangeDate.vue'
|
|
import subarea from '@/views/common/subarea.js'
|
|
import subarea from '@/views/common/subarea.js'
|
|
import { productBrandQuery } from '@/api/productBrand'
|
|
import { productBrandQuery } from '@/api/productBrand'
|
|
import { productTypeQuery } from '@/api/productType'
|
|
import { productTypeQuery } from '@/api/productType'
|
|
|
|
+import { getArea } from '@/api/data'
|
|
|
|
+import { allocateTypeAllList } from '@/api/allocateType'
|
|
import { allocateReportDetailList, allocateReportDetailCount } from '@/api/allocateReport'
|
|
import { allocateReportDetailList, allocateReportDetailCount } from '@/api/allocateReport'
|
|
export default {
|
|
export default {
|
|
components: { STable, VSelect, rangeDate, subarea },
|
|
components: { STable, VSelect, rangeDate, subarea },
|
|
@@ -199,7 +182,10 @@ export default {
|
|
productBrandSn: undefined, // 产品品牌
|
|
productBrandSn: undefined, // 产品品牌
|
|
productTypeSn1: '', // 产品一级分类
|
|
productTypeSn1: '', // 产品一级分类
|
|
productTypeSn2: '', // 产品二级分类
|
|
productTypeSn2: '', // 产品二级分类
|
|
- productTypeSn3: '' // 产品三级分类
|
|
|
|
|
|
+ productTypeSn3: '', // 产品三级分类
|
|
|
|
+ provinceSn: undefined,
|
|
|
|
+ citySn: undefined,
|
|
|
|
+ districtSn: undefined
|
|
},
|
|
},
|
|
productType: [],
|
|
productType: [],
|
|
labelCol: { span: 8 },
|
|
labelCol: { span: 8 },
|
|
@@ -211,25 +197,25 @@ export default {
|
|
columns: [
|
|
columns: [
|
|
{ title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
|
|
{ title: '序号', dataIndex: 'no', width: 80, align: 'center', fixed: 'left' },
|
|
{ title: '区域', dataIndex: 'subareaNames', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '区域', dataIndex: 'subareaNames', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
|
|
- { title: '调拨单号', dataIndex: 'allocateNo', width: 200, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
|
|
|
|
|
|
+ { title: '调拨单号', dataIndex: 'allocateNo', width: 220, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
|
|
{ title: '调拨开单日期', dataIndex: 'allocateDate', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '调拨开单日期', dataIndex: 'allocateDate', width: 160, align: 'center', customRender: function (text) { return text || '--' } },
|
|
- { title: '省份', dataIndex: 'data4', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
- { title: '客户名称', dataIndex: 'data5', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') }, ellipsis: true },
|
|
|
|
- { title: '客户类型', dataIndex: 'data6', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
- { title: '品牌', dataIndex: 'data7', width: 200, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') }, ellipsis: true },
|
|
|
|
- { title: '二级类别', dataIndex: 'data8', width: 200, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
- { title: '产品名称', dataIndex: 'data9', align: 'center', sorter: true, customRender: function (text) { return ((text || text == 0) ? text : '--') }, ellipsis: true },
|
|
|
|
- { title: '产品编码', dataIndex: 'data10', width: 120, align: 'center', sorter: true, customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
- { title: '调拨数量', dataIndex: 'data11', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
- { title: '单位', dataIndex: 'data12', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
- { title: '进价', dataIndex: 'data13', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
- { title: '售价', dataIndex: 'data14', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
- { title: '总进价', dataIndex: 'data15', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
|
|
+ { title: '省份', dataIndex: 'dealerProvinceName', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
|
|
|
|
+ { title: '客户名称', dataIndex: 'targetName', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
|
|
|
|
+ { title: '客户级别', dataIndex: 'dealerLevelDictValue', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
|
|
|
|
+ { title: '品牌', dataIndex: 'productBrandName', width: 200, align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
|
|
|
|
+ { title: '二级分类', dataIndex: 'productTypeName2', width: 200, align: 'center', customRender: function (text) { return text || '--' } },
|
|
|
|
+ { title: '产品名称', dataIndex: 'productName', align: 'center', sorter: true, customRender: function (text) { return text || '--' }, ellipsis: true },
|
|
|
|
+ { title: '产品编码', dataIndex: 'productCode', width: 200, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
|
|
|
|
+ { title: '调拨数量', dataIndex: 'qty', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
+ { title: '单位', dataIndex: 'productUnit', width: 100, align: 'center', customRender: function (text) { return text || '--' } },
|
|
|
|
+ { title: '成本价', dataIndex: 'cost', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
+ { title: '售价', dataIndex: 'price', width: 100, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
+ { title: '总成本价', dataIndex: 'totalCost', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
{ title: '毛利', dataIndex: 'data16', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
{ title: '毛利', dataIndex: 'data16', width: 120, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
- { title: '仓库', dataIndex: 'data17', width: 120, align: 'center', sorter: true, customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
- { title: '仓位', dataIndex: 'data18', width: 120, align: 'center', sorter: true, customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
- { title: '操作员', dataIndex: 'data19', width: 120, align: 'center', sorter: true, customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
- { title: '调拨类型', dataIndex: 'data20', width: 140, align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } }
|
|
|
|
|
|
+ { title: '仓库', dataIndex: 'warehouseName', width: 200, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
|
|
|
|
+ { title: '仓位', dataIndex: 'warehouseLocationName', width: 200, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
|
|
|
|
+ { title: '操作员', dataIndex: 'creatorName', width: 150, align: 'center', sorter: true, customRender: function (text) { return text || '--' } },
|
|
|
|
+ { title: '调拨类型', dataIndex: 'data20', width: 140, align: 'center', customRender: function (text) { return text || '--' } }
|
|
],
|
|
],
|
|
// 加载数据方法 必须为 Promise 对象
|
|
// 加载数据方法 必须为 Promise 对象
|
|
loadData: parameter => {
|
|
loadData: parameter => {
|
|
@@ -253,6 +239,7 @@ export default {
|
|
allocateTypeList: [], // 调拨类型
|
|
allocateTypeList: [], // 调拨类型
|
|
productBrandList: [], // 品牌下拉数据
|
|
productBrandList: [], // 品牌下拉数据
|
|
productTypeList: [], // 分类下拉数据
|
|
productTypeList: [], // 分类下拉数据
|
|
|
|
+ addrProvinceList: [], // 省下拉
|
|
totalData: null // 合计
|
|
totalData: null // 合计
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -333,12 +320,52 @@ export default {
|
|
this.productTypeList = []
|
|
this.productTypeList = []
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
+ },
|
|
|
|
+ // 调拨类型
|
|
|
|
+ getAllocateTypeAllList () {
|
|
|
|
+ allocateTypeAllList().then(res => {
|
|
|
|
+ if (res.status == 200) {
|
|
|
|
+ this.allocateTypeList = res.data
|
|
|
|
+ } else {
|
|
|
|
+ this.allocateTypeList = []
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ // 省/市/区
|
|
|
|
+ getArea (leve, sn) {
|
|
|
|
+ let params
|
|
|
|
+ if (leve == 'province') {
|
|
|
|
+ params = { type: '2' }
|
|
|
|
+ } else {
|
|
|
|
+ params = { parentId: sn, type: leve == 'city' ? '3' : '4' }
|
|
|
|
+ }
|
|
|
|
+ getArea(params).then(res => {
|
|
|
|
+ if (res.status == 200) {
|
|
|
|
+ if (leve == 'province') {
|
|
|
|
+ this.addrProvinceList = res.data || []
|
|
|
|
+ } else if (leve == 'city') {
|
|
|
|
+ this.addrCityList = res.data || []
|
|
|
|
+ } else if (leve == 'district') {
|
|
|
|
+ this.addrDistrictList = res.data || []
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ if (leve == 'province') {
|
|
|
|
+ this.addrProvinceList = []
|
|
|
|
+ } else if (leve == 'city') {
|
|
|
|
+ this.addrCityList = []
|
|
|
|
+ } else if (leve == 'district') {
|
|
|
|
+ this.addrDistrictList = []
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
}
|
|
}
|
|
},
|
|
},
|
|
beforeRouteEnter (to, from, next) {
|
|
beforeRouteEnter (to, from, next) {
|
|
next(vm => {
|
|
next(vm => {
|
|
vm.getProductBrand()
|
|
vm.getProductBrand()
|
|
vm.getProductType()
|
|
vm.getProductType()
|
|
|
|
+ vm.getAllocateTypeAllList()
|
|
|
|
+ vm.getArea('province')
|
|
})
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|