Explorar el Código

Merge branch 'master' of http://git.zthymaoyi.com/gongdecai/wangluohuoyun-huozhuapp

gjy hace 3 años
padre
commit
6c0f96504f
Se han modificado 56 ficheros con 8321 adiciones y 57 borrados
  1. 361 0
      common/components/uni-rate.vue
  2. 864 0
      components/itmister-address-picker/city.json
  3. 864 0
      components/itmister-address-picker/city_other.json
  4. 340 0
      components/itmister-address-picker/itmister-address-picker-other.nvue
  5. 330 0
      components/itmister-address-picker/itmister-address-picker.nvue
  6. 1 1
      components/ossutil/uploadFile.js
  7. 96 13
      pages.json
  8. 734 0
      pages/carSource/index.vue
  9. 10 8
      pages/mine/company/editcompany.vue
  10. 217 0
      pages/mine/driverEvaluation.vue
  11. 356 0
      pages/mine/evaluate.vue
  12. 12 2
      pages/mine/index.vue
  13. 1 0
      pages/mine/settings/editAvatar.vue
  14. 1 1
      pages/news/index.vue
  15. 307 0
      pages/order/addEvaluation.vue
  16. 425 0
      pages/order/driverDetail.vue
  17. 226 0
      pages/order/evaluationRecord.vue
  18. 141 0
      pages/order/fk.vue
  19. 44 18
      pages/order/index.vue
  20. 141 0
      pages/order/jb.vue
  21. 12 4
      pages/order/orderDetails.vue
  22. 6 9
      pages/release/release.vue
  23. BIN
      static/ITkoala-amap/amap.png
  24. BIN
      static/ITkoala-amap/close.png
  25. BIN
      static/ITkoala-amap/selectedStart.png
  26. BIN
      static/ITkoala-amap/sharp.png
  27. BIN
      static/ITkoala-amap/start.png
  28. 1 1
      static/css/common.scss
  29. BIN
      static/iconfont.ttf
  30. BIN
      static/images/carSource/exchange.png
  31. BIN
      static/images/carSource/yaoqing.png
  32. 16 0
      uni_modules/uni-icons/changelog.md
  33. 1115 0
      uni_modules/uni-icons/components/uni-icons/icons.js
  34. 89 0
      uni_modules/uni-icons/components/uni-icons/uni-icons.vue
  35. 663 0
      uni_modules/uni-icons/components/uni-icons/uniicons.css
  36. BIN
      uni_modules/uni-icons/components/uni-icons/uniicons.ttf
  37. 86 0
      uni_modules/uni-icons/package.json
  38. 8 0
      uni_modules/uni-icons/readme.md
  39. 23 0
      uni_modules/uni-rate/changelog.md
  40. 88 0
      uni_modules/uni-rate/package.json
  41. 12 0
      uni_modules/uni-rate/readme.md
  42. 8 0
      uni_modules/uni-scss/changelog.md
  43. 1 0
      uni_modules/uni-scss/index.scss
  44. 82 0
      uni_modules/uni-scss/package.json
  45. 4 0
      uni_modules/uni-scss/readme.md
  46. 7 0
      uni_modules/uni-scss/styles/index.scss
  47. 3 0
      uni_modules/uni-scss/styles/setting/_border.scss
  48. 66 0
      uni_modules/uni-scss/styles/setting/_color.scss
  49. 55 0
      uni_modules/uni-scss/styles/setting/_radius.scss
  50. 56 0
      uni_modules/uni-scss/styles/setting/_space.scss
  51. 167 0
      uni_modules/uni-scss/styles/setting/_styles.scss
  52. 24 0
      uni_modules/uni-scss/styles/setting/_text.scss
  53. 146 0
      uni_modules/uni-scss/styles/setting/_variables.scss
  54. 19 0
      uni_modules/uni-scss/styles/tools/functions.scss
  55. 31 0
      uni_modules/uni-scss/theme.scss
  56. 62 0
      uni_modules/uni-scss/variables.scss

+ 361 - 0
common/components/uni-rate.vue

@@ -0,0 +1,361 @@
+<template>
+	<view>
+		<view ref="uni-rate" class="uni-rate">
+			<view class="uni-rate__icon" :class="{'uni-cursor-not-allowed': disabled}"
+				:style="{ 'margin-right': marginNumber + 'px' }" v-for="(star, index) in stars" :key="index"
+				@touchstart.stop="touchstart" @touchmove.stop="touchmove" @mousedown.stop="mousedown"
+				@mousemove.stop="mousemove" @mouseleave="mouseleave">
+				<uni-icons :color="color" :size="size" :type="isFill ? 'star-filled' : 'star'" />
+				<!-- #ifdef APP-NVUE -->
+				<view :style="{ width: star.activeWitch.replace('%','')*size/100+'px'}" class="uni-rate__icon-on">
+					<uni-icons style="text-align: left;" :color="disabled?'#ccc':activeColor" :size="size"
+						type="star-filled" />
+				</view>
+				<!-- #endif -->
+				<!-- #ifndef APP-NVUE -->
+				<view :style="{ width: star.activeWitch}" class="uni-rate__icon-on">
+					<uni-icons :color="disabled?disabledColor:activeColor" :size="size" type="star-filled" />
+				</view>
+				<!-- #endif -->
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	// #ifdef APP-NVUE
+	const dom = uni.requireNativePlugin('dom');
+	// #endif
+	/**
+	 * Rate 评分
+	 * @description 评分组件
+	 * @tutorial https://ext.dcloud.net.cn/plugin?id=33
+	 * @property {Boolean} 	isFill = [true|false] 		星星的类型,是否为实心类型, 默认为实心
+	 * @property {String} 	color 						未选中状态的星星颜色,默认为 "#ececec"
+	 * @property {String} 	activeColor 				选中状态的星星颜色,默认为 "#ffca3e"
+	 * @property {String} 	disabledColor 				禁用状态的星星颜色,默认为 "#c0c0c0"
+	 * @property {Number} 	size 						星星的大小
+	 * @property {Number} 	value/v-model 				当前评分
+	 * @property {Number} 	max 						最大评分评分数量,目前一分一颗星
+	 * @property {Number} 	margin 						星星的间距,单位 px
+	 * @property {Boolean} 	disabled = [true|false] 	是否为禁用状态,默认为 false
+	 * @property {Boolean} 	readonly = [true|false] 	是否为只读状态,默认为 false
+	 * @property {Boolean} 	allowHalf = [true|false] 	是否实现半星,默认为 false
+	 * @property {Boolean} 	touchable = [true|false] 	是否支持滑动手势,默认为 true
+	 * @event {Function} change 						uniRate 的 value 改变时触发事件,e={value:Number}
+	 */
+
+	export default {
+		name: "UniRate",
+		props: {
+			isFill: {
+				// 星星的类型,是否镂空
+				type: [Boolean, String],
+				default: true
+			},
+			color: {
+				// 星星未选中的颜色
+				type: String,
+				default: "#ececec"
+			},
+			activeColor: {
+				// 星星选中状态颜色
+				type: String,
+				default: "#ffca3e"
+			},
+			disabledColor: {
+				// 星星禁用状态颜色
+				type: String,
+				default: "#c0c0c0"
+			},
+			size: {
+				// 星星的大小
+				type: [Number, String],
+				default: 24
+			},
+			value: {
+				// 当前评分
+				type: [Number, String],
+				default: 0
+			},
+			modelValue: {
+				// 当前评分
+				type: [Number, String],
+				default: 0
+			},
+			max: {
+				// 最大评分
+				type: [Number, String],
+				default: 5
+			},
+			margin: {
+				// 星星的间距
+				type: [Number, String],
+				default: 0
+			},
+			disabled: {
+				// 是否可点击
+				type: [Boolean, String],
+				default: false
+			},
+			readonly: {
+				// 是否只读
+				type: [Boolean, String],
+				default: false
+			},
+			allowHalf: {
+				// 是否显示半星
+				type: [Boolean, String],
+				default: false
+			},
+			touchable: {
+				// 是否支持滑动手势
+				type: [Boolean, String],
+				default: true
+			}
+		},
+		data() {
+			return {
+				valueSync: "",
+				userMouseFristMove: true,
+				userRated: false,
+				userLastRate: 1
+			};
+		},
+		watch: {
+			value(newVal) {
+				this.valueSync = Number(newVal);
+			},
+			modelValue(newVal) {
+				this.valueSync = Number(newVal);
+			},
+		},
+		computed: {
+			stars() {
+				const value = this.valueSync ? this.valueSync : 0;
+				const starList = [];
+				const floorValue = Math.floor(value);
+				const ceilValue = Math.ceil(value);
+				for (let i = 0; i < this.max; i++) {
+					if (floorValue > i) {
+						starList.push({
+							activeWitch: "100%"
+						});
+					} else if (ceilValue - 1 === i) {
+						starList.push({
+							activeWitch: (value - floorValue) * 100 + "%"
+						});
+					} else {
+						starList.push({
+							activeWitch: "0"
+						});
+					}
+				}
+				return starList;
+			},
+
+			marginNumber() {
+				return Number(this.margin)
+			}
+		},
+		created() {
+			this.valueSync = Number(this.value || this.modelValue);
+			this._rateBoxLeft = 0
+			this._oldValue = null
+		},
+		mounted() {
+			setTimeout(() => {
+				this._getSize()
+			}, 100)
+			// #ifdef H5
+			this.PC = this.IsPC()
+			// #endif
+		},
+		methods: {
+			touchstart(e) {
+				// #ifdef H5
+				if (this.IsPC()) return
+				// #endif
+				if (this.readonly || this.disabled) return
+				const {
+					clientX,
+					screenX
+				} = e.changedTouches[0]
+				// TODO 做一下兼容,只有 Nvue 下才有 screenX,其他平台式 clientX
+				this._getRateCount(clientX || screenX)
+			},
+			touchmove(e) {
+				// #ifdef H5
+				if (this.IsPC()) return
+				// #endif
+				if (this.readonly || this.disabled || !this.touchable) return
+				const {
+					clientX,
+					screenX
+				} = e.changedTouches[0]
+				this._getRateCount(clientX || screenX)
+			},
+
+			/**
+			 * 兼容 PC @tian
+			 */
+
+			mousedown(e) {
+				// #ifdef H5
+				if (!this.IsPC()) return
+				if (this.readonly || this.disabled) return
+				const {
+					clientX,
+				} = e
+				this.userLastRate = this.valueSync
+				this._getRateCount(clientX)
+				this.userRated = true
+				// #endif
+			},
+			mousemove(e) {
+				// #ifdef H5
+				if (!this.IsPC()) return
+				if (this.userRated) return
+				if (this.userMouseFristMove) {
+					console.log('---mousemove----', this.valueSync);
+					this.userLastRate = this.valueSync
+					this.userMouseFristMove = false
+				}
+				if (this.readonly || this.disabled || !this.touchable) return
+				const {
+					clientX,
+				} = e
+				this._getRateCount(clientX)
+				// #endif
+			},
+			mouseleave(e) {
+				// #ifdef H5
+				if (!this.IsPC()) return
+				if (this.readonly || this.disabled || !this.touchable) return
+				if (this.userRated) {
+					this.userRated = false
+					return
+				}
+				this.valueSync = this.userLastRate
+				// #endif
+			},
+			// #ifdef H5
+			IsPC() {
+				var userAgentInfo = navigator.userAgent;
+				var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
+				var flag = true;
+				for (let v = 0; v < Agents.length - 1; v++) {
+					if (userAgentInfo.indexOf(Agents[v]) > 0) {
+						flag = false;
+						break;
+					}
+				}
+				return flag;
+			},
+			// #endif
+
+			/**
+			 * 获取星星个数
+			 */
+			_getRateCount(clientX) {
+				this._getSize()
+				const size = Number(this.size)
+				if (size === NaN) {
+					return new Error('size 属性只能设置为数字')
+				}
+				const rateMoveRange = clientX - this._rateBoxLeft
+				let index = parseInt(rateMoveRange / (size + this.marginNumber))
+				index = index < 0 ? 0 : index;
+				index = index > this.max ? this.max : index;
+				const range = parseInt(rateMoveRange - (size + this.marginNumber) * index);
+				let value = 0;
+				if (this._oldValue === index && !this.PC) return;
+				this._oldValue = index;
+				if (this.allowHalf) {
+					if (range > (size / 2)) {
+						value = index + 1
+					} else {
+						value = index + 0.5
+					}
+				} else {
+					value = index + 1
+				}
+
+				value = Math.max(0.5, Math.min(value, this.max))
+				this.valueSync = value
+				this._onChange()
+			},
+
+			/**
+			 * 触发动态修改
+			 */
+			_onChange() {
+
+				this.$emit("input", this.valueSync);
+				this.$emit("update:modelValue", this.valueSync);
+				this.$emit("change", {
+					value: this.valueSync
+				});
+			},
+			/**
+			 * 获取星星距离屏幕左侧距离
+			 */
+			_getSize() {
+				// #ifndef APP-NVUE
+				uni.createSelectorQuery()
+					.in(this)
+					.select('.uni-rate')
+					.boundingClientRect()
+					.exec(ret => {
+						if (ret) {
+							this._rateBoxLeft = ret[0].left
+						}
+					})
+				// #endif
+				// #ifdef APP-NVUE
+				dom.getComponentRect(this.$refs['uni-rate'], (ret) => {
+					const size = ret.size
+					if (size) {
+						this._rateBoxLeft = size.left
+					}
+				})
+				// #endif
+			}
+		}
+	};
+</script>
+
+<style lang="scss">
+	.uni-rate {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		line-height: 1;
+		font-size: 0;
+		flex-direction: row;
+		/* #ifdef H5 */
+		cursor: pointer;
+		/* #endif */
+	}
+
+	.uni-rate__icon {
+		position: relative;
+		line-height: 1;
+		font-size: 0;
+	}
+
+	.uni-rate__icon-on {
+		overflow: hidden;
+		position: absolute;
+		top: 0;
+		left: 0;
+		line-height: 1;
+		text-align: left;
+	}
+
+	.uni-cursor-not-allowed {
+		/* #ifdef H5 */
+		cursor: not-allowed !important;
+		/* #endif */
+	}
+</style>

+ 864 - 0
components/itmister-address-picker/city.json

@@ -0,0 +1,864 @@
+[
+
+{ "name": "北京", "city":[{"name":"北京", "area":["全市","东城区","西城区","崇文区","宣武区","朝阳区","丰台区","石景山区","海淀区","门头沟区","房山区","通州区","顺义区","昌平区","大兴区","平谷区","怀柔区","密云县","延庆县"]}]},
+
+{ "name": "天津", "city":[{"name":"天津", "area":["全市","和平区","河东区","河西区","南开区","河北区","红桥区","塘沽区","汉沽区","大港区","东丽区","西青区","津南区","北辰区","武清区","宝坻区","宁河县","静海县","蓟  县"]}]},
+
+{ "name": "河北", "city":[
+         {"name":"全省", "area":[]},
+         {"name":"石家庄", "area":["全市","长安区","桥东区","桥西区","新华区","郊  区","井陉矿区","井陉县","正定县","栾城县","行唐县","灵寿县","高邑县","深泽县","赞皇县","无极县","平山县","元氏县","赵  县","辛集市","藁","晋州市","新乐市","鹿泉市"]},
+
+         {"name":"唐山", "area":["全市","路南区","路北区","古冶区","开平区","新  区","丰润县","滦  县","滦南县","乐亭县","迁西县","玉田县","唐海县","遵化市","丰南市","迁安市"]},
+
+         {"name":"秦皇岛", "area":["全市","海港区","山海关区","北戴河区","青龙满族自治县","昌黎县","抚宁县","卢龙县"]},
+
+         {"name":"邯郸", "area":["全市","邯山区","丛台区","复兴区","峰峰矿区","邯郸县","临漳县","成安县","大名县","涉  县","磁  县","肥乡县","永年县","邱  县","鸡泽县","广平县","馆陶县","魏  县","曲周县","武安市"]},
+
+         {"name":"邢台", "area":["全市","桥东区","桥西区","邢台县","临城县","内丘县","柏乡县","隆尧县","任  县","南和县","宁晋县","巨鹿县","新河县","广宗县","平乡县","威  县","清河县","临西县","南宫市","沙河市"]},
+
+         {"name":"保定", "area":["全市","新市区","北市区","南市区","满城县","清苑县","涞水县","阜平县","徐水县","定兴县","唐  县","高阳县","容城县","涞源县","望都县","安新县","易  县","曲阳县","蠡  县","顺平县","博野","雄县","涿州市","定州市","安国市","高碑店市"]},
+
+         {"name":"张家口", "area":["全市","桥东区","桥西区","宣化区","下花园区","宣化县","张北县","康保县","沽源县","尚义县","蔚  县","阳原县","怀安县","万全县","怀来县","涿鹿县","赤城县","崇礼县"]},
+
+         {"name":"承德", "area":["全市","双桥区","双滦区","鹰手营子矿区","承德县","兴隆县","平泉县","滦平县","隆化县","丰宁满族自治县","宽城满族自治县","围场满族蒙古族自治县"]},
+
+         {"name":"沧州", "area":["全市","新华区","运河区","沧  县","青  县","东光县","海兴县","盐山县","肃宁县","南皮县","吴桥县","献  县","孟村回族自治县","泊头市","任丘市","黄骅市","河间市"]},
+
+         {"name":"廊坊", "area":["全市","安次区","固安县","永清县","香河县","大城县","文安县","大厂回族自治县","霸州市","三河市"]},
+
+         {"name":"衡水", "area":["全市","桃城区","枣强县","武邑县","武强县","饶阳县","安平县","故城县","景  县","阜城县","冀州市","深州市"]}
+
+      ]},
+
+{ "name": "山西", "city":[
+     {"name":"全省", "area":[]},
+     {"name":"太原", "area":["全市","小店区","迎泽区","杏花岭区","尖草坪区","万柏林区","晋源区","清徐县","阳曲县","娄烦县","古交市"]},
+
+     {"name":"大同", "area":["全市","城  区","矿  区","南郊区","新荣区","阳高县","天镇县","广灵县","灵丘县","浑源县","左云县","大同县"]},
+
+     {"name":"阳泉", "area":["全市","城  区","矿  区","郊  区","平定县","盂  县"]},
+
+     {"name":"长治", "area":["全市","城  区","郊  区","长治县","襄垣县","屯留县","平顺县","黎城县","壶关县","长子县","武乡县","沁  县","沁源县","潞城市"]},
+
+     {"name":"晋城", "area":["全市","城  区","沁水县","阳城县","陵川县","泽州县","高平市"]},
+
+     {"name":"朔州", "area":["全市","朔城区","平鲁区","山阴县","应  县","右玉县","怀仁县"]},
+
+     {"name":"忻州", "area":["全市","忻府区","原平市","定襄县","五台县","代  县","繁峙县","宁武县","静乐县","神池县","五寨县","岢岚县","河曲县","保德县","偏关县"]},
+
+     {"name":"吕梁", "area":["全市","离石区","孝义市","汾阳市","文水县","交城县","兴  县","临  县","柳林县","石楼县","岚  县","方山县","中阳县","交口县"]},
+
+     {"name":"晋中", "area":["全市","榆次市","介休市","榆社县","左权县","和顺县","昔阳县","寿阳县","太谷县","祁  县","平遥县","灵石县"]},
+
+     {"name":"临汾", "area":["全市","临汾市","侯马市","霍州市","曲沃县","翼城县","襄汾县","洪洞县","古  县","安泽县","浮山县","吉  县","乡宁县","蒲  县","大宁县","永和县","隰  县","汾西县"]},
+
+     {"name":"运城", "area":["全市","运城市","永济市","河津市","芮城县","临猗县","万荣县","新绛县","稷山县","闻喜县","夏  县","绛  县","平陆县","垣曲县"]}
+
+]},
+
+{ "name": "内蒙古", "city":[
+   {"name":"全省", "area":[]},
+   {"name":"呼和浩特", "area":["全市","新城区","回民区","玉泉区","郊  区","土默特左旗","托克托县","和林格尔县","清水河县","武川县"]},
+
+   {"name":"包头", "area":["全市","东河区","昆都伦区","青山区","石拐矿区","白云矿区","郊  区","土默特右旗","固阳县","达尔罕茂明安联合旗"]},
+
+   {"name":"乌海", "area":["全市","海勃湾区","海南区","乌达区"]},
+
+   {"name":"赤峰", "area":["全市","红山区","元宝山区","松山区","阿鲁科尔沁旗","巴林左旗","巴林右旗","林西县","克什克腾旗","翁牛特旗","喀喇沁旗","宁城县","敖汉旗"]},
+
+   {"name":"呼伦贝尔", "area":["全市","海拉尔市","满洲里市","扎兰屯市","牙克石市","根河市","额尔古纳市","阿荣旗","莫力达瓦达斡尔族自治旗","鄂伦春自治旗","鄂温克族自治旗","新巴尔虎右旗","新巴尔虎左旗","陈巴尔虎旗"]},
+
+   {"name":"兴安盟", "area":["全市","乌兰浩特市","阿尔山市","科尔沁右翼前旗","科尔沁右翼中旗","扎赉特旗","突泉县"]},
+
+   {"name":"通辽", "area":["全市","科尔沁区","霍林郭勒市","科尔沁左翼中旗","科尔沁左翼后旗","开鲁县","库伦旗","奈曼旗","扎鲁特旗"]},
+
+   {"name":"锡林郭勒盟", "area":["全市","二连浩特市","锡林浩特市","阿巴嘎旗","苏尼特左旗","苏尼特右旗","东乌珠穆沁旗","西乌珠穆沁旗","太仆寺旗","镶黄旗","正镶白旗","正蓝旗","多伦县"]},
+
+   {"name":"乌兰察布盟", "area":["全市","集宁市","丰镇市","卓资县","化德县","商都县","兴和县","凉城县","察哈尔右翼前旗","察哈尔右翼中旗","察哈尔右翼后旗","四子王旗"]},
+
+   {"name":"伊克昭盟", "area":["全市","东胜市","达拉特旗","准格尔旗","鄂托克前旗","鄂托克旗","杭锦旗","乌审旗","伊金霍洛旗"]},
+
+   {"name":"巴彦淖尔盟", "area":["全市","临河市","五原县","磴口县","乌拉特前旗","乌拉特中旗","乌拉特后旗","杭锦后旗"]},
+
+   {"name":"阿拉善盟", "area":["全市","阿拉善左旗","阿拉善右旗","额济纳旗"]}
+
+]},
+
+{ "name": "辽宁", "city":[
+{"name":"全省", "area":[]},
+{"name":"沈阳", "area":["全市","沈河区","皇姑区","和平区","大东区","铁西区","苏家屯区","东陵区","于洪区","新民市","法库县","辽中县","康平县","新城子区","其他"]},
+
+{"name":"大连", "area":["全市","西岗区","中山区","沙河口区","甘井子区","旅顺口区","金州区","瓦房店市","普兰店市","庄河市","长海县","其他"]},
+
+{"name":"鞍山", "area":["全市","铁东区","铁西区","立山区","千山区","海城市","台安县","岫岩满族自治县","其他"]},
+
+{"name":"抚顺", "area":["全市","顺城区","新抚区","东洲区","望花区","抚顺县","清原满族自治县","新宾满族自治县","其他"]},
+
+{"name":"本溪", "area":["全市","平山区","明山区","溪湖区","南芬区","本溪满族自治县","桓仁满族自治县","其他"]},
+
+{"name":"丹东", "area":["全市","振兴区","元宝区","振安区","东港市","凤城市","宽甸满族自治县","其他"]},
+
+{"name":"锦州", "area":["全市","太和区","古塔区","凌河区","凌海市","黑山县","义县","北宁市","其他"]},
+
+{"name":"营口", "area":["全市","站前区","西市区","鲅鱼圈区","老边区","大石桥市","盖州市","其他"]},
+
+{"name":"阜新", "area":["全市","海州区","新邱区","太平区","清河门区","细河区","彰武县","阜新蒙古族自治县","其他"]},
+
+{"name":"辽阳", "area":["全市","白塔区","文圣区","宏伟区","太子河区","弓长岭区","灯塔市","辽阳县","其他"]},
+
+{"name":"盘锦", "area":["全市","双台子区","兴隆台区","盘山县","大洼县","其他"]},
+
+{"name":"铁岭", "area":["全市","银州区","清河区","调兵山市","开原市","铁岭县","昌图县","西丰县","其他"]},
+
+{"name":"朝阳", "area":["全市","双塔区","龙城区","凌源市","北票市","朝阳县","建平县","喀喇沁左翼蒙古族自治县","其他"]},
+
+{"name":"葫芦岛", "area":["全市","龙港区","南票区","连山区","兴城市","绥中县","建昌县","其他"]}
+
+
+]},
+
+{ "name": "吉林", "city":[
+{"name":"全省", "area":[]},
+{"name":"长春", "area":["全市","朝阳区","宽城区","二道区","南关区","绿园区","双阳区","九台市","榆树市","德惠市","农安县","其他"]},
+
+{"name":"吉林", "area":["全市","船营区","昌邑区","龙潭区","丰满区","舒兰市","桦甸市","蛟河市","磐石市","永吉县","其他"]},
+
+{"name":"四平", "area":["全市","铁西区","铁东区","公主岭市","双辽市","梨树县","伊通满族自治县","其他"]},
+
+{"name":"辽源", "area":["全市","龙山区","西安区","东辽县","东丰县","其他"]},
+
+{"name":"通化", "area":["全市","东昌区","二道江区","梅河口市","集安市","通化县","辉南县","柳河县","其他"]},
+
+{"name":"白山", "area":["全市","八道江区","江源区","临江市","靖宇县","抚松县","长白朝鲜族自治县","其他"]},
+
+{"name":"松原", "area":["全市","宁江区","乾安县","长岭县","扶余县","前郭尔罗斯蒙古族自治县","其他"]},
+
+{"name":"白城", "area":["全市","洮北区","大安市","洮南市","镇赉县","通榆县","其他"]},
+
+{"name":"延边朝鲜族自治州", "area":["全市","延吉市","图们市","敦化市","龙井市","珲春市","和龙市","安图县","汪清县","其他"]}
+
+]},
+
+{ "name": "黑龙江", "city":[
+{"name":"全省", "area":[]},
+{"name":"哈尔滨", "area":["全市","松北区","道里区","南岗区","平房区","香坊区","道外区","呼兰区","阿城区","双城市","尚志市","五常市","宾县","方正县","通河县","巴彦县","延寿县","木兰县","依兰县","其他"]},
+
+{"name":"齐齐哈尔", "area":["全市","龙沙区","昂昂溪区","铁锋区","建华区","富拉尔基区","碾子山区","梅里斯达斡尔族区","讷河市","富裕县","拜泉县","甘南县","依安县","克山县","泰来县","克东县","龙江县","其他"]},
+
+{"name":"鹤岗", "area":["全市","兴山区","工农区","南山区","兴安区","向阳区","东山区","萝北县","绥滨县","其他"]},
+
+{"name":"双鸭山", "area":["全市","尖山区","岭东区","四方台区","宝山区","集贤县","宝清县","友谊县","饶河县","其他"]},
+
+{"name":"鸡西", "area":["全市","鸡冠区","恒山区","城子河区","滴道区","梨树区","麻山区","密山市","虎林市","鸡东县","其他"]},
+
+{"name":"大庆", "area":["全市","萨尔图区","红岗区","龙凤区","让胡路区","大同区","林甸县","肇州县","肇源县","杜尔伯特蒙古族自治县","其他"]},
+
+{"name":"伊春", "area":["全市","伊春区","带岭区","南岔区","金山屯区","西林区","美溪区","乌马河区","翠峦区","友好区","上甘岭区","五营区","红星区","新青区","汤旺河区","乌伊岭区","铁力市","嘉荫县","其他"]},
+
+{"name":"牡丹江", "area":["全市","爱民区","东安区","阳明区","西安区","绥芬河市","宁安市","海林市","穆棱市","林口县","东宁县","其他"]},
+
+{"name":"佳木斯", "area":["全市","向阳区","前进区","东风区","郊区","同江市","富锦市","桦川县","抚远县","桦南县","汤原县","其他"]},
+
+{"name":"七台河", "area":["全市","桃山区","新兴区","茄子河区","勃利县","其他"]},
+
+{"name":"黑河", "area":["全市","爱辉区","北安市","五大连池市","逊克县","嫩江县","孙吴县","其他"]},
+
+{"name":"绥化", "area":["全市","北林区","安达市","肇东市","海伦市","绥棱县","兰西县","明水县","青冈县","庆安县","望奎县","其他"]},
+
+{"name":"大兴安岭地区", "area":["全市","呼玛县","塔河县","漠河县","大兴安岭辖区","其他"]}
+
+]},
+
+{ "name": "上海", "city":[
+
+{"name":"上海", "area":["全市","黄浦区","卢湾区","徐汇区","长宁区","静安区","普陀区","闸北区","虹口区","杨浦区","宝山区","闵行区","嘉定区","松江区","金山区","青浦区","南汇区","奉贤区","浦东新区","崇明县","其他"]}
+
+]},
+
+{ "name": "江苏", "city":[
+{"name":"全省", "area":[]},
+{"name":"南京", "area":["全市","玄武区","白下区","秦淮区","建邺区","鼓楼区","下关区","栖霞区","雨花台区","浦口区","江宁区","六合区","溧水县","高淳县","其他"]},
+
+{"name":"苏州", "area":["全市","金阊区","平江区","沧浪区","虎丘区","吴中区","相城区","常熟市","张家港市","昆山市","吴江市","太仓市","其他"]},
+
+{"name":"无锡", "area":["全市","崇安区","南长区","北塘区","滨湖区","锡山区","惠山区","江阴市","宜兴市","其他"]},
+
+{"name":"常州", "area":["全市","钟楼区","天宁区","戚墅堰区","新北区","武进区","金坛市","溧阳市","其他"]},
+
+{"name":"镇江", "area":["全市","京口区","润州区","丹徒区","丹阳市","扬中市","句容市","其他"]},
+
+{"name":"南通", "area":["全市","崇川区","港闸区","通州市","如皋市","海门市","启东市","海安县","如东县","其他"]},
+
+{"name":"泰州", "area":["全市","海陵区","高港区","姜堰市","泰兴市","靖江市","兴化市","其他"]},
+
+{"name":"扬州", "area":["全市","广陵区","维扬区","邗江区","江都市","仪征市","高邮市","宝应县","其他"]},
+
+{"name":"盐城", "area":["全市","亭湖区","盐都区","大丰市","东台市","建湖县","射阳县","阜宁县","滨海县","响水县","其他"]},
+
+{"name":"连云港", "area":["全市","新浦区","海州区","连云区","东海县","灌云县","赣榆县","灌南县","其他"]},
+
+{"name":"徐州", "area":["全市","云龙区","鼓楼区","九里区","泉山区","贾汪区","邳州市","新沂市","铜山县","睢宁县","沛县","丰县","其他"]},
+
+{"name":"淮安", "area":["全市","清河区","清浦区","楚州区","淮阴区","涟水县","洪泽县","金湖县","盱眙县","其他"]},
+
+{"name":"宿迁", "area":["全市","宿城区","宿豫区","沭阳县","泗阳县","泗洪县","其他"]}
+
+]},
+
+{ "name": "浙江", "city":[
+{"name":"全省", "area":[]},
+{"name":"杭州", "area":["全市","拱墅区","西湖区","上城区","下城区","江干区","滨江区","余杭区","萧山区","建德市","富阳市","临安市","桐庐县","淳安县","其他"]},
+
+{"name":"宁波", "area":["全市","海曙区","江东区","江北区","镇海区","北仑区","鄞州区","余姚市","慈溪市","奉化市","宁海县","象山县","其他"]},
+
+{"name":"温州", "area":["全市","鹿城区","龙湾区","瓯海区","瑞安市","乐清市","永嘉县","洞头县","平阳县","苍南县","文成县","泰顺县","其他"]},
+
+{"name":"嘉兴", "area":["全市","秀城区","秀洲区","海宁市","平湖市","桐乡市","嘉善县","海盐县","其他"]},
+
+{"name":"湖州", "area":["全市","吴兴区","南浔区","长兴县","德清县","安吉县","其他"]},
+
+{"name":"绍兴", "area":["越城区","诸暨市","上虞市","嵊州市","绍兴县","新昌县","其他"]},
+
+{"name":"金华", "area":["全市","婺城区","金东区","兰溪市","义乌市","东阳市","永康市","武义县","浦江县","磐安县","其他"]},
+
+{"name":"衢州", "area":["全市","柯城区","衢江区","江山市","龙游县","常山县","开化县","其他"]},
+
+{"name":"舟山", "area":["全市","定海区","普陀区","岱山县","嵊泗县","其他"]},
+
+{"name":"台州", "area":["全市","椒江区","黄岩区","路桥区","临海市","温岭市","玉环县","天台县","仙居县","三门县","其他"]},
+
+{"name":"丽水", "area":["全市","莲都区","龙泉市","缙云县","青田县","云和县","遂昌县","松阳县","庆元县","景宁畲族自治县","其他"]}
+
+]},
+
+{ "name": "安徽", "city":[
+{"name":"全省", "area":[]},
+{"name":"合肥", "area":["全市","庐阳区","瑶海区","蜀山区","包河区","长丰县","肥东县","肥西县","其他"]},
+
+{"name":"芜湖", "area":["全市","镜湖区","弋江区","鸠江区","三山区","芜湖县","南陵县","繁昌县","其他"]},
+
+{"name":"蚌埠", "area":["全市","蚌山区","龙子湖区","禹会区","淮上区","怀远县","固镇县","五河县","其他"]},
+
+{"name":"淮南", "area":["全市","田家庵区","大通区","谢家集区","八公山区","潘集区","凤台县","其他"]},
+
+{"name":"马鞍山", "area":["全市","雨山区","花山区","金家庄区","当涂县","其他"]},
+
+{"name":"淮北", "area":["全市","相山区","杜集区","烈山区","濉溪县","其他"]},
+
+{"name":"铜陵", "area":["全市","铜官山区","狮子山区","郊区","铜陵县","其他"]},
+
+{"name":"安庆", "area":["全市","迎江区","大观区","宜秀区","桐城市","宿松县","枞阳县","太湖县","怀宁县","岳西县","望江县","潜山县","其他"]},
+
+{"name":"黄山", "area":["全市","屯溪区","黄山区","徽州区","休宁县","歙县","祁门县","黟县","其他"]},
+
+{"name":"滁州", "area":["全市","琅琊区","南谯区","天长市","明光市","全椒县","来安县","定远县","凤阳县","其他"]},
+
+{"name":"阜阳", "area":["全市","颍州区","颍东区","颍泉区","界首市","临泉县","颍上县","阜南县","太和县","其他"]},
+
+{"name":"宿州", "area":["全市","埇桥区","萧县","泗县","砀山县","灵璧县","其他"]},
+
+{"name":"巢湖", "area":["全市","居巢区","含山县","无为县","庐江县","和县","其他"]},
+
+{"name":"六安", "area":["全市","金安区","裕安区","寿县","霍山县","霍邱县","舒城县","金寨县","其他"]},
+
+{"name":"亳州", "area":["全市","谯城区","利辛县","涡阳县","蒙城县","其他"]},
+
+{"name":"池州", "area":["全市","贵池区","东至县","石台县","青阳县","其他"]},
+
+{"name":"宣城", "area":["全市","宣州区","宁国市","广德县","郎溪县","泾县","旌德县","绩溪县","其他"]}
+
+]},
+
+{ "name": "福建", "city":[
+{"name":"全省", "area":[]},
+{"name":"福州", "area":["全市","鼓楼区","台江区","仓山区","马尾区","晋安区","福清市","长乐市","闽侯县","闽清县","永泰县","连江县","罗源县","平潭县","其他"]},
+
+{"name":"厦门", "area":["全市","思明区","海沧区","湖里区","集美区","同安区","翔安区","其他"]},
+
+{"name":"莆田", "area":["全市","城厢区","涵江区","荔城区","秀屿区","仙游县","其他"]},
+
+{"name":"三明", "area":["全市","梅列区","三元区","永安市","明溪县","将乐县","大田县","宁化县","建宁县","沙县","尤溪县","清流县","泰宁县","其他"]},
+
+{"name":"泉州", "area":["全市","鲤城区","丰泽区","洛江区","泉港区","石狮市","晋江市","南安市","惠安县","永春县","安溪县","德化县","金门县","其他"]},
+
+{"name":"漳州", "area":["全市","芗城区","龙文区","龙海市","平和县","南靖县","诏安县","漳浦县","华安县","东山县","长泰县","云霄县","其他"]},
+
+{"name":"南平", "area":["全市","延平区","建瓯市","邵武市","武夷山市","建阳市","松溪县","光泽县","顺昌县","浦城县","政和县","其他"]},
+
+{"name":"龙岩", "area":["全市","新罗区","漳平市","长汀县","武平县","上杭县","永定县","连城县","其他"]},
+
+{"name":"宁德", "area":["全市","蕉城区","福安市","福鼎市","寿宁县","霞浦县","柘荣县","屏南县","古田县","周宁县","其他"]}
+
+]},
+
+{ "name": "江西", "city":[
+{"name":"全省", "area":[]},
+{"name":"南昌", "area":["全市","东湖区","西湖区","青云谱区","湾里区","青山湖区","新建县","南昌县","进贤县","安义县","其他"]},
+
+{"name":"景德镇", "area":["全市","珠山区","昌江区","乐平市","浮梁县","其他"]},
+
+{"name":"萍乡", "area":["全市","安源区","湘东区","莲花县","上栗县","芦溪县","其他"]},
+
+{"name":"九江", "area":["全市","浔阳区","庐山区","瑞昌市","九江县","星子县","武宁县","彭泽县","永修县","修水县","湖口县","德安县","都昌县","其他"]},
+
+{"name":"新余", "area":["全市","渝水区","分宜县","其他"]},
+
+{"name":"鹰潭", "area":["全市","月湖区","贵溪市","余江县","其他"]},
+
+{"name":"赣州", "area":["全市","章贡区","瑞金市","南康市","石城县","安远县","赣县","宁都县","寻乌县","兴国县","定南县","上犹县","于都县","龙南县","崇义县","信丰县","全南县","大余县","会昌县","其他"]},
+
+{"name":"吉安", "area":["全市","吉州区","青原区","井冈山市","吉安县","永丰县","永新县","新干县","泰和县","峡江县","遂川县","安福县","吉水县","万安县","其他"]},
+
+{"name":"宜春", "area":["全市","袁州区","丰城市","樟树市","高安市","铜鼓县","靖安县","宜丰县","奉新县","万载县","上高县","其他"]},
+
+{"name":"抚州", "area":["全市","临川区","南丰县","乐安县","金溪县","南城县","东乡县","资溪县","宜黄县","广昌县","黎川县","崇仁县","其他"]},
+
+{"name":"上饶", "area":["全市","信州区","德兴市","上饶县","广丰县","鄱阳县","婺源县","铅山县","余干县","横峰县","弋阳县","玉山县","万年县","其他"]}
+
+]},
+
+{ "name": "山东", "city":[
+{"name":"全省", "area":[]},
+{"name":"济南", "area":["全市","市中区","历下区","天桥区","槐荫区","历城区","长清区","章丘市","平阴县","济阳县","商河县","其他"]},
+
+{"name":"青岛", "area":["全市","市南区","市北区","城阳区","四方区","李沧区","黄岛区","崂山区","胶南市","胶州市","平度市","莱西市","即墨市","其他"]},
+
+{"name":"淄博", "area":["全市","张店区","临淄区","淄川区","博山区","周村区","桓台县","高青县","沂源县","其他"]},
+
+{"name":"枣庄", "area":["全市","市中区","山亭区","峄城区","台儿庄区","薛城区","滕州市","其他"]},
+
+{"name":"东营", "area":["全市","东营区","河口区","垦利县","广饶县","利津县","其他"]},
+
+{"name":"烟台", "area":["全市","芝罘区","福山区","牟平区","莱山区","龙口市","莱阳市","莱州市","招远市","蓬莱市","栖霞市","海阳市","长岛县","其他"]},
+
+{"name":"潍坊", "area":["全市","潍城区","寒亭区","坊子区","奎文区","青州市","诸城市","寿光市","安丘市","高密市","昌邑市","昌乐县","临朐县","其他"]},
+
+{"name":"济宁", "area":["全市","市中区","任城区","曲阜市","兖州市","邹城市","鱼台县","金乡县","嘉祥县","微山县","汶上县","泗水县","梁山县","其他"]},
+
+{"name":"泰安", "area":["全市","泰山区","岱岳区","新泰市","肥城市","宁阳县","东平县","其他"]},
+
+{"name":"威海", "area":["全市","环翠区","乳山市","文登市","荣成市","其他"]},
+
+{"name":"日照", "area":["全市","东港区","岚山区","五莲县","莒县","其他"]},
+
+{"name":"莱芜", "area":["全市","莱城区","钢城区","其他"]},
+
+{"name":"临沂", "area":["全市","兰山区","罗庄区","河东区","沂南县","郯城县","沂水县","苍山县","费县","平邑县","莒南县","蒙阴县","临沭县","其他"]},
+
+{"name":"德州", "area":["全市","德城区","乐陵市","禹城市","陵县","宁津县","齐河县","武城县","庆云县","平原县","夏津县","临邑县","其他"]},
+
+{"name":"聊城", "area":["全市","东昌府区","临清市","高唐县","阳谷县","茌平县","莘县","东阿县","冠县","其他"]},
+
+{"name":"滨州", "area":["全市","滨城区","邹平县","沾化县","惠民县","博兴县","阳信县","无棣县","其他"]},
+
+{"name":"菏泽", "area":["全市","牡丹区","鄄城县","单县","郓城县","曹县","定陶县","巨野县","东明县","成武县","其他"]}
+
+]},
+
+{ "name": "河南", "city":[
+{"name":"全省", "area":[]},
+{"name":"郑州", "area":["全市","中原区","金水区","二七区","管城回族区","上街区","惠济区","巩义市","新郑市","新密市","登封市","荥阳市","中牟县","其他"]},
+
+{"name":"开封", "area":["全市","鼓楼区","龙亭区","顺河回族区","禹王台区","金明区","开封县","尉氏县","兰考县","杞县","通许县","其他"]},
+
+{"name":"洛阳", "area":["全市","西工区","老城区","涧西区","瀍河回族区","洛龙区","吉利区","偃师市","孟津县","汝阳县","伊川县","洛宁县","嵩县","宜阳县","新安县","栾川县","其他"]},
+
+{"name":"平顶山", "area":["全市","新华区","卫东区","湛河区","石龙区","汝州市","舞钢市","宝丰县","叶县","郏县","鲁山县","其他"]},
+
+{"name":"安阳", "area":["全市","北关区","文峰区","殷都区","龙安区","林州市","安阳县","滑县","内黄县","汤阴县","其他"]},
+
+{"name":"鹤壁", "area":["全市","淇滨区","山城区","鹤山区","浚县","淇县","其他"]},
+
+{"name":"新乡", "area":["全市","卫滨区","红旗区","凤泉区","牧野区","卫辉市","辉县市","新乡县","获嘉县","原阳县","长垣县","封丘县","延津县","其他"]},
+
+{"name":"焦作", "area":["全市","解放区","中站区","马村区","山阳区","沁阳市","孟州市","修武县","温县","武陟县","博爱县","其他"]},
+
+{"name":"濮阳", "area":["全市","华龙区","濮阳县","南乐县","台前县","清丰县","范县","其他"]},
+
+{"name":"许昌", "area":["全市","魏都区","禹州市","长葛市","许昌县","鄢陵县","襄城县","其他"]},
+
+{"name":"漯河", "area":["全市","源汇区","郾城区","召陵区","临颍县","舞阳县","其他"]},
+
+{"name":"三门峡", "area":["全市","湖滨区","义马市","灵宝市","渑池县","卢氏县","陕县","其他"]},
+
+{"name":"南阳", "area":["全市","卧龙区","宛城区","邓州市","桐柏县","方城县","淅川县","镇平县","唐河县","南召县","内乡县","新野县","社旗县","西峡县","其他"]},
+
+{"name":"商丘", "area":["全市","梁园区","睢阳区","永城市","宁陵县","虞城县","民权县","夏邑县","柘城县","睢县","其他"]},
+
+{"name":"信阳", "area":["全市","浉河区","平桥区","潢川县","淮滨县","息县","新县","商城县","固始县","罗山县","光山县","其他"]},
+
+{"name":"周口", "area":["全市","川汇区","项城市","商水县","淮阳县","太康县","鹿邑县","西华县","扶沟县","沈丘县","郸城县","其他"]},
+
+{"name":"驻马店", "area":["全市","驿城区","确山县","新蔡县","上蔡县","西平县","泌阳县","平舆县","汝南县","遂平县","正阳县","其他"]},
+
+{"name":"焦作", "area":["全市","济源市","其他"]}
+
+]},
+
+{ "name": "湖北", "city":[
+{"name":"全省", "area":[]},
+{"name":"武汉", "area":["全市","江岸区","武昌区","江汉区","硚口区","汉阳区","青山区","洪山区","东西湖区","汉南区","蔡甸区","江夏区","黄陂区","新洲区","其他"]},
+
+{"name":"黄石", "area":["全市","黄石港区","西塞山区","下陆区","铁山区","大冶市","阳新县","其他"]},
+
+{"name":"十堰", "area":["全市","张湾区","茅箭区","丹江口市","郧县","竹山县","房县","郧西县","竹溪县","其他"]},
+
+{"name":"荆州", "area":["全市","沙市区","荆州区","洪湖市","石首市","松滋市","监利县","公安县","江陵县","其他"]},
+
+{"name":"宜昌", "area":["全市","西陵区","伍家岗区","点军区","猇亭区","夷陵区","宜都市","当阳市","枝江市","秭归县","远安县","兴山县","五峰土家族自治县","长阳土家族自治县","其他"]},
+
+{"name":"襄樊", "area":["全市","襄城区","樊城区","襄阳区","老河口市","枣阳市","宜城市","南漳县","谷城县","保康县","其他"]},
+
+{"name":"鄂州", "area":["全市","鄂城区","华容区","梁子湖区","其他"]},
+
+{"name":"荆门", "area":["全市","东宝区","掇刀区","钟祥市","京山县","沙洋县","其他"]},
+
+{"name":"孝感", "area":["全市","孝南区","应城市","安陆市","汉川市","云梦县","大悟县","孝昌县","其他"]},
+
+{"name":"黄冈", "area":["全市","黄州区","麻城市","武穴市","红安县","罗田县","浠水县","蕲春县","黄梅县","英山县","团风县","其他"]},
+
+{"name":"咸宁", "area":["全市","咸安区","赤壁市","嘉鱼县","通山县","崇阳县","通城县","其他"]},
+
+{"name":"随州", "area":["全市","曾都区","广水市","其他"]},
+
+{"name":"恩施土家族苗族自治州", "area":["全市","恩施市","利川市","建始县","来凤县","巴东县","鹤峰县","宣恩县","咸丰县","其他"]},
+
+{"name":"仙桃", "area":["全市","仙桃"]},
+
+{"name":"天门", "area":["全市","天门"]},
+
+{"name":"潜江", "area":["全市","潜江"]},
+
+{"name":"神农架林区", "area":["全市","神农架林区"]}
+
+]},
+
+{ "name": "湖南", "city":[
+{"name":"全省", "area":[]},
+{"name":"长沙", "area":["全市","岳麓区","芙蓉区","天心区","开福区","雨花区","浏阳市","长沙县","望城县","宁乡县","其他"]},
+
+{"name":"株洲", "area":["全市","天元区","荷塘区","芦淞区","石峰区","醴陵市","株洲县","炎陵县","茶陵县","攸县","其他"]},
+
+{"name":"湘潭", "area":["全市","岳塘区","雨湖区","湘乡市","韶山市","湘潭县","其他"]},
+
+{"name":"衡阳", "area":["全市","雁峰区","珠晖区","石鼓区","蒸湘区","南岳区","耒阳市","常宁市","衡阳县","衡东县","衡山县","衡南县","祁东县","其他"]},
+
+{"name":"邵阳", "area":["全市","双清区","大祥区","北塔区","武冈市","邵东县","洞口县","新邵县","绥宁县","新宁县","邵阳县","隆回县","城步苗族自治县","其他"]},
+
+{"name":"岳阳", "area":["全市","岳阳楼区","云溪区","君山区","临湘市","汨罗市","岳阳县","湘阴县","平江县","华容县","其他"]},
+
+{"name":"常德", "area":["全市","武陵区","鼎城区","津市市","澧县","临澧县","桃源县","汉寿县","安乡县","石门县","其他"]},
+
+{"name":"张家界", "area":["全市","永定区","武陵源区","慈利县","桑植县","其他"]},
+
+{"name":"益阳", "area":["全市","赫山区","资阳区","沅江市","桃江县","南县","安化县","其他"]},
+
+{"name":"郴州", "area":["全市","北湖区","苏仙区","资兴市","宜章县","汝城县","安仁县","嘉禾县","临武县","桂东县","永兴县","桂阳县","其他"]},
+
+{"name":"永州", "area":["全市","冷水滩区","零陵区","祁阳县","蓝山县","宁远县","新田县","东安县","江永县","道县","双牌县","江华瑶族自治县","其他"]},
+
+{"name":"怀化", "area":["全市","鹤城区","洪江市","会同县","沅陵县","辰溪县","溆浦县","中方县","新晃侗族自治县","芷江侗族自治县","通道侗族自治县","靖州苗族侗族自治县","麻阳苗族自治县","其他"]},
+
+{"name":"娄底", "area":["全市","娄星区","冷水江市","涟源市","新化县","双峰县","其他"]},
+
+{"name":"湘西土家族苗族自治州", "area":["全市","吉首市","古丈县","龙山县","永顺县","凤凰县","泸溪县","保靖县","花垣县","其他"]}
+
+]},
+
+{ "name": "广东", "city":[
+{"name":"全省", "area":[]},
+{"name":"广州", "area":["全市","越秀区","荔湾区","海珠区","天河区","白云区","黄埔区","番禺区","花都区","南沙区","萝岗区","增城市","从化市","其他"]},
+
+{"name":"深圳", "area":["全市","福田区","罗湖区","南山区","宝安区","龙岗区","盐田区","其他"]},
+
+{"name":"东莞", "area":["全市","莞城","常平","塘厦","塘厦","塘厦","其他"]},
+
+{"name":"中山", "area":["全市","中山"]},
+
+{"name":"潮州", "area":["全市","湘桥区","潮安县","饶平县","其他"]},
+
+{"name":"揭阳", "area":["全市","榕城区","揭东县","揭西县","惠来县","普宁市","其他"]},
+
+{"name":"云浮", "area":["全市","云城区","新兴县","郁南县","云安县","罗定市","其他"]},
+
+{"name":"珠海", "area":["全市","香洲区","斗门区","金湾区","其他"]},
+
+{"name":"汕头", "area":["全市","金平区","濠江区","龙湖区","潮阳区","潮南区","澄海区","南澳县","其他"]},
+
+{"name":"韶关", "area":["全市","浈江区","武江区","曲江区","乐昌市","南雄市","始兴县","仁化县","翁源县","新丰县","乳源瑶族自治县","其他"]},
+
+{"name":"佛山", "area":["全市","禅城区","南海区","顺德区","三水区","高明区","其他"]},
+
+{"name":"江门", "area":["全市","蓬江区","江海区","新会区","恩平市","台山市","开平市","鹤山市","其他"]},
+
+{"name":"湛江", "area":["全市","赤坎区","霞山区","坡头区","麻章区","吴川市","廉江市","雷州市","遂溪县","徐闻县","其他"]},
+
+{"name":"茂名", "area":["全市","茂南区","茂港区","化州市","信宜市","高州市","电白县","其他"]},
+
+{"name":"肇庆", "area":["全市","端州区","鼎湖区","高要市","四会市","广宁县","怀集县","封开县","德庆县","其他"]},
+
+{"name":"惠州", "area":["全市","惠城区","惠阳区","博罗县","惠东县","龙门县","其他"]},
+
+{"name":"梅州", "area":["全市","梅江区","兴宁市","梅县","大埔县","丰顺县","五华县","平远县","蕉岭县","其他"]},
+
+{"name":"汕尾", "area":["全市","城区","陆丰市","海丰县","陆河县","其他"]},
+
+{"name":"河源", "area":["全市","源城区","紫金县","龙川县","连平县","和平县","东源县","其他"]},
+
+{"name":"阳江", "area":["全市","江城区","阳春市","阳西县","阳东县","其他"]},
+
+{"name":"清远", "area":["全市","清城区","英德市","连州市","佛冈县","阳山县","清新县","连山壮族瑶族自治县","连南瑶族自治县","其他"]}
+
+]},
+
+{ "name": "广西", "city":[
+{"name":"全省", "area":[]},
+{"name":"南宁", "area":["全市","青秀区","兴宁区","西乡塘区","良庆区","江南区","邕宁区","武鸣县","隆安县","马山县","上林县","宾阳县","横县","其他"]},
+
+{"name":"柳州", "area":["全市","城中区","鱼峰区","柳北区","柳南区","柳江县","柳城县","鹿寨县","融安县","融水苗族自治县","三江侗族自治县","其他"]},
+
+{"name":"桂林", "area":["全市","象山区","秀峰区","叠彩区","七星区","雁山区","阳朔县","临桂县","灵川县","全州县","平乐县","兴安县","灌阳县","荔浦县","资源县","永福县","龙胜各族自治县","恭城瑶族自治县","其他"]},
+
+{"name":"梧州", "area":["全市","万秀区","蝶山区","长洲区","岑溪市","苍梧县","藤县","蒙山县","其他"]},
+
+{"name":"北海", "area":["全市","海城区","银海区","铁山港区","合浦县","其他"]},
+
+{"name":"防城港", "area":["全市","港口区","防城区","东兴市","上思县","其他"]},
+
+{"name":"钦州", "area":["全市","钦南区","钦北区","灵山县","浦北县","其他"]},
+
+{"name":"贵港", "area":["全市","港北区","港南区","覃塘区","桂平市","平南县","其他"]},
+
+{"name":"玉林", "area":["全市","玉州区","北流市","容县","陆川县","博白县","兴业县","其他"]},
+
+{"name":"百色", "area":["全市","右江区","凌云县","平果县","西林县","乐业县","德保县","田林县","田阳县","靖西县","田东县","那坡县","隆林各族自治县","其他"]},
+
+{"name":"贺州", "area":["全市","八步区","钟山县","昭平县","富川瑶族自治县","其他"]},
+
+{"name":"河池", "area":["全市","金城江区","宜州市","天峨县","凤山县","南丹县","东兰县","都安瑶族自治县","罗城仫佬族自治县","巴马瑶族自治县","环江毛南族自治县","大化瑶族自治县","其他"]},
+
+{"name":"来宾", "area":["全市","兴宾区","合山市","象州县","武宣县","忻城县","金秀瑶族自治县","其他"]},
+
+{"name":"崇左", "area":["全市","江州区","凭祥市","宁明县","扶绥县","龙州县","大新县","天等县","其他"]}
+
+]},
+
+{ "name": "海南", "city":[
+{"name":"全省", "area":[]},
+{"name":"海口", "area":["全市","龙华区","秀英区","琼山区","美兰区","其他"]},
+
+{"name":"三亚", "area":["全市","三亚市","其他"]},
+
+{"name":"五指山", "area":["全市","五指山"]},
+
+{"name":"琼海", "area":["全市","琼海"]},
+
+{"name":"儋州", "area":["全市","儋州"]},
+
+{"name":"文昌", "area":["全市","文昌"]},
+
+{"name":"万宁", "area":["全市","万宁"]},
+
+{"name":"东方", "area":["全市","东方"]},
+
+{"name":"澄迈县", "area":["全市","澄迈县"]},
+
+{"name":"定安县", "area":["全市","定安县"]},
+
+{"name":"屯昌县", "area":["全市","屯昌县"]},
+
+{"name":"临高县", "area":["全市","临高县"]},
+
+{"name":"白沙黎族自治县", "area":["全市","白沙黎族自治县"]},
+
+{"name":"昌江黎族自治县", "area":["全市","昌江黎族自治县"]},
+
+{"name":"乐东黎族自治县", "area":["全市","乐东黎族自治县"]},
+
+{"name":"陵水黎族自治县", "area":["全市","陵水黎族自治县"]},
+
+{"name":"保亭黎族苗族自治县", "area":["全市","保亭黎族苗族自治县"]},
+
+{"name":"琼中黎族苗族自治县", "area":["全市","琼中黎族苗族自治县"]}
+
+]},
+
+{ "name": "重庆", "city":[
+
+{"name":"重庆", "area":["全市","渝中区","大渡口区","江北区","南岸区","北碚区","渝北区","巴南区","长寿区","双桥区","沙坪坝区","万盛区","万州区","涪陵区","黔江区","永川区","合川区","江津区","九龙坡区","南川区","綦江县","潼南县","荣昌县","璧山县","大足县","铜梁县","梁平县","开县","忠县","城口县","垫江县","武隆县","丰都县","奉节县","云阳县","巫溪县","巫山县","石柱土家族自治县","秀山土家族苗族自治县","酉阳土家族苗族自治县","彭水苗族土家族自治县","其他"]}
+
+]},
+
+{ "name": "四川", "city":[
+{"name":"全省", "area":[]},
+{"name":"成都", "area":["全市","青羊区","锦江区","金牛区","武侯区","成华区","龙泉驿区","青白江区","新都区","温江区","都江堰市","彭州市","邛崃市","崇州市","金堂县","郫县","新津县","双流县","蒲江县","大邑县","其他"]},
+
+{"name":"自贡", "area":["全市","大安区","自流井区","贡井区","沿滩区","荣县","富顺县","其他"]},
+
+{"name":"攀枝花", "area":["全市","仁和区","米易县","盐边县","东区","西区","其他"]},
+
+{"name":"泸州", "area":["全市","江阳区","纳溪区","龙马潭区","泸县","合江县","叙永县","古蔺县","其他"]},
+
+{"name":"德阳", "area":["全市","旌阳区","广汉市","什邡市","绵竹市","罗江县","中江县","其他"]},
+
+{"name":"绵阳", "area":["全市","涪城区","游仙区","江油市","盐亭县","三台县","平武县","安县","梓潼县","北川羌族自治县","其他"]},
+
+{"name":"广元", "area":["全市","元坝区","朝天区","青川县","旺苍县","剑阁县","苍溪县","市中区","其他"]},
+
+{"name":"遂宁", "area":["全市","船山区","安居区","射洪县","蓬溪县","大英县","其他"]},
+
+{"name":"内江", "area":["全市","市中区","东兴区","资中县","隆昌县","威远县","其他"]},
+
+{"name":"乐山", "area":["全市","市中区","五通桥区","沙湾区","金口河区","峨眉山市","夹江县","井研县","犍为县","沐川县","马边彝族自治县","峨边彝族自治县","其他"]},
+
+{"name":"南充", "area":["全市","顺庆区","高坪区","嘉陵区","阆中市","营山县","蓬安县","仪陇县","南部县","西充县","其他"]},
+
+{"name":"眉山", "area":["全市","东坡区","仁寿县","彭山县","洪雅县","丹棱县","青神县","其他"]},
+
+{"name":"宜宾", "area":["全市","翠屏区","宜宾县","兴文县","南溪县","珙县","长宁县","高县","江安县","筠连县","屏山县","其他"]},
+
+{"name":"广安", "area":["全市","广安区","华蓥市","岳池县","邻水县","武胜县","其他"]},
+
+{"name":"达州", "area":["全市","通川区","万源市","达县","渠县","宣汉县","开江县","大竹县","其他"]},
+
+{"name":"雅安", "area":["全市","雨城区","芦山县","石棉县","名山县","天全县","荥经县","宝兴县","汉源县","其他"]},
+
+{"name":"巴中", "area":["全市","巴州区","南江县","平昌县","通江县","其他"]},
+
+{"name":"资阳", "area":["全市","雁江区","简阳市","安岳县","乐至县","其他"]},
+
+{"name":"阿坝藏族羌族自治州", "area":["全市","马尔康县","九寨沟县","红原县","汶川县","阿坝县","理县","若尔盖县","小金县","黑水县","金川县","松潘县","壤塘县","茂县","其他"]},
+
+{"name":"甘孜藏族自治州", "area":["全市","康定县","丹巴县","炉霍县","九龙县","甘孜县","雅江县","新龙县","道孚县","白玉县","理塘县","德格县","乡城县","石渠县","稻城县","色达县","巴塘县","泸定县","得荣县","其他"]},
+
+{"name":"凉山彝族自治州", "area":["全市","西昌市","美姑县","昭觉县","金阳县","甘洛县","布拖县","雷波县","普格县","宁南县","喜德县","会东县","越西县","会理县","盐源县","德昌县","冕宁县","木里藏族自治县","其他"]}
+
+]},
+
+{ "name": "贵州", "city":[
+{"name":"全省", "area":[]},
+{"name":"贵阳", "area":["全市","南明区","云岩区","花溪区","乌当区","白云区","小河区","清镇市","开阳县","修文县","息烽县","其他"]},
+
+{"name":"六盘水", "area":["全市","钟山区","水城县","盘县","六枝特区","其他"]},
+
+{"name":"遵义", "area":["全市","红花岗区","汇川区","赤水市","仁怀市","遵义县","绥阳县","桐梓县","习水县","凤冈县","正安县","余庆县","湄潭县","道真仡佬族苗族自治县","务川仡佬族苗族自治县","其他"]},
+
+{"name":"安顺", "area":["全市","西秀区","普定县","平坝县","镇宁布依族苗族自治县","紫云苗族布依族自治县","关岭布依族苗族自治县","其他"]},
+
+{"name":"铜仁地区", "area":["全市","铜仁市","德江县","江口县","思南县","石阡县","玉屏侗族自治县","松桃苗族自治县","印江土家族苗族自治县","沿河土家族自治县","万山特区","其他"]},
+
+{"name":"毕节地区", "area":["全市","毕节市","黔西县","大方县","织金县","金沙县","赫章县","纳雍县","威宁彝族回族苗族自治县","其他"]},
+
+{"name":"黔西南布依族苗族自治州", "area":["全市","兴义市","望谟县","兴仁县","普安县","册亨县","晴隆县","贞丰县","安龙县","其他"]},
+
+{"name":"黔东南苗族侗族自治州", "area":["全市","凯里市","施秉县","从江县","锦屏县","镇远县","麻江县","台江县","天柱县","黄平县","榕江县","剑河县","三穗县","雷山县","黎平县","岑巩县","丹寨县","其他"]},
+
+{"name":"黔南布依族苗族自治州", "area":["全市","都匀市","福泉市","贵定县","惠水县","罗甸县","瓮安县","荔波县","龙里县","平塘县","长顺县","独山县","三都水族自治县","其他"]}
+
+]},
+
+{ "name": "云南", "city":[
+{"name":"全省", "area":[]},
+{"name":"昆明", "area":["全市","盘龙区","五华区","官渡区","西山区","东川区","安宁市","呈贡县","晋宁县","富民县","宜良县","嵩明县","石林彝族自治县","禄劝彝族苗族自治县","寻甸回族彝族自治县","其他"]},
+
+{"name":"曲靖", "area":["全市","麒麟区","宣威市","马龙县","沾益县","富源县","罗平县","师宗县","陆良县","会泽县","其他"]},
+
+{"name":"玉溪", "area":["全市","红塔区","江川县","澄江县","通海县","华宁县","易门县","峨山彝族自治县","新平彝族傣族自治县","元江哈尼族彝族傣族自治县","其他"]},
+
+{"name":"保山", "area":["全市","隆阳区","施甸县","腾冲县","龙陵县","昌宁县","其他"]},
+
+{"name":"昭通", "area":["全市","昭阳区","鲁甸县","巧家县","盐津县","大关县","永善县","绥江县","镇雄县","彝良县","威信县","水富县","其他"]},
+
+{"name":"丽江", "area":["全市","古城区","永胜县","华坪县","玉龙纳西族自治县","宁蒗彝族自治县","其他"]},
+
+{"name":"普洱", "area":["全市","思茅区","普洱哈尼族彝族自治县","墨江哈尼族自治县","景东彝族自治县","景谷傣族彝族自治县","镇沅彝族哈尼族拉祜族自治县","江城哈尼族彝族自治县","孟连傣族拉祜族佤族自治县","澜沧拉祜族自治县","西盟佤族自治县","其他"]},
+
+{"name":"临沧", "area":["全市","临翔区","凤庆县","云县","永德县","镇康县","双江拉祜族佤族布朗族傣族自治县","耿马傣族佤族自治县","沧源佤族自治县","其他"]},
+
+{"name":"德宏傣族景颇族自治州", "area":["全市","潞西市","瑞丽市","梁河县","盈江县","陇川县","其他"]},
+
+{"name":"怒江傈僳族自治州", "area":["全市","泸水县","福贡县","贡山独龙族怒族自治县","兰坪白族普米族自治县","其他"]},
+
+{"name":"迪庆藏族自治州", "area":["全市","香格里拉县","德钦县","维西傈僳族自治县","其他"]},
+
+{"name":"大理白族自治州", "area":["全市","大理市","祥云县","宾川县","弥渡县","永平县","云龙县","洱源县","剑川县","鹤庆县","漾濞彝族自治县","南涧彝族自治县","巍山彝族回族自治县","其他"]},
+
+{"name":"楚雄彝族自治州", "area":["全市","楚雄市","双柏县","牟定县","南华县","姚安县","大姚县","永仁县","元谋县","武定县","禄丰县","其他"]},
+
+{"name":"红河哈尼族彝族自治州", "area":["全市","蒙自县","个旧市","开远市","绿春县","建水县","石屏县","弥勒县","泸西县","元阳县","红河县","金平苗族瑶族傣族自治县","河口瑶族自治县","屏边苗族自治县","其他"]},
+
+{"name":"文山壮族苗族自治州", "area":["全市","文山县","砚山县","西畴县","麻栗坡县","马关县","丘北县","广南县","富宁县","其他"]},
+
+{"name":"西双版纳傣族自治州", "area":["全市","景洪市","勐海县","勐腊县","其他"]}
+
+]},
+
+{ "name": "西藏", "city":[
+{"name":"全省", "area":[]},
+{"name":"拉萨", "area":["全市","城关区","林周县","当雄县","尼木县","曲水县","堆龙德庆县","达孜县","墨竹工卡县","其他"]},
+
+{"name":"那曲地区", "area":["全市","那曲县","嘉黎县","比如县","聂荣县","安多县","申扎县","索县","班戈县","巴青县","尼玛县","其他"]},
+
+{"name":"昌都地区", "area":["全市","昌都县","江达县","贡觉县","类乌齐县","丁青县","察雅县","八宿县","左贡县","芒康县","洛隆县","边坝县","其他"]},
+
+{"name":"林芝地区", "area":["全市","林芝县","工布江达县","米林县","墨脱县","波密县","察隅县","朗县","其他"]},
+
+{"name":"山南地区", "area":["全市","乃东县","扎囊县","贡嘎县","桑日县","琼结县","曲松县","措美县","洛扎县","加查县","隆子县","错那县","浪卡子县","其他"]},
+
+{"name":"日喀则地区", "area":["全市","日喀则市","南木林县","江孜县","定日县","萨迦县","拉孜县","昂仁县","谢通门县","白朗县","仁布县","康马县","定结县","仲巴县","亚东县","吉隆县","聂拉木县","萨嘎县","岗巴县","其他"]},
+
+{"name":"阿里地区", "area":["全市","噶尔县","普兰县","札达县","日土县","革吉县","改则县","措勤县","其他"]}
+
+]},
+
+{ "name": "陕西", "city":[
+{"name":"全省", "area":[]},
+{"name":"西安", "area":["全市","莲湖区","新城区","碑林区","雁塔区","灞桥区","未央区","阎良区","临潼区","长安区","高陵县","蓝田县","户县","周至县","其他"]},
+
+{"name":"铜川", "area":["全市","耀州区","王益区","印台区","宜君县","其他"]},
+
+{"name":"宝鸡", "area":["全市","渭滨区","金台区","陈仓区","岐山县","凤翔县","陇县","太白县","麟游县","扶风县","千阳县","眉县","凤县","其他"]},
+
+{"name":"咸阳", "area":["全市","秦都区","渭城区","杨陵区","兴平市","礼泉县","泾阳县","永寿县","三原县","彬县","旬邑县","长武县","乾县","武功县","淳化县","其他"]},
+
+{"name":"渭南", "area":["全市","临渭区","韩城市","华阴市","蒲城县","潼关县","白水县","澄城县","华县","合阳县","富平县","大荔县","其他"]},
+
+{"name":"延安", "area":["全市","宝塔区","安塞县","洛川县","子长县","黄陵县","延川县","富县","延长县","甘泉县","宜川县","志丹县","黄龙县","吴起县","其他"]},
+
+{"name":"汉中", "area":["全市","汉台区","留坝县","镇巴县","城固县","南郑县","洋县","宁强县","佛坪县","勉县","西乡县","略阳县","其他"]},
+
+{"name":"榆林", "area":["全市","榆阳区","清涧县","绥德县","神木县","佳县","府谷县","子洲县","靖边县","横山县","米脂县","吴堡县","定边县","其他"]},
+
+{"name":"安康", "area":["全市","汉滨区","紫阳县","岚皋县","旬阳县","镇坪县","平利县","石泉县","宁陕县","白河县","汉阴县","其他"]},
+
+{"name":"商洛", "area":["全市","商州区","镇安县","山阳县","洛南县","商南县","丹凤县","柞水县","其他"]}
+
+]},
+
+{ "name": "甘肃", "city":[
+{"name":"全省", "area":[]},
+{"name":"兰州", "area":["全市","城关区","七里河区","西固区","安宁区","红古区","永登县","皋兰县","榆中县","其他"]},
+
+{"name":"嘉峪关", "area":["全市","嘉峪关市","其他"]},
+
+{"name":"金昌", "area":["全市","金川区","永昌县","其他"]},
+
+{"name":"白银", "area":["全市","白银区","平川区","靖远县","会宁县","景泰县","其他"]},
+
+{"name":"天水", "area":["全市","清水县","秦安县","甘谷县","武山县","张家川回族自治县","北道区","秦城区","其他"]},
+
+{"name":"武威", "area":["全市","凉州区","民勤县","古浪县","天祝藏族自治县","其他"]},
+
+{"name":"酒泉", "area":["全市","肃州区","玉门市","敦煌市","金塔县","肃北蒙古族自治县","阿克塞哈萨克族自治县","安西县","其他"]},
+
+{"name":"张掖", "area":["全市","甘州区","民乐县","临泽县","高台县","山丹县","肃南裕固族自治县","其他"]},
+
+{"name":"庆阳", "area":["全市","西峰区","庆城县","环县","华池县","合水县","正宁县","宁县","镇原县","其他"]},
+
+{"name":"平凉", "area":["全市","崆峒区","泾川县","灵台县","崇信县","华亭县","庄浪县","静宁县","其他"]},
+
+{"name":"定西", "area":["全市","安定区","通渭县","临洮县","漳县","岷县","渭源县","陇西县","其他"]},
+
+{"name":"陇南", "area":["全市","武都区","成县","宕昌县","康县","文县","西和县","礼县","两当县","徽县","其他"]},
+
+{"name":"临夏回族自治州", "area":["全市","临夏市","临夏县","康乐县","永靖县","广河县","和政县","东乡族自治县","积石山保安族东乡族撒拉族自治县","其他"]},
+
+{"name":"甘南藏族自治州", "area":["全市","合作市","临潭县","卓尼县","舟曲县","迭部县","玛曲县","碌曲县","夏河县","其他"]}
+
+]},
+
+{ "name": "青海", "city":[
+{"name":"全省", "area":[]},
+{"name":"西宁", "area":["全市","城中区","城东区","城西区","城北区","湟源县","湟中县","大通回族土族自治县","其他"]},
+
+{"name":"海东地区", "area":["全市","平安县","乐都县","民和回族土族自治县","互助土族自治县","化隆回族自治县","循化撒拉族自治县","其他"]},
+
+{"name":"海北藏族自治州", "area":["全市","海晏县","祁连县","刚察县","门源回族自治县","其他"]},
+
+{"name":"海南藏族自治州", "area":["全市","共和县","同德县","贵德县","兴海县","贵南县","其他"]},
+
+{"name":"黄南藏族自治州", "area":["全市","同仁县","尖扎县","泽库县","河南蒙古族自治县","其他"]},
+
+{"name":"果洛藏族自治州", "area":["全市","玛沁县","班玛县","甘德县","达日县","久治县","玛多县","其他"]},
+
+{"name":"玉树藏族自治州", "area":["全市","玉树县","杂多县","称多县","治多县","囊谦县","曲麻莱县","其他"]},
+
+{"name":"海西蒙古族藏族自治州", "area":["全市","德令哈市","格尔木市","乌兰县","都兰县","天峻县","其他"]}
+
+]},
+
+{ "name": "宁夏", "city":[
+{"name":"全省", "area":[]},
+{"name":"银川", "area":["全市","兴庆区","西夏区","金凤区","灵武市","永宁县","贺兰县","其他"]},
+
+{"name":"石嘴山", "area":["全市","大武口区","惠农区","平罗县","其他"]},
+
+{"name":"吴忠", "area":["全市","利通区","青铜峡市","盐池县","同心县","其他"]},
+
+{"name":"固原", "area":["全市","原州区","西吉县","隆德县","泾源县","彭阳县","其他"]},
+
+{"name":"中卫", "area":["全市","沙坡头区","中宁县","海原县","其他"]}
+
+]}, 
+
+{ "name": "新疆", "city":[
+{"name":"全省", "area":[]},
+{"name":"乌鲁木齐", "area":["全市","天山区","沙依巴克区","新市区","水磨沟区","头屯河区","达坂城区","东山区","乌鲁木齐县","其他"]},
+
+{"name":"克拉玛依", "area":["全市","克拉玛依区","独山子区","白碱滩区","乌尔禾区","其他"]},
+
+{"name":"吐鲁番地区", "area":["全市","吐鲁番市","托克逊县","鄯善县","其他"]},
+
+{"name":"哈密地区", "area":["全市","哈密市","伊吾县","巴里坤哈萨克自治县","其他"]},
+
+{"name":"和田地区", "area":["全市","和田市","和田县","洛浦县","民丰县","皮山县","策勒县","于田县","墨玉县","其他"]},
+
+{"name":"阿克苏地区", "area":["全市","阿克苏市","温宿县","沙雅县","拜城县","阿瓦提县","库车县","柯坪县","新和县","乌什县","其他"]},
+
+{"name":"喀什地区", "area":["全市","喀什市","巴楚县","泽普县","伽师县","叶城县","岳普湖县","疏勒县","麦盖提县","英吉沙县","莎车县","疏附县","塔什库尔干塔吉克自治县","其他"]},
+
+{"name":"克孜勒苏柯尔克孜自治州", "area":["全市","阿图什市","阿合奇县","乌恰县","阿克陶县","其他"]},
+
+{"name":"巴音郭楞蒙古自治州", "area":["全市","库尔勒市","和静县","尉犁县","和硕县","且末县","博湖县","轮台县","若羌县","焉耆回族自治县","其他"]},
+
+{"name":"昌吉回族自治州", "area":["全市","昌吉市","阜康市","奇台县","玛纳斯县","吉木萨尔县","呼图壁县","木垒哈萨克自治县","米泉市","其他"]},
+
+{"name":"博尔塔拉蒙古自治州", "area":["全市","博乐市","精河县","温泉县","其他"]},
+
+{"name":"石河子", "area":["全市","石河子"]},
+
+{"name":"阿拉尔", "area":["全市","阿拉尔"]},
+
+{"name":"图木舒克", "area":["全市","图木舒克"]},
+
+{"name":"五家渠", "area":["全市","五家渠"]},
+
+{"name":"伊犁哈萨克自治州", "area":["全市","伊宁市","奎屯市","伊宁县","特克斯县","尼勒克县","昭苏县","新源县","霍城县","巩留县","察布查尔锡伯自治县","塔城地区","阿勒泰地区","其他"]}
+
+]},
+
+{ "name": "台湾", "city":[
+
+{"name":"台湾", "area":["全市","台北市","高雄市","台北县","桃园县","新竹县","苗栗县","台中县","彰化县","南投县","云林县","嘉义县","台南县","高雄县","屏东县","宜兰县","花莲县","台东县","澎湖县","基隆市","新竹市","台中市","嘉义市","台南市","其他"]}
+
+]},
+
+{ "name": "澳门", "city":[
+
+{"name":"澳门", "area":["花地玛堂区","圣安多尼堂区","大堂区","望德堂区","风顺堂区","嘉模堂区","圣方济各堂区","路凼","其他"]}
+
+]},
+
+{ "name": "香港", "city":[
+
+{"name":"香港", "area":["中西区","湾仔区","东区","南区","深水埗区","油尖旺区","九龙城区","黄大仙区","观塘区","北区","大埔区","沙田区","西贡区","元朗区","屯门区","荃湾区","葵青区","离岛区","其他"]}
+
+]},
+
+{ "name": "钓鱼岛", "city":[
+
+{"name":"钓鱼岛", "area":["钓鱼岛"]}
+
+]}
+
+]

+ 864 - 0
components/itmister-address-picker/city_other.json

@@ -0,0 +1,864 @@
+[
+{ "name": "全国", "city":[{"name":"", "area":[]}]},
+{ "name": "北京", "city":[{"name":"北京", "area":["全市","东城区","西城区","崇文区","宣武区","朝阳区","丰台区","石景山区","海淀区","门头沟区","房山区","通州区","顺义区","昌平区","大兴区","平谷区","怀柔区","密云县","延庆县"]}]},
+
+{ "name": "天津", "city":[{"name":"天津", "area":["全市","和平区","河东区","河西区","南开区","河北区","红桥区","塘沽区","汉沽区","大港区","东丽区","西青区","津南区","北辰区","武清区","宝坻区","宁河县","静海县","蓟  县"]}]},
+
+{ "name": "河北", "city":[
+         {"name":"全省", "area":[]},
+         {"name":"石家庄", "area":["全市","长安区","桥东区","桥西区","新华区","郊  区","井陉矿区","井陉县","正定县","栾城县","行唐县","灵寿县","高邑县","深泽县","赞皇县","无极县","平山县","元氏县","赵  县","辛集市","藁","晋州市","新乐市","鹿泉市"]},
+
+         {"name":"唐山", "area":["全市","路南区","路北区","古冶区","开平区","新  区","丰润县","滦  县","滦南县","乐亭县","迁西县","玉田县","唐海县","遵化市","丰南市","迁安市"]},
+
+         {"name":"秦皇岛", "area":["全市","海港区","山海关区","北戴河区","青龙满族自治县","昌黎县","抚宁县","卢龙县"]},
+
+         {"name":"邯郸", "area":["全市","邯山区","丛台区","复兴区","峰峰矿区","邯郸县","临漳县","成安县","大名县","涉  县","磁  县","肥乡县","永年县","邱  县","鸡泽县","广平县","馆陶县","魏  县","曲周县","武安市"]},
+
+         {"name":"邢台", "area":["全市","桥东区","桥西区","邢台县","临城县","内丘县","柏乡县","隆尧县","任  县","南和县","宁晋县","巨鹿县","新河县","广宗县","平乡县","威  县","清河县","临西县","南宫市","沙河市"]},
+
+         {"name":"保定", "area":["全市","新市区","北市区","南市区","满城县","清苑县","涞水县","阜平县","徐水县","定兴县","唐  县","高阳县","容城县","涞源县","望都县","安新县","易  县","曲阳县","蠡  县","顺平县","博野","雄县","涿州市","定州市","安国市","高碑店市"]},
+
+         {"name":"张家口", "area":["全市","桥东区","桥西区","宣化区","下花园区","宣化县","张北县","康保县","沽源县","尚义县","蔚  县","阳原县","怀安县","万全县","怀来县","涿鹿县","赤城县","崇礼县"]},
+
+         {"name":"承德", "area":["全市","双桥区","双滦区","鹰手营子矿区","承德县","兴隆县","平泉县","滦平县","隆化县","丰宁满族自治县","宽城满族自治县","围场满族蒙古族自治县"]},
+
+         {"name":"沧州", "area":["全市","新华区","运河区","沧  县","青  县","东光县","海兴县","盐山县","肃宁县","南皮县","吴桥县","献  县","孟村回族自治县","泊头市","任丘市","黄骅市","河间市"]},
+
+         {"name":"廊坊", "area":["全市","安次区","固安县","永清县","香河县","大城县","文安县","大厂回族自治县","霸州市","三河市"]},
+
+         {"name":"衡水", "area":["全市","桃城区","枣强县","武邑县","武强县","饶阳县","安平县","故城县","景  县","阜城县","冀州市","深州市"]}
+
+      ]},
+
+{ "name": "山西", "city":[
+     {"name":"全省", "area":[]},
+     {"name":"太原", "area":["全市","小店区","迎泽区","杏花岭区","尖草坪区","万柏林区","晋源区","清徐县","阳曲县","娄烦县","古交市"]},
+
+     {"name":"大同", "area":["全市","城  区","矿  区","南郊区","新荣区","阳高县","天镇县","广灵县","灵丘县","浑源县","左云县","大同县"]},
+
+     {"name":"阳泉", "area":["全市","城  区","矿  区","郊  区","平定县","盂  县"]},
+
+     {"name":"长治", "area":["全市","城  区","郊  区","长治县","襄垣县","屯留县","平顺县","黎城县","壶关县","长子县","武乡县","沁  县","沁源县","潞城市"]},
+
+     {"name":"晋城", "area":["全市","城  区","沁水县","阳城县","陵川县","泽州县","高平市"]},
+
+     {"name":"朔州", "area":["全市","朔城区","平鲁区","山阴县","应  县","右玉县","怀仁县"]},
+
+     {"name":"忻州", "area":["全市","忻府区","原平市","定襄县","五台县","代  县","繁峙县","宁武县","静乐县","神池县","五寨县","岢岚县","河曲县","保德县","偏关县"]},
+
+     {"name":"吕梁", "area":["全市","离石区","孝义市","汾阳市","文水县","交城县","兴  县","临  县","柳林县","石楼县","岚  县","方山县","中阳县","交口县"]},
+
+     {"name":"晋中", "area":["全市","榆次市","介休市","榆社县","左权县","和顺县","昔阳县","寿阳县","太谷县","祁  县","平遥县","灵石县"]},
+
+     {"name":"临汾", "area":["全市","临汾市","侯马市","霍州市","曲沃县","翼城县","襄汾县","洪洞县","古  县","安泽县","浮山县","吉  县","乡宁县","蒲  县","大宁县","永和县","隰  县","汾西县"]},
+
+     {"name":"运城", "area":["全市","运城市","永济市","河津市","芮城县","临猗县","万荣县","新绛县","稷山县","闻喜县","夏  县","绛  县","平陆县","垣曲县"]}
+
+]},
+
+{ "name": "内蒙古", "city":[
+   {"name":"全省", "area":[]},
+   {"name":"呼和浩特", "area":["全市","新城区","回民区","玉泉区","郊  区","土默特左旗","托克托县","和林格尔县","清水河县","武川县"]},
+
+   {"name":"包头", "area":["全市","东河区","昆都伦区","青山区","石拐矿区","白云矿区","郊  区","土默特右旗","固阳县","达尔罕茂明安联合旗"]},
+
+   {"name":"乌海", "area":["全市","海勃湾区","海南区","乌达区"]},
+
+   {"name":"赤峰", "area":["全市","红山区","元宝山区","松山区","阿鲁科尔沁旗","巴林左旗","巴林右旗","林西县","克什克腾旗","翁牛特旗","喀喇沁旗","宁城县","敖汉旗"]},
+
+   {"name":"呼伦贝尔", "area":["全市","海拉尔市","满洲里市","扎兰屯市","牙克石市","根河市","额尔古纳市","阿荣旗","莫力达瓦达斡尔族自治旗","鄂伦春自治旗","鄂温克族自治旗","新巴尔虎右旗","新巴尔虎左旗","陈巴尔虎旗"]},
+
+   {"name":"兴安盟", "area":["全市","乌兰浩特市","阿尔山市","科尔沁右翼前旗","科尔沁右翼中旗","扎赉特旗","突泉县"]},
+
+   {"name":"通辽", "area":["全市","科尔沁区","霍林郭勒市","科尔沁左翼中旗","科尔沁左翼后旗","开鲁县","库伦旗","奈曼旗","扎鲁特旗"]},
+
+   {"name":"锡林郭勒盟", "area":["全市","二连浩特市","锡林浩特市","阿巴嘎旗","苏尼特左旗","苏尼特右旗","东乌珠穆沁旗","西乌珠穆沁旗","太仆寺旗","镶黄旗","正镶白旗","正蓝旗","多伦县"]},
+
+   {"name":"乌兰察布盟", "area":["全市","集宁市","丰镇市","卓资县","化德县","商都县","兴和县","凉城县","察哈尔右翼前旗","察哈尔右翼中旗","察哈尔右翼后旗","四子王旗"]},
+
+   {"name":"伊克昭盟", "area":["全市","东胜市","达拉特旗","准格尔旗","鄂托克前旗","鄂托克旗","杭锦旗","乌审旗","伊金霍洛旗"]},
+
+   {"name":"巴彦淖尔盟", "area":["全市","临河市","五原县","磴口县","乌拉特前旗","乌拉特中旗","乌拉特后旗","杭锦后旗"]},
+
+   {"name":"阿拉善盟", "area":["全市","阿拉善左旗","阿拉善右旗","额济纳旗"]}
+
+]},
+
+{ "name": "辽宁", "city":[
+{"name":"全省", "area":[]},
+{"name":"沈阳", "area":["全市","沈河区","皇姑区","和平区","大东区","铁西区","苏家屯区","东陵区","于洪区","新民市","法库县","辽中县","康平县","新城子区","其他"]},
+
+{"name":"大连", "area":["全市","西岗区","中山区","沙河口区","甘井子区","旅顺口区","金州区","瓦房店市","普兰店市","庄河市","长海县","其他"]},
+
+{"name":"鞍山", "area":["全市","铁东区","铁西区","立山区","千山区","海城市","台安县","岫岩满族自治县","其他"]},
+
+{"name":"抚顺", "area":["全市","顺城区","新抚区","东洲区","望花区","抚顺县","清原满族自治县","新宾满族自治县","其他"]},
+
+{"name":"本溪", "area":["全市","平山区","明山区","溪湖区","南芬区","本溪满族自治县","桓仁满族自治县","其他"]},
+
+{"name":"丹东", "area":["全市","振兴区","元宝区","振安区","东港市","凤城市","宽甸满族自治县","其他"]},
+
+{"name":"锦州", "area":["全市","太和区","古塔区","凌河区","凌海市","黑山县","义县","北宁市","其他"]},
+
+{"name":"营口", "area":["全市","站前区","西市区","鲅鱼圈区","老边区","大石桥市","盖州市","其他"]},
+
+{"name":"阜新", "area":["全市","海州区","新邱区","太平区","清河门区","细河区","彰武县","阜新蒙古族自治县","其他"]},
+
+{"name":"辽阳", "area":["全市","白塔区","文圣区","宏伟区","太子河区","弓长岭区","灯塔市","辽阳县","其他"]},
+
+{"name":"盘锦", "area":["全市","双台子区","兴隆台区","盘山县","大洼县","其他"]},
+
+{"name":"铁岭", "area":["全市","银州区","清河区","调兵山市","开原市","铁岭县","昌图县","西丰县","其他"]},
+
+{"name":"朝阳", "area":["全市","双塔区","龙城区","凌源市","北票市","朝阳县","建平县","喀喇沁左翼蒙古族自治县","其他"]},
+
+{"name":"葫芦岛", "area":["全市","龙港区","南票区","连山区","兴城市","绥中县","建昌县","其他"]}
+
+
+]},
+
+{ "name": "吉林", "city":[
+{"name":"全省", "area":[]},
+{"name":"长春", "area":["全市","朝阳区","宽城区","二道区","南关区","绿园区","双阳区","九台市","榆树市","德惠市","农安县","其他"]},
+
+{"name":"吉林", "area":["全市","船营区","昌邑区","龙潭区","丰满区","舒兰市","桦甸市","蛟河市","磐石市","永吉县","其他"]},
+
+{"name":"四平", "area":["全市","铁西区","铁东区","公主岭市","双辽市","梨树县","伊通满族自治县","其他"]},
+
+{"name":"辽源", "area":["全市","龙山区","西安区","东辽县","东丰县","其他"]},
+
+{"name":"通化", "area":["全市","东昌区","二道江区","梅河口市","集安市","通化县","辉南县","柳河县","其他"]},
+
+{"name":"白山", "area":["全市","八道江区","江源区","临江市","靖宇县","抚松县","长白朝鲜族自治县","其他"]},
+
+{"name":"松原", "area":["全市","宁江区","乾安县","长岭县","扶余县","前郭尔罗斯蒙古族自治县","其他"]},
+
+{"name":"白城", "area":["全市","洮北区","大安市","洮南市","镇赉县","通榆县","其他"]},
+
+{"name":"延边朝鲜族自治州", "area":["全市","延吉市","图们市","敦化市","龙井市","珲春市","和龙市","安图县","汪清县","其他"]}
+
+]},
+
+{ "name": "黑龙江", "city":[
+{"name":"全省", "area":[]},
+{"name":"哈尔滨", "area":["全市","松北区","道里区","南岗区","平房区","香坊区","道外区","呼兰区","阿城区","双城市","尚志市","五常市","宾县","方正县","通河县","巴彦县","延寿县","木兰县","依兰县","其他"]},
+
+{"name":"齐齐哈尔", "area":["全市","龙沙区","昂昂溪区","铁锋区","建华区","富拉尔基区","碾子山区","梅里斯达斡尔族区","讷河市","富裕县","拜泉县","甘南县","依安县","克山县","泰来县","克东县","龙江县","其他"]},
+
+{"name":"鹤岗", "area":["全市","兴山区","工农区","南山区","兴安区","向阳区","东山区","萝北县","绥滨县","其他"]},
+
+{"name":"双鸭山", "area":["全市","尖山区","岭东区","四方台区","宝山区","集贤县","宝清县","友谊县","饶河县","其他"]},
+
+{"name":"鸡西", "area":["全市","鸡冠区","恒山区","城子河区","滴道区","梨树区","麻山区","密山市","虎林市","鸡东县","其他"]},
+
+{"name":"大庆", "area":["全市","萨尔图区","红岗区","龙凤区","让胡路区","大同区","林甸县","肇州县","肇源县","杜尔伯特蒙古族自治县","其他"]},
+
+{"name":"伊春", "area":["全市","伊春区","带岭区","南岔区","金山屯区","西林区","美溪区","乌马河区","翠峦区","友好区","上甘岭区","五营区","红星区","新青区","汤旺河区","乌伊岭区","铁力市","嘉荫县","其他"]},
+
+{"name":"牡丹江", "area":["全市","爱民区","东安区","阳明区","西安区","绥芬河市","宁安市","海林市","穆棱市","林口县","东宁县","其他"]},
+
+{"name":"佳木斯", "area":["全市","向阳区","前进区","东风区","郊区","同江市","富锦市","桦川县","抚远县","桦南县","汤原县","其他"]},
+
+{"name":"七台河", "area":["全市","桃山区","新兴区","茄子河区","勃利县","其他"]},
+
+{"name":"黑河", "area":["全市","爱辉区","北安市","五大连池市","逊克县","嫩江县","孙吴县","其他"]},
+
+{"name":"绥化", "area":["全市","北林区","安达市","肇东市","海伦市","绥棱县","兰西县","明水县","青冈县","庆安县","望奎县","其他"]},
+
+{"name":"大兴安岭地区", "area":["全市","呼玛县","塔河县","漠河县","大兴安岭辖区","其他"]}
+
+]},
+
+{ "name": "上海", "city":[
+
+{"name":"上海", "area":["全市","黄浦区","卢湾区","徐汇区","长宁区","静安区","普陀区","闸北区","虹口区","杨浦区","宝山区","闵行区","嘉定区","松江区","金山区","青浦区","南汇区","奉贤区","浦东新区","崇明县","其他"]}
+
+]},
+
+{ "name": "江苏", "city":[
+{"name":"全省", "area":[]},
+{"name":"南京", "area":["全市","玄武区","白下区","秦淮区","建邺区","鼓楼区","下关区","栖霞区","雨花台区","浦口区","江宁区","六合区","溧水县","高淳县","其他"]},
+
+{"name":"苏州", "area":["全市","金阊区","平江区","沧浪区","虎丘区","吴中区","相城区","常熟市","张家港市","昆山市","吴江市","太仓市","其他"]},
+
+{"name":"无锡", "area":["全市","崇安区","南长区","北塘区","滨湖区","锡山区","惠山区","江阴市","宜兴市","其他"]},
+
+{"name":"常州", "area":["全市","钟楼区","天宁区","戚墅堰区","新北区","武进区","金坛市","溧阳市","其他"]},
+
+{"name":"镇江", "area":["全市","京口区","润州区","丹徒区","丹阳市","扬中市","句容市","其他"]},
+
+{"name":"南通", "area":["全市","崇川区","港闸区","通州市","如皋市","海门市","启东市","海安县","如东县","其他"]},
+
+{"name":"泰州", "area":["全市","海陵区","高港区","姜堰市","泰兴市","靖江市","兴化市","其他"]},
+
+{"name":"扬州", "area":["全市","广陵区","维扬区","邗江区","江都市","仪征市","高邮市","宝应县","其他"]},
+
+{"name":"盐城", "area":["全市","亭湖区","盐都区","大丰市","东台市","建湖县","射阳县","阜宁县","滨海县","响水县","其他"]},
+
+{"name":"连云港", "area":["全市","新浦区","海州区","连云区","东海县","灌云县","赣榆县","灌南县","其他"]},
+
+{"name":"徐州", "area":["全市","云龙区","鼓楼区","九里区","泉山区","贾汪区","邳州市","新沂市","铜山县","睢宁县","沛县","丰县","其他"]},
+
+{"name":"淮安", "area":["全市","清河区","清浦区","楚州区","淮阴区","涟水县","洪泽县","金湖县","盱眙县","其他"]},
+
+{"name":"宿迁", "area":["全市","宿城区","宿豫区","沭阳县","泗阳县","泗洪县","其他"]}
+
+]},
+
+{ "name": "浙江", "city":[
+{"name":"全省", "area":[]},
+{"name":"杭州", "area":["全市","拱墅区","西湖区","上城区","下城区","江干区","滨江区","余杭区","萧山区","建德市","富阳市","临安市","桐庐县","淳安县","其他"]},
+
+{"name":"宁波", "area":["全市","海曙区","江东区","江北区","镇海区","北仑区","鄞州区","余姚市","慈溪市","奉化市","宁海县","象山县","其他"]},
+
+{"name":"温州", "area":["全市","鹿城区","龙湾区","瓯海区","瑞安市","乐清市","永嘉县","洞头县","平阳县","苍南县","文成县","泰顺县","其他"]},
+
+{"name":"嘉兴", "area":["全市","秀城区","秀洲区","海宁市","平湖市","桐乡市","嘉善县","海盐县","其他"]},
+
+{"name":"湖州", "area":["全市","吴兴区","南浔区","长兴县","德清县","安吉县","其他"]},
+
+{"name":"绍兴", "area":["越城区","诸暨市","上虞市","嵊州市","绍兴县","新昌县","其他"]},
+
+{"name":"金华", "area":["全市","婺城区","金东区","兰溪市","义乌市","东阳市","永康市","武义县","浦江县","磐安县","其他"]},
+
+{"name":"衢州", "area":["全市","柯城区","衢江区","江山市","龙游县","常山县","开化县","其他"]},
+
+{"name":"舟山", "area":["全市","定海区","普陀区","岱山县","嵊泗县","其他"]},
+
+{"name":"台州", "area":["全市","椒江区","黄岩区","路桥区","临海市","温岭市","玉环县","天台县","仙居县","三门县","其他"]},
+
+{"name":"丽水", "area":["全市","莲都区","龙泉市","缙云县","青田县","云和县","遂昌县","松阳县","庆元县","景宁畲族自治县","其他"]}
+
+]},
+
+{ "name": "安徽", "city":[
+{"name":"全省", "area":[]},
+{"name":"合肥", "area":["全市","庐阳区","瑶海区","蜀山区","包河区","长丰县","肥东县","肥西县","其他"]},
+
+{"name":"芜湖", "area":["全市","镜湖区","弋江区","鸠江区","三山区","芜湖县","南陵县","繁昌县","其他"]},
+
+{"name":"蚌埠", "area":["全市","蚌山区","龙子湖区","禹会区","淮上区","怀远县","固镇县","五河县","其他"]},
+
+{"name":"淮南", "area":["全市","田家庵区","大通区","谢家集区","八公山区","潘集区","凤台县","其他"]},
+
+{"name":"马鞍山", "area":["全市","雨山区","花山区","金家庄区","当涂县","其他"]},
+
+{"name":"淮北", "area":["全市","相山区","杜集区","烈山区","濉溪县","其他"]},
+
+{"name":"铜陵", "area":["全市","铜官山区","狮子山区","郊区","铜陵县","其他"]},
+
+{"name":"安庆", "area":["全市","迎江区","大观区","宜秀区","桐城市","宿松县","枞阳县","太湖县","怀宁县","岳西县","望江县","潜山县","其他"]},
+
+{"name":"黄山", "area":["全市","屯溪区","黄山区","徽州区","休宁县","歙县","祁门县","黟县","其他"]},
+
+{"name":"滁州", "area":["全市","琅琊区","南谯区","天长市","明光市","全椒县","来安县","定远县","凤阳县","其他"]},
+
+{"name":"阜阳", "area":["全市","颍州区","颍东区","颍泉区","界首市","临泉县","颍上县","阜南县","太和县","其他"]},
+
+{"name":"宿州", "area":["全市","埇桥区","萧县","泗县","砀山县","灵璧县","其他"]},
+
+{"name":"巢湖", "area":["全市","居巢区","含山县","无为县","庐江县","和县","其他"]},
+
+{"name":"六安", "area":["全市","金安区","裕安区","寿县","霍山县","霍邱县","舒城县","金寨县","其他"]},
+
+{"name":"亳州", "area":["全市","谯城区","利辛县","涡阳县","蒙城县","其他"]},
+
+{"name":"池州", "area":["全市","贵池区","东至县","石台县","青阳县","其他"]},
+
+{"name":"宣城", "area":["全市","宣州区","宁国市","广德县","郎溪县","泾县","旌德县","绩溪县","其他"]}
+
+]},
+
+{ "name": "福建", "city":[
+{"name":"全省", "area":[]},
+{"name":"福州", "area":["全市","鼓楼区","台江区","仓山区","马尾区","晋安区","福清市","长乐市","闽侯县","闽清县","永泰县","连江县","罗源县","平潭县","其他"]},
+
+{"name":"厦门", "area":["全市","思明区","海沧区","湖里区","集美区","同安区","翔安区","其他"]},
+
+{"name":"莆田", "area":["全市","城厢区","涵江区","荔城区","秀屿区","仙游县","其他"]},
+
+{"name":"三明", "area":["全市","梅列区","三元区","永安市","明溪县","将乐县","大田县","宁化县","建宁县","沙县","尤溪县","清流县","泰宁县","其他"]},
+
+{"name":"泉州", "area":["全市","鲤城区","丰泽区","洛江区","泉港区","石狮市","晋江市","南安市","惠安县","永春县","安溪县","德化县","金门县","其他"]},
+
+{"name":"漳州", "area":["全市","芗城区","龙文区","龙海市","平和县","南靖县","诏安县","漳浦县","华安县","东山县","长泰县","云霄县","其他"]},
+
+{"name":"南平", "area":["全市","延平区","建瓯市","邵武市","武夷山市","建阳市","松溪县","光泽县","顺昌县","浦城县","政和县","其他"]},
+
+{"name":"龙岩", "area":["全市","新罗区","漳平市","长汀县","武平县","上杭县","永定县","连城县","其他"]},
+
+{"name":"宁德", "area":["全市","蕉城区","福安市","福鼎市","寿宁县","霞浦县","柘荣县","屏南县","古田县","周宁县","其他"]}
+
+]},
+
+{ "name": "江西", "city":[
+{"name":"全省", "area":[]},
+{"name":"南昌", "area":["全市","东湖区","西湖区","青云谱区","湾里区","青山湖区","新建县","南昌县","进贤县","安义县","其他"]},
+
+{"name":"景德镇", "area":["全市","珠山区","昌江区","乐平市","浮梁县","其他"]},
+
+{"name":"萍乡", "area":["全市","安源区","湘东区","莲花县","上栗县","芦溪县","其他"]},
+
+{"name":"九江", "area":["全市","浔阳区","庐山区","瑞昌市","九江县","星子县","武宁县","彭泽县","永修县","修水县","湖口县","德安县","都昌县","其他"]},
+
+{"name":"新余", "area":["全市","渝水区","分宜县","其他"]},
+
+{"name":"鹰潭", "area":["全市","月湖区","贵溪市","余江县","其他"]},
+
+{"name":"赣州", "area":["全市","章贡区","瑞金市","南康市","石城县","安远县","赣县","宁都县","寻乌县","兴国县","定南县","上犹县","于都县","龙南县","崇义县","信丰县","全南县","大余县","会昌县","其他"]},
+
+{"name":"吉安", "area":["全市","吉州区","青原区","井冈山市","吉安县","永丰县","永新县","新干县","泰和县","峡江县","遂川县","安福县","吉水县","万安县","其他"]},
+
+{"name":"宜春", "area":["全市","袁州区","丰城市","樟树市","高安市","铜鼓县","靖安县","宜丰县","奉新县","万载县","上高县","其他"]},
+
+{"name":"抚州", "area":["全市","临川区","南丰县","乐安县","金溪县","南城县","东乡县","资溪县","宜黄县","广昌县","黎川县","崇仁县","其他"]},
+
+{"name":"上饶", "area":["全市","信州区","德兴市","上饶县","广丰县","鄱阳县","婺源县","铅山县","余干县","横峰县","弋阳县","玉山县","万年县","其他"]}
+
+]},
+
+{ "name": "山东", "city":[
+{"name":"全省", "area":[]},
+{"name":"济南", "area":["全市","市中区","历下区","天桥区","槐荫区","历城区","长清区","章丘市","平阴县","济阳县","商河县","其他"]},
+
+{"name":"青岛", "area":["全市","市南区","市北区","城阳区","四方区","李沧区","黄岛区","崂山区","胶南市","胶州市","平度市","莱西市","即墨市","其他"]},
+
+{"name":"淄博", "area":["全市","张店区","临淄区","淄川区","博山区","周村区","桓台县","高青县","沂源县","其他"]},
+
+{"name":"枣庄", "area":["全市","市中区","山亭区","峄城区","台儿庄区","薛城区","滕州市","其他"]},
+
+{"name":"东营", "area":["全市","东营区","河口区","垦利县","广饶县","利津县","其他"]},
+
+{"name":"烟台", "area":["全市","芝罘区","福山区","牟平区","莱山区","龙口市","莱阳市","莱州市","招远市","蓬莱市","栖霞市","海阳市","长岛县","其他"]},
+
+{"name":"潍坊", "area":["全市","潍城区","寒亭区","坊子区","奎文区","青州市","诸城市","寿光市","安丘市","高密市","昌邑市","昌乐县","临朐县","其他"]},
+
+{"name":"济宁", "area":["全市","市中区","任城区","曲阜市","兖州市","邹城市","鱼台县","金乡县","嘉祥县","微山县","汶上县","泗水县","梁山县","其他"]},
+
+{"name":"泰安", "area":["全市","泰山区","岱岳区","新泰市","肥城市","宁阳县","东平县","其他"]},
+
+{"name":"威海", "area":["全市","环翠区","乳山市","文登市","荣成市","其他"]},
+
+{"name":"日照", "area":["全市","东港区","岚山区","五莲县","莒县","其他"]},
+
+{"name":"莱芜", "area":["全市","莱城区","钢城区","其他"]},
+
+{"name":"临沂", "area":["全市","兰山区","罗庄区","河东区","沂南县","郯城县","沂水县","苍山县","费县","平邑县","莒南县","蒙阴县","临沭县","其他"]},
+
+{"name":"德州", "area":["全市","德城区","乐陵市","禹城市","陵县","宁津县","齐河县","武城县","庆云县","平原县","夏津县","临邑县","其他"]},
+
+{"name":"聊城", "area":["全市","东昌府区","临清市","高唐县","阳谷县","茌平县","莘县","东阿县","冠县","其他"]},
+
+{"name":"滨州", "area":["全市","滨城区","邹平县","沾化县","惠民县","博兴县","阳信县","无棣县","其他"]},
+
+{"name":"菏泽", "area":["全市","牡丹区","鄄城县","单县","郓城县","曹县","定陶县","巨野县","东明县","成武县","其他"]}
+
+]},
+
+{ "name": "河南", "city":[
+{"name":"全省", "area":[]},
+{"name":"郑州", "area":["全市","中原区","金水区","二七区","管城回族区","上街区","惠济区","巩义市","新郑市","新密市","登封市","荥阳市","中牟县","其他"]},
+
+{"name":"开封", "area":["全市","鼓楼区","龙亭区","顺河回族区","禹王台区","金明区","开封县","尉氏县","兰考县","杞县","通许县","其他"]},
+
+{"name":"洛阳", "area":["全市","西工区","老城区","涧西区","瀍河回族区","洛龙区","吉利区","偃师市","孟津县","汝阳县","伊川县","洛宁县","嵩县","宜阳县","新安县","栾川县","其他"]},
+
+{"name":"平顶山", "area":["全市","新华区","卫东区","湛河区","石龙区","汝州市","舞钢市","宝丰县","叶县","郏县","鲁山县","其他"]},
+
+{"name":"安阳", "area":["全市","北关区","文峰区","殷都区","龙安区","林州市","安阳县","滑县","内黄县","汤阴县","其他"]},
+
+{"name":"鹤壁", "area":["全市","淇滨区","山城区","鹤山区","浚县","淇县","其他"]},
+
+{"name":"新乡", "area":["全市","卫滨区","红旗区","凤泉区","牧野区","卫辉市","辉县市","新乡县","获嘉县","原阳县","长垣县","封丘县","延津县","其他"]},
+
+{"name":"焦作", "area":["全市","解放区","中站区","马村区","山阳区","沁阳市","孟州市","修武县","温县","武陟县","博爱县","其他"]},
+
+{"name":"濮阳", "area":["全市","华龙区","濮阳县","南乐县","台前县","清丰县","范县","其他"]},
+
+{"name":"许昌", "area":["全市","魏都区","禹州市","长葛市","许昌县","鄢陵县","襄城县","其他"]},
+
+{"name":"漯河", "area":["全市","源汇区","郾城区","召陵区","临颍县","舞阳县","其他"]},
+
+{"name":"三门峡", "area":["全市","湖滨区","义马市","灵宝市","渑池县","卢氏县","陕县","其他"]},
+
+{"name":"南阳", "area":["全市","卧龙区","宛城区","邓州市","桐柏县","方城县","淅川县","镇平县","唐河县","南召县","内乡县","新野县","社旗县","西峡县","其他"]},
+
+{"name":"商丘", "area":["全市","梁园区","睢阳区","永城市","宁陵县","虞城县","民权县","夏邑县","柘城县","睢县","其他"]},
+
+{"name":"信阳", "area":["全市","浉河区","平桥区","潢川县","淮滨县","息县","新县","商城县","固始县","罗山县","光山县","其他"]},
+
+{"name":"周口", "area":["全市","川汇区","项城市","商水县","淮阳县","太康县","鹿邑县","西华县","扶沟县","沈丘县","郸城县","其他"]},
+
+{"name":"驻马店", "area":["全市","驿城区","确山县","新蔡县","上蔡县","西平县","泌阳县","平舆县","汝南县","遂平县","正阳县","其他"]},
+
+{"name":"焦作", "area":["全市","济源市","其他"]}
+
+]},
+
+{ "name": "湖北", "city":[
+{"name":"全省", "area":[]},
+{"name":"武汉", "area":["全市","江岸区","武昌区","江汉区","硚口区","汉阳区","青山区","洪山区","东西湖区","汉南区","蔡甸区","江夏区","黄陂区","新洲区","其他"]},
+
+{"name":"黄石", "area":["全市","黄石港区","西塞山区","下陆区","铁山区","大冶市","阳新县","其他"]},
+
+{"name":"十堰", "area":["全市","张湾区","茅箭区","丹江口市","郧县","竹山县","房县","郧西县","竹溪县","其他"]},
+
+{"name":"荆州", "area":["全市","沙市区","荆州区","洪湖市","石首市","松滋市","监利县","公安县","江陵县","其他"]},
+
+{"name":"宜昌", "area":["全市","西陵区","伍家岗区","点军区","猇亭区","夷陵区","宜都市","当阳市","枝江市","秭归县","远安县","兴山县","五峰土家族自治县","长阳土家族自治县","其他"]},
+
+{"name":"襄樊", "area":["全市","襄城区","樊城区","襄阳区","老河口市","枣阳市","宜城市","南漳县","谷城县","保康县","其他"]},
+
+{"name":"鄂州", "area":["全市","鄂城区","华容区","梁子湖区","其他"]},
+
+{"name":"荆门", "area":["全市","东宝区","掇刀区","钟祥市","京山县","沙洋县","其他"]},
+
+{"name":"孝感", "area":["全市","孝南区","应城市","安陆市","汉川市","云梦县","大悟县","孝昌县","其他"]},
+
+{"name":"黄冈", "area":["全市","黄州区","麻城市","武穴市","红安县","罗田县","浠水县","蕲春县","黄梅县","英山县","团风县","其他"]},
+
+{"name":"咸宁", "area":["全市","咸安区","赤壁市","嘉鱼县","通山县","崇阳县","通城县","其他"]},
+
+{"name":"随州", "area":["全市","曾都区","广水市","其他"]},
+
+{"name":"恩施土家族苗族自治州", "area":["全市","恩施市","利川市","建始县","来凤县","巴东县","鹤峰县","宣恩县","咸丰县","其他"]},
+
+{"name":"仙桃", "area":["全市","仙桃"]},
+
+{"name":"天门", "area":["全市","天门"]},
+
+{"name":"潜江", "area":["全市","潜江"]},
+
+{"name":"神农架林区", "area":["全市","神农架林区"]}
+
+]},
+
+{ "name": "湖南", "city":[
+{"name":"全省", "area":[]},
+{"name":"长沙", "area":["全市","岳麓区","芙蓉区","天心区","开福区","雨花区","浏阳市","长沙县","望城县","宁乡县","其他"]},
+
+{"name":"株洲", "area":["全市","天元区","荷塘区","芦淞区","石峰区","醴陵市","株洲县","炎陵县","茶陵县","攸县","其他"]},
+
+{"name":"湘潭", "area":["全市","岳塘区","雨湖区","湘乡市","韶山市","湘潭县","其他"]},
+
+{"name":"衡阳", "area":["全市","雁峰区","珠晖区","石鼓区","蒸湘区","南岳区","耒阳市","常宁市","衡阳县","衡东县","衡山县","衡南县","祁东县","其他"]},
+
+{"name":"邵阳", "area":["全市","双清区","大祥区","北塔区","武冈市","邵东县","洞口县","新邵县","绥宁县","新宁县","邵阳县","隆回县","城步苗族自治县","其他"]},
+
+{"name":"岳阳", "area":["全市","岳阳楼区","云溪区","君山区","临湘市","汨罗市","岳阳县","湘阴县","平江县","华容县","其他"]},
+
+{"name":"常德", "area":["全市","武陵区","鼎城区","津市市","澧县","临澧县","桃源县","汉寿县","安乡县","石门县","其他"]},
+
+{"name":"张家界", "area":["全市","永定区","武陵源区","慈利县","桑植县","其他"]},
+
+{"name":"益阳", "area":["全市","赫山区","资阳区","沅江市","桃江县","南县","安化县","其他"]},
+
+{"name":"郴州", "area":["全市","北湖区","苏仙区","资兴市","宜章县","汝城县","安仁县","嘉禾县","临武县","桂东县","永兴县","桂阳县","其他"]},
+
+{"name":"永州", "area":["全市","冷水滩区","零陵区","祁阳县","蓝山县","宁远县","新田县","东安县","江永县","道县","双牌县","江华瑶族自治县","其他"]},
+
+{"name":"怀化", "area":["全市","鹤城区","洪江市","会同县","沅陵县","辰溪县","溆浦县","中方县","新晃侗族自治县","芷江侗族自治县","通道侗族自治县","靖州苗族侗族自治县","麻阳苗族自治县","其他"]},
+
+{"name":"娄底", "area":["全市","娄星区","冷水江市","涟源市","新化县","双峰县","其他"]},
+
+{"name":"湘西土家族苗族自治州", "area":["全市","吉首市","古丈县","龙山县","永顺县","凤凰县","泸溪县","保靖县","花垣县","其他"]}
+
+]},
+
+{ "name": "广东", "city":[
+{"name":"全省", "area":[]},
+{"name":"广州", "area":["全市","越秀区","荔湾区","海珠区","天河区","白云区","黄埔区","番禺区","花都区","南沙区","萝岗区","增城市","从化市","其他"]},
+
+{"name":"深圳", "area":["全市","福田区","罗湖区","南山区","宝安区","龙岗区","盐田区","其他"]},
+
+{"name":"东莞", "area":["全市","莞城","常平","塘厦","塘厦","塘厦","其他"]},
+
+{"name":"中山", "area":["全市","中山"]},
+
+{"name":"潮州", "area":["全市","湘桥区","潮安县","饶平县","其他"]},
+
+{"name":"揭阳", "area":["全市","榕城区","揭东县","揭西县","惠来县","普宁市","其他"]},
+
+{"name":"云浮", "area":["全市","云城区","新兴县","郁南县","云安县","罗定市","其他"]},
+
+{"name":"珠海", "area":["全市","香洲区","斗门区","金湾区","其他"]},
+
+{"name":"汕头", "area":["全市","金平区","濠江区","龙湖区","潮阳区","潮南区","澄海区","南澳县","其他"]},
+
+{"name":"韶关", "area":["全市","浈江区","武江区","曲江区","乐昌市","南雄市","始兴县","仁化县","翁源县","新丰县","乳源瑶族自治县","其他"]},
+
+{"name":"佛山", "area":["全市","禅城区","南海区","顺德区","三水区","高明区","其他"]},
+
+{"name":"江门", "area":["全市","蓬江区","江海区","新会区","恩平市","台山市","开平市","鹤山市","其他"]},
+
+{"name":"湛江", "area":["全市","赤坎区","霞山区","坡头区","麻章区","吴川市","廉江市","雷州市","遂溪县","徐闻县","其他"]},
+
+{"name":"茂名", "area":["全市","茂南区","茂港区","化州市","信宜市","高州市","电白县","其他"]},
+
+{"name":"肇庆", "area":["全市","端州区","鼎湖区","高要市","四会市","广宁县","怀集县","封开县","德庆县","其他"]},
+
+{"name":"惠州", "area":["全市","惠城区","惠阳区","博罗县","惠东县","龙门县","其他"]},
+
+{"name":"梅州", "area":["全市","梅江区","兴宁市","梅县","大埔县","丰顺县","五华县","平远县","蕉岭县","其他"]},
+
+{"name":"汕尾", "area":["全市","城区","陆丰市","海丰县","陆河县","其他"]},
+
+{"name":"河源", "area":["全市","源城区","紫金县","龙川县","连平县","和平县","东源县","其他"]},
+
+{"name":"阳江", "area":["全市","江城区","阳春市","阳西县","阳东县","其他"]},
+
+{"name":"清远", "area":["全市","清城区","英德市","连州市","佛冈县","阳山县","清新县","连山壮族瑶族自治县","连南瑶族自治县","其他"]}
+
+]},
+
+{ "name": "广西", "city":[
+{"name":"全省", "area":[]},
+{"name":"南宁", "area":["全市","青秀区","兴宁区","西乡塘区","良庆区","江南区","邕宁区","武鸣县","隆安县","马山县","上林县","宾阳县","横县","其他"]},
+
+{"name":"柳州", "area":["全市","城中区","鱼峰区","柳北区","柳南区","柳江县","柳城县","鹿寨县","融安县","融水苗族自治县","三江侗族自治县","其他"]},
+
+{"name":"桂林", "area":["全市","象山区","秀峰区","叠彩区","七星区","雁山区","阳朔县","临桂县","灵川县","全州县","平乐县","兴安县","灌阳县","荔浦县","资源县","永福县","龙胜各族自治县","恭城瑶族自治县","其他"]},
+
+{"name":"梧州", "area":["全市","万秀区","蝶山区","长洲区","岑溪市","苍梧县","藤县","蒙山县","其他"]},
+
+{"name":"北海", "area":["全市","海城区","银海区","铁山港区","合浦县","其他"]},
+
+{"name":"防城港", "area":["全市","港口区","防城区","东兴市","上思县","其他"]},
+
+{"name":"钦州", "area":["全市","钦南区","钦北区","灵山县","浦北县","其他"]},
+
+{"name":"贵港", "area":["全市","港北区","港南区","覃塘区","桂平市","平南县","其他"]},
+
+{"name":"玉林", "area":["全市","玉州区","北流市","容县","陆川县","博白县","兴业县","其他"]},
+
+{"name":"百色", "area":["全市","右江区","凌云县","平果县","西林县","乐业县","德保县","田林县","田阳县","靖西县","田东县","那坡县","隆林各族自治县","其他"]},
+
+{"name":"贺州", "area":["全市","八步区","钟山县","昭平县","富川瑶族自治县","其他"]},
+
+{"name":"河池", "area":["全市","金城江区","宜州市","天峨县","凤山县","南丹县","东兰县","都安瑶族自治县","罗城仫佬族自治县","巴马瑶族自治县","环江毛南族自治县","大化瑶族自治县","其他"]},
+
+{"name":"来宾", "area":["全市","兴宾区","合山市","象州县","武宣县","忻城县","金秀瑶族自治县","其他"]},
+
+{"name":"崇左", "area":["全市","江州区","凭祥市","宁明县","扶绥县","龙州县","大新县","天等县","其他"]}
+
+]},
+
+{ "name": "海南", "city":[
+{"name":"全省", "area":[]},
+{"name":"海口", "area":["全市","龙华区","秀英区","琼山区","美兰区","其他"]},
+
+{"name":"三亚", "area":["全市","三亚市","其他"]},
+
+{"name":"五指山", "area":["全市","五指山"]},
+
+{"name":"琼海", "area":["全市","琼海"]},
+
+{"name":"儋州", "area":["全市","儋州"]},
+
+{"name":"文昌", "area":["全市","文昌"]},
+
+{"name":"万宁", "area":["全市","万宁"]},
+
+{"name":"东方", "area":["全市","东方"]},
+
+{"name":"澄迈县", "area":["全市","澄迈县"]},
+
+{"name":"定安县", "area":["全市","定安县"]},
+
+{"name":"屯昌县", "area":["全市","屯昌县"]},
+
+{"name":"临高县", "area":["全市","临高县"]},
+
+{"name":"白沙黎族自治县", "area":["全市","白沙黎族自治县"]},
+
+{"name":"昌江黎族自治县", "area":["全市","昌江黎族自治县"]},
+
+{"name":"乐东黎族自治县", "area":["全市","乐东黎族自治县"]},
+
+{"name":"陵水黎族自治县", "area":["全市","陵水黎族自治县"]},
+
+{"name":"保亭黎族苗族自治县", "area":["全市","保亭黎族苗族自治县"]},
+
+{"name":"琼中黎族苗族自治县", "area":["全市","琼中黎族苗族自治县"]}
+
+]},
+
+{ "name": "重庆", "city":[
+
+{"name":"重庆", "area":["全市","渝中区","大渡口区","江北区","南岸区","北碚区","渝北区","巴南区","长寿区","双桥区","沙坪坝区","万盛区","万州区","涪陵区","黔江区","永川区","合川区","江津区","九龙坡区","南川区","綦江县","潼南县","荣昌县","璧山县","大足县","铜梁县","梁平县","开县","忠县","城口县","垫江县","武隆县","丰都县","奉节县","云阳县","巫溪县","巫山县","石柱土家族自治县","秀山土家族苗族自治县","酉阳土家族苗族自治县","彭水苗族土家族自治县","其他"]}
+
+]},
+
+{ "name": "四川", "city":[
+{"name":"全省", "area":[]},
+{"name":"成都", "area":["全市","青羊区","锦江区","金牛区","武侯区","成华区","龙泉驿区","青白江区","新都区","温江区","都江堰市","彭州市","邛崃市","崇州市","金堂县","郫县","新津县","双流县","蒲江县","大邑县","其他"]},
+
+{"name":"自贡", "area":["全市","大安区","自流井区","贡井区","沿滩区","荣县","富顺县","其他"]},
+
+{"name":"攀枝花", "area":["全市","仁和区","米易县","盐边县","东区","西区","其他"]},
+
+{"name":"泸州", "area":["全市","江阳区","纳溪区","龙马潭区","泸县","合江县","叙永县","古蔺县","其他"]},
+
+{"name":"德阳", "area":["全市","旌阳区","广汉市","什邡市","绵竹市","罗江县","中江县","其他"]},
+
+{"name":"绵阳", "area":["全市","涪城区","游仙区","江油市","盐亭县","三台县","平武县","安县","梓潼县","北川羌族自治县","其他"]},
+
+{"name":"广元", "area":["全市","元坝区","朝天区","青川县","旺苍县","剑阁县","苍溪县","市中区","其他"]},
+
+{"name":"遂宁", "area":["全市","船山区","安居区","射洪县","蓬溪县","大英县","其他"]},
+
+{"name":"内江", "area":["全市","市中区","东兴区","资中县","隆昌县","威远县","其他"]},
+
+{"name":"乐山", "area":["全市","市中区","五通桥区","沙湾区","金口河区","峨眉山市","夹江县","井研县","犍为县","沐川县","马边彝族自治县","峨边彝族自治县","其他"]},
+
+{"name":"南充", "area":["全市","顺庆区","高坪区","嘉陵区","阆中市","营山县","蓬安县","仪陇县","南部县","西充县","其他"]},
+
+{"name":"眉山", "area":["全市","东坡区","仁寿县","彭山县","洪雅县","丹棱县","青神县","其他"]},
+
+{"name":"宜宾", "area":["全市","翠屏区","宜宾县","兴文县","南溪县","珙县","长宁县","高县","江安县","筠连县","屏山县","其他"]},
+
+{"name":"广安", "area":["全市","广安区","华蓥市","岳池县","邻水县","武胜县","其他"]},
+
+{"name":"达州", "area":["全市","通川区","万源市","达县","渠县","宣汉县","开江县","大竹县","其他"]},
+
+{"name":"雅安", "area":["全市","雨城区","芦山县","石棉县","名山县","天全县","荥经县","宝兴县","汉源县","其他"]},
+
+{"name":"巴中", "area":["全市","巴州区","南江县","平昌县","通江县","其他"]},
+
+{"name":"资阳", "area":["全市","雁江区","简阳市","安岳县","乐至县","其他"]},
+
+{"name":"阿坝藏族羌族自治州", "area":["全市","马尔康县","九寨沟县","红原县","汶川县","阿坝县","理县","若尔盖县","小金县","黑水县","金川县","松潘县","壤塘县","茂县","其他"]},
+
+{"name":"甘孜藏族自治州", "area":["全市","康定县","丹巴县","炉霍县","九龙县","甘孜县","雅江县","新龙县","道孚县","白玉县","理塘县","德格县","乡城县","石渠县","稻城县","色达县","巴塘县","泸定县","得荣县","其他"]},
+
+{"name":"凉山彝族自治州", "area":["全市","西昌市","美姑县","昭觉县","金阳县","甘洛县","布拖县","雷波县","普格县","宁南县","喜德县","会东县","越西县","会理县","盐源县","德昌县","冕宁县","木里藏族自治县","其他"]}
+
+]},
+
+{ "name": "贵州", "city":[
+{"name":"全省", "area":[]},
+{"name":"贵阳", "area":["全市","南明区","云岩区","花溪区","乌当区","白云区","小河区","清镇市","开阳县","修文县","息烽县","其他"]},
+
+{"name":"六盘水", "area":["全市","钟山区","水城县","盘县","六枝特区","其他"]},
+
+{"name":"遵义", "area":["全市","红花岗区","汇川区","赤水市","仁怀市","遵义县","绥阳县","桐梓县","习水县","凤冈县","正安县","余庆县","湄潭县","道真仡佬族苗族自治县","务川仡佬族苗族自治县","其他"]},
+
+{"name":"安顺", "area":["全市","西秀区","普定县","平坝县","镇宁布依族苗族自治县","紫云苗族布依族自治县","关岭布依族苗族自治县","其他"]},
+
+{"name":"铜仁地区", "area":["全市","铜仁市","德江县","江口县","思南县","石阡县","玉屏侗族自治县","松桃苗族自治县","印江土家族苗族自治县","沿河土家族自治县","万山特区","其他"]},
+
+{"name":"毕节地区", "area":["全市","毕节市","黔西县","大方县","织金县","金沙县","赫章县","纳雍县","威宁彝族回族苗族自治县","其他"]},
+
+{"name":"黔西南布依族苗族自治州", "area":["全市","兴义市","望谟县","兴仁县","普安县","册亨县","晴隆县","贞丰县","安龙县","其他"]},
+
+{"name":"黔东南苗族侗族自治州", "area":["全市","凯里市","施秉县","从江县","锦屏县","镇远县","麻江县","台江县","天柱县","黄平县","榕江县","剑河县","三穗县","雷山县","黎平县","岑巩县","丹寨县","其他"]},
+
+{"name":"黔南布依族苗族自治州", "area":["全市","都匀市","福泉市","贵定县","惠水县","罗甸县","瓮安县","荔波县","龙里县","平塘县","长顺县","独山县","三都水族自治县","其他"]}
+
+]},
+
+{ "name": "云南", "city":[
+{"name":"全省", "area":[]},
+{"name":"昆明", "area":["全市","盘龙区","五华区","官渡区","西山区","东川区","安宁市","呈贡县","晋宁县","富民县","宜良县","嵩明县","石林彝族自治县","禄劝彝族苗族自治县","寻甸回族彝族自治县","其他"]},
+
+{"name":"曲靖", "area":["全市","麒麟区","宣威市","马龙县","沾益县","富源县","罗平县","师宗县","陆良县","会泽县","其他"]},
+
+{"name":"玉溪", "area":["全市","红塔区","江川县","澄江县","通海县","华宁县","易门县","峨山彝族自治县","新平彝族傣族自治县","元江哈尼族彝族傣族自治县","其他"]},
+
+{"name":"保山", "area":["全市","隆阳区","施甸县","腾冲县","龙陵县","昌宁县","其他"]},
+
+{"name":"昭通", "area":["全市","昭阳区","鲁甸县","巧家县","盐津县","大关县","永善县","绥江县","镇雄县","彝良县","威信县","水富县","其他"]},
+
+{"name":"丽江", "area":["全市","古城区","永胜县","华坪县","玉龙纳西族自治县","宁蒗彝族自治县","其他"]},
+
+{"name":"普洱", "area":["全市","思茅区","普洱哈尼族彝族自治县","墨江哈尼族自治县","景东彝族自治县","景谷傣族彝族自治县","镇沅彝族哈尼族拉祜族自治县","江城哈尼族彝族自治县","孟连傣族拉祜族佤族自治县","澜沧拉祜族自治县","西盟佤族自治县","其他"]},
+
+{"name":"临沧", "area":["全市","临翔区","凤庆县","云县","永德县","镇康县","双江拉祜族佤族布朗族傣族自治县","耿马傣族佤族自治县","沧源佤族自治县","其他"]},
+
+{"name":"德宏傣族景颇族自治州", "area":["全市","潞西市","瑞丽市","梁河县","盈江县","陇川县","其他"]},
+
+{"name":"怒江傈僳族自治州", "area":["全市","泸水县","福贡县","贡山独龙族怒族自治县","兰坪白族普米族自治县","其他"]},
+
+{"name":"迪庆藏族自治州", "area":["全市","香格里拉县","德钦县","维西傈僳族自治县","其他"]},
+
+{"name":"大理白族自治州", "area":["全市","大理市","祥云县","宾川县","弥渡县","永平县","云龙县","洱源县","剑川县","鹤庆县","漾濞彝族自治县","南涧彝族自治县","巍山彝族回族自治县","其他"]},
+
+{"name":"楚雄彝族自治州", "area":["全市","楚雄市","双柏县","牟定县","南华县","姚安县","大姚县","永仁县","元谋县","武定县","禄丰县","其他"]},
+
+{"name":"红河哈尼族彝族自治州", "area":["全市","蒙自县","个旧市","开远市","绿春县","建水县","石屏县","弥勒县","泸西县","元阳县","红河县","金平苗族瑶族傣族自治县","河口瑶族自治县","屏边苗族自治县","其他"]},
+
+{"name":"文山壮族苗族自治州", "area":["全市","文山县","砚山县","西畴县","麻栗坡县","马关县","丘北县","广南县","富宁县","其他"]},
+
+{"name":"西双版纳傣族自治州", "area":["全市","景洪市","勐海县","勐腊县","其他"]}
+
+]},
+
+{ "name": "西藏", "city":[
+{"name":"全省", "area":[]},
+{"name":"拉萨", "area":["全市","城关区","林周县","当雄县","尼木县","曲水县","堆龙德庆县","达孜县","墨竹工卡县","其他"]},
+
+{"name":"那曲地区", "area":["全市","那曲县","嘉黎县","比如县","聂荣县","安多县","申扎县","索县","班戈县","巴青县","尼玛县","其他"]},
+
+{"name":"昌都地区", "area":["全市","昌都县","江达县","贡觉县","类乌齐县","丁青县","察雅县","八宿县","左贡县","芒康县","洛隆县","边坝县","其他"]},
+
+{"name":"林芝地区", "area":["全市","林芝县","工布江达县","米林县","墨脱县","波密县","察隅县","朗县","其他"]},
+
+{"name":"山南地区", "area":["全市","乃东县","扎囊县","贡嘎县","桑日县","琼结县","曲松县","措美县","洛扎县","加查县","隆子县","错那县","浪卡子县","其他"]},
+
+{"name":"日喀则地区", "area":["全市","日喀则市","南木林县","江孜县","定日县","萨迦县","拉孜县","昂仁县","谢通门县","白朗县","仁布县","康马县","定结县","仲巴县","亚东县","吉隆县","聂拉木县","萨嘎县","岗巴县","其他"]},
+
+{"name":"阿里地区", "area":["全市","噶尔县","普兰县","札达县","日土县","革吉县","改则县","措勤县","其他"]}
+
+]},
+
+{ "name": "陕西", "city":[
+{"name":"全省", "area":[]},
+{"name":"西安", "area":["全市","莲湖区","新城区","碑林区","雁塔区","灞桥区","未央区","阎良区","临潼区","长安区","高陵县","蓝田县","户县","周至县","其他"]},
+
+{"name":"铜川", "area":["全市","耀州区","王益区","印台区","宜君县","其他"]},
+
+{"name":"宝鸡", "area":["全市","渭滨区","金台区","陈仓区","岐山县","凤翔县","陇县","太白县","麟游县","扶风县","千阳县","眉县","凤县","其他"]},
+
+{"name":"咸阳", "area":["全市","秦都区","渭城区","杨陵区","兴平市","礼泉县","泾阳县","永寿县","三原县","彬县","旬邑县","长武县","乾县","武功县","淳化县","其他"]},
+
+{"name":"渭南", "area":["全市","临渭区","韩城市","华阴市","蒲城县","潼关县","白水县","澄城县","华县","合阳县","富平县","大荔县","其他"]},
+
+{"name":"延安", "area":["全市","宝塔区","安塞县","洛川县","子长县","黄陵县","延川县","富县","延长县","甘泉县","宜川县","志丹县","黄龙县","吴起县","其他"]},
+
+{"name":"汉中", "area":["全市","汉台区","留坝县","镇巴县","城固县","南郑县","洋县","宁强县","佛坪县","勉县","西乡县","略阳县","其他"]},
+
+{"name":"榆林", "area":["全市","榆阳区","清涧县","绥德县","神木县","佳县","府谷县","子洲县","靖边县","横山县","米脂县","吴堡县","定边县","其他"]},
+
+{"name":"安康", "area":["全市","汉滨区","紫阳县","岚皋县","旬阳县","镇坪县","平利县","石泉县","宁陕县","白河县","汉阴县","其他"]},
+
+{"name":"商洛", "area":["全市","商州区","镇安县","山阳县","洛南县","商南县","丹凤县","柞水县","其他"]}
+
+]},
+
+{ "name": "甘肃", "city":[
+{"name":"全省", "area":[]},
+{"name":"兰州", "area":["全市","城关区","七里河区","西固区","安宁区","红古区","永登县","皋兰县","榆中县","其他"]},
+
+{"name":"嘉峪关", "area":["全市","嘉峪关市","其他"]},
+
+{"name":"金昌", "area":["全市","金川区","永昌县","其他"]},
+
+{"name":"白银", "area":["全市","白银区","平川区","靖远县","会宁县","景泰县","其他"]},
+
+{"name":"天水", "area":["全市","清水县","秦安县","甘谷县","武山县","张家川回族自治县","北道区","秦城区","其他"]},
+
+{"name":"武威", "area":["全市","凉州区","民勤县","古浪县","天祝藏族自治县","其他"]},
+
+{"name":"酒泉", "area":["全市","肃州区","玉门市","敦煌市","金塔县","肃北蒙古族自治县","阿克塞哈萨克族自治县","安西县","其他"]},
+
+{"name":"张掖", "area":["全市","甘州区","民乐县","临泽县","高台县","山丹县","肃南裕固族自治县","其他"]},
+
+{"name":"庆阳", "area":["全市","西峰区","庆城县","环县","华池县","合水县","正宁县","宁县","镇原县","其他"]},
+
+{"name":"平凉", "area":["全市","崆峒区","泾川县","灵台县","崇信县","华亭县","庄浪县","静宁县","其他"]},
+
+{"name":"定西", "area":["全市","安定区","通渭县","临洮县","漳县","岷县","渭源县","陇西县","其他"]},
+
+{"name":"陇南", "area":["全市","武都区","成县","宕昌县","康县","文县","西和县","礼县","两当县","徽县","其他"]},
+
+{"name":"临夏回族自治州", "area":["全市","临夏市","临夏县","康乐县","永靖县","广河县","和政县","东乡族自治县","积石山保安族东乡族撒拉族自治县","其他"]},
+
+{"name":"甘南藏族自治州", "area":["全市","合作市","临潭县","卓尼县","舟曲县","迭部县","玛曲县","碌曲县","夏河县","其他"]}
+
+]},
+
+{ "name": "青海", "city":[
+{"name":"全省", "area":[]},
+{"name":"西宁", "area":["全市","城中区","城东区","城西区","城北区","湟源县","湟中县","大通回族土族自治县","其他"]},
+
+{"name":"海东地区", "area":["全市","平安县","乐都县","民和回族土族自治县","互助土族自治县","化隆回族自治县","循化撒拉族自治县","其他"]},
+
+{"name":"海北藏族自治州", "area":["全市","海晏县","祁连县","刚察县","门源回族自治县","其他"]},
+
+{"name":"海南藏族自治州", "area":["全市","共和县","同德县","贵德县","兴海县","贵南县","其他"]},
+
+{"name":"黄南藏族自治州", "area":["全市","同仁县","尖扎县","泽库县","河南蒙古族自治县","其他"]},
+
+{"name":"果洛藏族自治州", "area":["全市","玛沁县","班玛县","甘德县","达日县","久治县","玛多县","其他"]},
+
+{"name":"玉树藏族自治州", "area":["全市","玉树县","杂多县","称多县","治多县","囊谦县","曲麻莱县","其他"]},
+
+{"name":"海西蒙古族藏族自治州", "area":["全市","德令哈市","格尔木市","乌兰县","都兰县","天峻县","其他"]}
+
+]},
+
+{ "name": "宁夏", "city":[
+{"name":"全省", "area":[]},
+{"name":"银川", "area":["全市","兴庆区","西夏区","金凤区","灵武市","永宁县","贺兰县","其他"]},
+
+{"name":"石嘴山", "area":["全市","大武口区","惠农区","平罗县","其他"]},
+
+{"name":"吴忠", "area":["全市","利通区","青铜峡市","盐池县","同心县","其他"]},
+
+{"name":"固原", "area":["全市","原州区","西吉县","隆德县","泾源县","彭阳县","其他"]},
+
+{"name":"中卫", "area":["全市","沙坡头区","中宁县","海原县","其他"]}
+
+]}, 
+
+{ "name": "新疆", "city":[
+{"name":"全省", "area":[]},
+{"name":"乌鲁木齐", "area":["全市","天山区","沙依巴克区","新市区","水磨沟区","头屯河区","达坂城区","东山区","乌鲁木齐县","其他"]},
+
+{"name":"克拉玛依", "area":["全市","克拉玛依区","独山子区","白碱滩区","乌尔禾区","其他"]},
+
+{"name":"吐鲁番地区", "area":["全市","吐鲁番市","托克逊县","鄯善县","其他"]},
+
+{"name":"哈密地区", "area":["全市","哈密市","伊吾县","巴里坤哈萨克自治县","其他"]},
+
+{"name":"和田地区", "area":["全市","和田市","和田县","洛浦县","民丰县","皮山县","策勒县","于田县","墨玉县","其他"]},
+
+{"name":"阿克苏地区", "area":["全市","阿克苏市","温宿县","沙雅县","拜城县","阿瓦提县","库车县","柯坪县","新和县","乌什县","其他"]},
+
+{"name":"喀什地区", "area":["全市","喀什市","巴楚县","泽普县","伽师县","叶城县","岳普湖县","疏勒县","麦盖提县","英吉沙县","莎车县","疏附县","塔什库尔干塔吉克自治县","其他"]},
+
+{"name":"克孜勒苏柯尔克孜自治州", "area":["全市","阿图什市","阿合奇县","乌恰县","阿克陶县","其他"]},
+
+{"name":"巴音郭楞蒙古自治州", "area":["全市","库尔勒市","和静县","尉犁县","和硕县","且末县","博湖县","轮台县","若羌县","焉耆回族自治县","其他"]},
+
+{"name":"昌吉回族自治州", "area":["全市","昌吉市","阜康市","奇台县","玛纳斯县","吉木萨尔县","呼图壁县","木垒哈萨克自治县","米泉市","其他"]},
+
+{"name":"博尔塔拉蒙古自治州", "area":["全市","博乐市","精河县","温泉县","其他"]},
+
+{"name":"石河子", "area":["全市","石河子"]},
+
+{"name":"阿拉尔", "area":["全市","阿拉尔"]},
+
+{"name":"图木舒克", "area":["全市","图木舒克"]},
+
+{"name":"五家渠", "area":["全市","五家渠"]},
+
+{"name":"伊犁哈萨克自治州", "area":["全市","伊宁市","奎屯市","伊宁县","特克斯县","尼勒克县","昭苏县","新源县","霍城县","巩留县","察布查尔锡伯自治县","塔城地区","阿勒泰地区","其他"]}
+
+]},
+
+{ "name": "台湾", "city":[
+
+{"name":"台湾", "area":["全市","台北市","高雄市","台北县","桃园县","新竹县","苗栗县","台中县","彰化县","南投县","云林县","嘉义县","台南县","高雄县","屏东县","宜兰县","花莲县","台东县","澎湖县","基隆市","新竹市","台中市","嘉义市","台南市","其他"]}
+
+]},
+
+{ "name": "澳门", "city":[
+
+{"name":"澳门", "area":["花地玛堂区","圣安多尼堂区","大堂区","望德堂区","风顺堂区","嘉模堂区","圣方济各堂区","路凼","其他"]}
+
+]},
+
+{ "name": "香港", "city":[
+
+{"name":"香港", "area":["中西区","湾仔区","东区","南区","深水埗区","油尖旺区","九龙城区","黄大仙区","观塘区","北区","大埔区","沙田区","西贡区","元朗区","屯门区","荃湾区","葵青区","离岛区","其他"]}
+
+]},
+
+{ "name": "钓鱼岛", "city":[
+
+{"name":"钓鱼岛", "area":["钓鱼岛"]}
+
+]}
+
+]

+ 340 - 0
components/itmister-address-picker/itmister-address-picker-other.nvue

@@ -0,0 +1,340 @@
+<template>
+	<div v-if="isShow">
+		<div class="address-picker-mask" bubble='true' @click="hide"
+			:class="[isOpen?'show-address-picker-mask':'hide-address-picker-mask']"
+			:style="{backgroundColor:maskColor,opacity:opacity}">
+		</div>
+		<!-- #ifdef APP-PLUS-NVUE -->
+		<div class="address-picker-container" ref="addressPickerEl" @click.stop="handleClick"
+			:class="[isOpen?'show-address-picker':'hide-address-picker']">
+			<!-- #endif -->
+			<!-- #ifndef APP-PLUS-NVUE -->
+			<div class="address-picker-container" @click.stop="handleClick"
+				:class="[isOpen?'show-address-picker':'hide-address-picker']"
+				:style="{transform:'translatey('+translatey+'px)'}">
+				<!-- #endif -->
+				<div class="address-picker-button row between-center">
+					<text class="address-picker-button-text" style="color: #777777;" @click="hide">取消</text>
+					<text class="address-picker-button-text" style="color: #007AFF;"
+						@click="confirmChange(value)">确认</text>
+				</div>
+				<picker-view class="address-picker-box" v-if="visible" :indicator-style="indicatorStyle" :value="value"
+					@change="bindChange">
+					<picker-view-column class="center">
+						<div class="address-picker-item center" v-for="(item,index) in provinceList" :key="index">
+							<text class="address-picker-item-text">{{item}}</text>
+						</div>
+					</picker-view-column>
+					<picker-view-column>
+						<div class="address-picker-item center" v-for="(item,index) in cityList" :key="index">
+							<text class="address-picker-item-text">{{item}}</text>
+						</div>
+					</picker-view-column>
+					<picker-view-column v-show="showCheck">
+						<div class="address-picker-item center" v-for="(item,index) in areaList" :key="index">
+							<text class="address-picker-item-text">{{item}}</text>
+						</div>
+					</picker-view-column>
+				</picker-view>
+				</div>
+	</div>
+</template>
+
+<script>
+	// #ifdef APP-PLUS-NVUE
+	const animation = weex.requireModule('animation');
+	// #endif
+	export default {
+		name: "itmisterAddressPickerOther",
+		props: {
+			showCheck: { //是否显示区级
+				type: Boolean,
+				default: true
+			},
+			// wholeCountry:{
+			// 	type: Boolean,
+			// 	default: false
+			// },
+			maskColor: { // 模态框背景色
+				type: String,
+				default: 'rgba(0,0,0,0.3)'
+			},
+			addressIndex: { // 修改地址时使用,接收旧地址的省市区,对应的索引数组
+				type: Array,
+				default () {
+					return [0, 0, 0]
+				}
+			}
+		},
+		data() {
+			return {
+				isShow: false, // 是否弹出
+				isOpen: false,
+				translatey: 500, // 弹出层高度
+				opacity: 0, // 模态框透明度
+				visible: true,
+				indicatorStyle: `height: ${Math.round(uni.getSystemInfoSync().screenWidth/(750/100))}px;`,
+				value: [], // 设置默认选中
+				cityData: require('../../components/itmister-address-picker/city_other.json'), // 加载城市数据
+				provinceList: [], // 省列表
+				cityList: [], // 市列表
+				areaList: [], // 区列表
+			}
+		},
+		mounted() {
+			this.value = this.addressIndex;
+			// let arrays = {}
+			// arrays = {
+			// 	city: [{
+			// 		area: [],
+			// 		name: ''
+			// 	}],
+			// 	name: '全国'
+			// }
+			// this.cityData.splice(0, 0, arrays)
+			this.loadProvince(this.cityData);
+		},
+		methods: {
+
+			// 确认选中
+			confirmChange(val) {
+				let address = {
+					// 当前选中的地址
+					province: this.provinceList[val[0]],
+					city: this.cityList[val[1]],
+					area: this.areaList[val[2]],
+					// 当前地址的索引,保存起来,用于日后修改地址时,加载默认
+					provinceIndex: val[0],
+					cityIndex: val[1],
+					areaIndex: val[2]
+				}
+				this.$emit('confirmChange', address);
+				this.hide();
+			},
+
+			// 监听选中
+			bindChange(e) {
+				const val = e.detail.value;
+				this.value = [val[0], val[1], val[2]];
+				this.loadCity(this.cityData[val[0]].city);
+			},
+
+			// 加载数据
+			loadProvince(data) {
+				let newList = [];
+				data.forEach(item => {
+					newList.push(item.name);
+				});
+				this.provinceList = newList;
+				this.loadCity(this.cityData[this.value[0]].city);
+			},
+			loadCity(data) {
+				let newList = [];
+				data.forEach(item => {
+					newList.push(item.name);
+				});
+				this.cityList = newList;
+
+				if ((data.length - 1) >= this.value[1]) { // 解决特殊情况报错的问题
+					this.loadArea(this.cityData[this.value[0]].city[this.value[1]].area);
+				} else {
+					this.loadArea(this.cityData[this.value[0]].city[0].area);
+				}
+
+			},
+			loadArea(data) {
+				let newList = [];
+				data.forEach(item => {
+					newList.push(item);
+				});
+				this.areaList = newList;
+			},
+
+			// 显示
+			show() {
+				// 渲染视图
+				this.isShow = true;
+
+				// 等待视图渲染
+				this.$nextTick(() => {
+					setTimeout(() => {
+						// #ifdef APP-PLUS-NVUE
+						// APP 端获取动画元素
+						let ele = this.$refs.addressPickerEl;
+						// #endif
+
+						// 执行 mask 透明度
+						this.isOpen = true;
+						this.opacity = 1;
+
+						// #ifndef APP-PLUS-NVUE
+						// 非APP 端 执行动画
+						this.translatey = 0;
+						// #endif
+
+						// #ifdef APP-PLUS-NVUE
+						// APP 端执行动画
+						animation.transition(ele, {
+							styles: {
+								transform: 'translate(0,0)',
+								transformOrigin: 'center center'
+							},
+							duration: 250, //ms
+							timingFunction: 'ease',
+							delay: 0 //ms
+						});
+						// #endif
+
+					}, 10);
+				});
+			},
+			hide() {
+				// #ifdef APP-PLUS-NVUE
+				// APP 端获取动画元素
+				let ele = this.$refs.addressPickerEl;
+				// #endif
+
+				// 执行 mask 透明度
+				this.isOpen = false;
+				this.opacity = 0;
+
+				// #ifndef APP-PLUS-NVUE
+				// 非APP 端执行动画
+				this.translatey = 500;
+				setTimeout(() => {
+					this.isShow = false;
+				}, 200);
+				// #endif
+
+				// #ifdef APP-PLUS-NVUE
+				// APP 端执行动画
+				animation.transition(ele, {
+					styles: {
+						transform: 'translate(0,550)',
+						transformOrigin: 'center center'
+					},
+					duration: 250, //ms
+					timingFunction: 'ease',
+					delay: 0 //ms
+				}, () => {
+					this.isShow = false;
+				});
+				// #endif
+
+			},
+			// 阻止冒泡
+			handleClick(event) {
+				event.stopPropagation();
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.address-picker-mask {
+		position: fixed;
+		left: 0;
+		right: 0;
+		top: 0;
+		bottom: 0;
+		z-index: 999988;
+	}
+
+	.address-picker-container {
+		position: fixed;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		z-index: 999999;
+		height: 640rpx;
+		background-color: #FFFFFF;
+	}
+
+	.show-address-picker-mask {
+		transition-property: opacity;
+		transition-duration: 0.2s;
+		transition-timing-function: ease;
+	}
+
+	.hide-address-picker-mask {
+		transition-property: opacity;
+		transition-duration: 0.2s;
+		transition-timing-function: ease;
+	}
+
+	.show-address-picker {
+		/* #ifndef APP-PLUS-NVUE */
+		transition-property: transform;
+		transition-duration: 0.2s;
+		transition-timing-function: ease;
+		/* #endif */
+		/* #ifdef APP-PLUS-NVUE */
+		transform: 'translate(0,550)',
+			/* #endif */
+	}
+
+	.hide-address-picker {
+		/* #ifndef APP-PLUS-NVUE */
+		transition-property: transform;
+		transition-duration: 0.2s;
+		transition-timing-function: ease;
+		/* #endif */
+		/* #ifdef APP-PLUS-NVUE */
+		transform: 'translate(0,550)',
+			/* #endif */
+	}
+
+	// 内容
+	.address-picker-box {
+		width: 750rpx;
+		height: 500rpx;
+		padding: 0 20rpx;
+		/* #ifdef H5 */
+		box-sizing: border-box;
+		/* #endif */
+		background-color: #FFF;
+	}
+
+	.address-picker-item {
+		height: 100rpx;
+	}
+
+	.address-picker-item-text {
+		color: #444;
+		font-size: 32rpx;
+	}
+
+	// 按钮
+	.address-picker-button {
+		height: 100rpx;
+		margin-bottom: 20rpx;
+		box-shadow: 0 1rpx 1rpx #e4e4e4;
+		background-color: #FFFFFF;
+	}
+
+	.address-picker-button-text {
+		padding: 10rpx 25rpx;
+		margin: 0 30rpx;
+	}
+
+	.row {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+
+	}
+
+	.center {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		justify-content: center;
+		align-items: center;
+	}
+
+	.between-center {
+		justify-content: space-between;
+		align-items: center;
+	}
+</style>

+ 330 - 0
components/itmister-address-picker/itmister-address-picker.nvue

@@ -0,0 +1,330 @@
+<template>
+	<div v-if="isShow">
+		<div class="address-picker-mask" bubble='true' @click="hide" :class="[isOpen?'show-address-picker-mask':'hide-address-picker-mask']" 
+		:style="{backgroundColor:maskColor,opacity:opacity}">
+		</div>
+		<!-- #ifdef APP-PLUS-NVUE -->
+		<div class="address-picker-container" ref="addressPickerEl" @click.stop="handleClick" :class="[isOpen?'show-address-picker':'hide-address-picker']">
+		<!-- #endif -->
+		<!-- #ifndef APP-PLUS-NVUE -->
+		<div class="address-picker-container" @click.stop="handleClick" :class="[isOpen?'show-address-picker':'hide-address-picker']"
+		:style="{transform:'translatey('+translatey+'px)'}">
+		<!-- #endif -->
+			<div class="address-picker-button row between-center">
+				<text class="address-picker-button-text" style="color: #777777;" @click="hide">取消</text>
+				<text class="address-picker-button-text" style="color: #007AFF;" @click="confirmChange(value)">确认</text>
+			</div>
+			<picker-view class="address-picker-box" v-if="visible" :indicator-style="indicatorStyle" :value="value" @change="bindChange">
+				<picker-view-column class="center">
+					<div class="address-picker-item center" v-for="(item,index) in provinceList" :key="index">
+						<text class="address-picker-item-text">{{item}}</text>
+					</div>
+				</picker-view-column>
+				<picker-view-column>
+					<div class="address-picker-item center" v-for="(item,index) in cityList" :key="index">
+						<text class="address-picker-item-text">{{item}}</text>
+					</div>
+				</picker-view-column>
+				<picker-view-column v-show="showCheck">
+					<div class="address-picker-item center" v-for="(item,index) in areaList" :key="index">
+						<text class="address-picker-item-text">{{item}}</text>
+					</div>
+				</picker-view-column>
+			</picker-view>
+		</div>
+	</div>
+</template>
+
+<script>
+	// #ifdef APP-PLUS-NVUE
+	const animation = weex.requireModule('animation');
+	// #endif
+	export default {
+		name: "itmisterAddressPicker",
+		props: {
+			showCheck:{//是否显示区级
+				type: Boolean,
+				default: true
+			},
+			wholeCountry:{
+				type: Boolean,
+				default: false
+			},
+			maskColor: { // 模态框背景色
+				type: String,
+				default: 'rgba(0,0,0,0.3)'
+			},
+			addressIndex:{ // 修改地址时使用,接收旧地址的省市区,对应的索引数组
+				type:Array,
+				default(){
+					return [0,0,0]
+				}
+			}
+		},
+		data() {
+			return {
+				isShow: false, // 是否弹出
+				isOpen: false,
+				translatey: 500, // 弹出层高度
+				opacity: 0, // 模态框透明度
+				visible: true,
+				indicatorStyle: `height: ${Math.round(uni.getSystemInfoSync().screenWidth/(750/100))}px;`,
+				value: [], // 设置默认选中
+				cityData: require('../../components/itmister-address-picker/city.json'), // 加载城市数据
+				provinceList:[], // 省列表
+				cityList:[], // 市列表
+				areaList:[], // 区列表
+			}
+		},
+		mounted() {
+			this.value = this.addressIndex;
+			let arrays = {}
+			if(this.wholeCountry){
+				 arrays = {
+					city:[{area:[],name:''}],
+					name:'全国'
+				}
+				this.cityData.splice(0,0,arrays)
+			}
+			this.loadProvince(this.cityData);
+		},
+		methods: {
+			
+			// 确认选中
+			confirmChange(val){
+				let address = {
+					// 当前选中的地址
+					province:this.provinceList[val[0]],
+					city:this.cityList[val[1]],
+					area:this.areaList[val[2]],
+					// 当前地址的索引,保存起来,用于日后修改地址时,加载默认
+					provinceIndex:val[0],
+					cityIndex:val[1],
+					areaIndex:val[2]
+				}
+				this.$emit('confirmChange',address);
+				this.hide();
+			},
+			
+			// 监听选中
+			bindChange(e) {
+				const val = e.detail.value;
+				this.value = [val[0],val[1],val[2]];
+				this.loadCity(this.cityData[val[0]].city);
+			},
+			
+			// 加载数据
+			loadProvince(data){
+				let newList = [];
+				data.forEach(item => {
+					newList.push(item.name);
+				});
+				this.provinceList = newList;
+				this.loadCity(this.cityData[this.value[0]].city);
+			},
+			loadCity(data){
+				let newList = [];
+				data.forEach(item => {
+					newList.push(item.name);
+				});
+				this.cityList = newList;
+				
+				if((data.length - 1) >= this.value[1]){ // 解决特殊情况报错的问题
+					this.loadArea(this.cityData[this.value[0]].city[this.value[1]].area);
+				}else{
+					this.loadArea(this.cityData[this.value[0]].city[0].area);
+				}
+				
+			},
+			loadArea(data){
+				let newList = [];
+				data.forEach(item => {
+					newList.push(item);
+				});
+				this.areaList = newList;
+			},
+			
+			// 显示
+			show() {
+				// 渲染视图
+				this.isShow = true;
+				
+				// 等待视图渲染
+				this.$nextTick(() => {
+					setTimeout(() => {
+						// #ifdef APP-PLUS-NVUE
+						// APP 端获取动画元素
+						let ele = this.$refs.addressPickerEl;
+						// #endif
+						
+						// 执行 mask 透明度
+						this.isOpen = true;
+						this.opacity = 1;
+						
+						// #ifndef APP-PLUS-NVUE
+						// 非APP 端 执行动画
+						this.translatey = 0;
+						// #endif
+
+						// #ifdef APP-PLUS-NVUE
+						// APP 端执行动画
+						animation.transition(ele, {
+							styles: {
+								transform: 'translate(0,0)',
+								transformOrigin: 'center center'
+							},
+							duration: 250, //ms
+							timingFunction: 'ease',
+							delay: 0 //ms
+						});
+						// #endif
+
+					}, 10);
+				});
+			},
+			hide() {
+				// #ifdef APP-PLUS-NVUE
+				// APP 端获取动画元素
+				let ele = this.$refs.addressPickerEl;
+				// #endif
+				
+				// 执行 mask 透明度
+				this.isOpen = false;
+				this.opacity = 0;
+				
+				// #ifndef APP-PLUS-NVUE
+				// 非APP 端执行动画
+				this.translatey = 500;
+				setTimeout(() => {
+					this.isShow = false;
+				}, 200);
+				// #endif
+
+				// #ifdef APP-PLUS-NVUE
+				// APP 端执行动画
+				animation.transition(ele, {
+					styles: {
+						transform: 'translate(0,550)',
+						transformOrigin: 'center center'
+					},
+					duration: 250, //ms
+					timingFunction: 'ease',
+					delay: 0 //ms
+				},() => {
+					this.isShow = false;
+				});
+				// #endif
+
+			},
+			// 阻止冒泡
+			handleClick(event) {
+				event.stopPropagation();
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.address-picker-mask {
+		position: fixed;
+		left: 0;
+		right: 0;
+		top: 0;
+		bottom: 0;
+		z-index: 999988;
+	}
+
+	.address-picker-container {
+		position: fixed;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		z-index: 999999;
+		height: 640rpx;
+		background-color: #FFFFFF;
+	}
+
+	.show-address-picker-mask {
+		transition-property: opacity;
+		transition-duration: 0.2s;
+		transition-timing-function: ease;
+	}
+
+	.hide-address-picker-mask {
+		transition-property: opacity;
+		transition-duration: 0.2s;
+		transition-timing-function: ease;
+	}
+
+	.show-address-picker {
+		/* #ifndef APP-PLUS-NVUE */
+		transition-property: transform;
+		transition-duration: 0.2s;
+		transition-timing-function: ease;
+		/* #endif */
+		/* #ifdef APP-PLUS-NVUE */
+		transform: 'translate(0,550)',
+		/* #endif */
+	}
+
+	.hide-address-picker {
+		/* #ifndef APP-PLUS-NVUE */
+		transition-property: transform;
+		transition-duration: 0.2s;
+		transition-timing-function: ease;
+		/* #endif */
+		/* #ifdef APP-PLUS-NVUE */
+		transform: 'translate(0,550)',
+		/* #endif */
+	}
+	
+	// 内容
+	.address-picker-box{
+		width: 750rpx;
+		height: 500rpx;
+		padding: 0 20rpx;
+		/* #ifdef H5 */
+		box-sizing: border-box;
+		/* #endif */
+		background-color: #FFF;
+	}
+	.address-picker-item{
+		height: 100rpx;
+	}
+	.address-picker-item-text{
+		color: #444;
+		font-size: 32rpx;
+	}
+	
+	// 按钮
+	.address-picker-button{
+		height: 100rpx;
+		margin-bottom: 20rpx;
+		box-shadow: 0 1rpx 1rpx #e4e4e4;
+		background-color: #FFFFFF;
+	}
+	.address-picker-button-text{
+		padding: 10rpx 25rpx;
+		margin: 0 30rpx;
+	}
+	
+	.row{
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		
+	}
+	
+	.center{
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		justify-content: center;
+		align-items: center;
+	}
+	.between-center{
+		justify-content: space-between;
+		align-items: center;
+	}
+</style>

+ 1 - 1
components/ossutil/uploadFile.js

@@ -12,7 +12,7 @@ const Crypto = require('./crypto.js');
  *@param - successc:成功回调
  *@param - failc:失败回调
  */
-const uploadFile = function(type, filePath, dir, successc, failc) {
+const uploadFile = function(type, filePath, dir, successc, failc) {debugger
 	console.log('type', type)
 	if (!filePath || filePath.length < 9) {
 		uni.showModal({

+ 96 - 13
pages.json

@@ -12,13 +12,19 @@
 				"text": "订单"
 			},
 			{
-				"pagePath": "pages/goodSource/index",
-
+				"pagePath": "pages/carSource/index",
 				"iconPath": "static/mine/zhaoche.png",
 				"selectedIconPath": "static/mine/zhaoche_check.png",
-				"text": "车"
+				"text": "车"
 			},
 			// {
+			// 	"pagePath": "pages/goodSource/index",
+
+			// 	"iconPath": "static/mine/zhaoche.png",
+			// 	"selectedIconPath": "static/mine/zhaoche_check.png",
+			// 	"text": "找车"
+			// },
+			// {
 			// 	"pagePath": "pages/grain_pulse/home",
 			// 	"iconPath": "static/mine/fabu.png",
 			// 	"selectedIconPath": "static/mine/fabu.png",
@@ -54,19 +60,26 @@
 			}
 		},
 		{
-			"path": "pages/news/index",
+			"path": "pages/carSource/index",
 			"style": {
-				"navigationStyle": "custom",
-				"navigationBarTextStyle": "white"
+				"navigationStyle": "custom"
+				// "navigationBarTitleText": ""
 			}
-
 		},
 		{
-			"path": "pages/goodSource/index",
+			"path": "pages/news/index",
 			"style": {
-				"navigationBarTitleText": "开发中"
+				"navigationStyle": "custom",
+				"navigationBarTextStyle": "white"
 			}
+
 		},
+		// {
+		// 	"path": "pages/goodSource/index",
+		// 	"style": {
+		// 		"navigationBarTitleText": "开发中"
+		// 	}
+		// },
 		{
 			"path": "pages/mine/index",
 			"style": {
@@ -411,16 +424,86 @@
 			"style": {
 				"navigationBarTitleText": "开发中"
 			}
+		}, {
+			"path": "pages/order/signContract",
+			"style": {
+				"navigationBarTitleText": "签订合同",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/order/evaluationRecord",
+			"style": {
+				"navigationBarTitleText": "评价记录",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/order/driverDetail",
+			"style": {
+				"navigationBarTitleText": "司机详情",
+				"enablePullDownRefresh": false,
+				"app-plus": {
+					"titleNView": {
+						"buttons": [{
+							"text": "&#xf0141",
+							"fontSrc": "/static/iconfont.ttf",
+							"fontSize": "20"
+						}]
+					}
+				}
+			}
+
+		}, {
+			"path": "pages/order/addEvaluation",
+			"style": {
+				"navigationBarTitleText": "评价",
+				"enablePullDownRefresh": false,
+				"app-plus": {
+					"titleNView": {
+						"buttons": [{
+							"text": "提交",
+							"fontSize": "14",
+							"color": "#007AFF"
+						}]
+					}
+				}
+			}
+
+		},
+		{
+			"path": "pages/order/jb",
+			"style": {
+				"navigationBarTitleText": "举报",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/order/fk",
+			"style": {
+				"navigationBarTitleText": "反馈",
+				"enablePullDownRefresh": false
+			}
+
 		}
-	    ,{
-            "path" : "pages/order/signContract",
+        ,{
+            "path" : "pages/mine/driverEvaluation",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "签订合同",
+                "navigationBarTitleText": "司机评价",
                 "enablePullDownRefresh": false
             }
             
-        }
+        },
+		{
+			"path": "pages/mine/evaluate",
+			"style": {
+				"navigationBarTitleText": "评价",
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "white"
+			}
+		
+		}
     ],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",

+ 734 - 0
pages/carSource/index.vue

@@ -0,0 +1,734 @@
+<template>
+	<view class="center">
+		<view class="flex row1">
+			<view class="flex center_top">
+				<view class="center_top_btn" :class="indexbtn == 1? '':'center_top_btn1'" @click="changebtn(1)">司机
+				</view>
+				<view class="center_top_btn" :class="indexbtn == 2? '':'center_top_btn1'" @click="changebtn(2)">车队
+				</view>
+			</view>
+		</view>
+		<view class="driver" v-show="indexbtn == 1">
+			<view class="flex screen">
+				<view @click="selectAddress(1)" class="screen_item">
+					<view class="screen_sign sign1">装</view>
+					{{title1 ? title1 : "请选择地址"}}
+				</view>
+				<itmister-address-picker ref="addressElone" @confirmChange="confirmChangeOne"></itmister-address-picker>
+				<u--image :showLoading="true" class="exchange" src="../../static/images/carSource/exchange.png"
+					width="43px" height="43px" @click="replace"></u--image>
+				<view @click="selectAddress(2)" class="screen_item">
+					<view class="screen_sign sign2">卸</view>
+					{{title2 ? title2 : "请选择地址"}}
+				</view>
+				<!-- :wholeCountry="true" -->
+				<itmisterAddressPickerOther ref="addressEltwo" @confirmChange="confirmChangeTwo"></itmisterAddressPickerOther>
+			</view>
+			<view class="route">
+				<view v-for="(item,index) in routeData">
+					<view class="flex route_item">
+						<view style="width: 20%;">
+							<u-avatar :src="item.driverPortrait" size="60"></u-avatar>
+						</view>
+						<view style="width: 80%;">
+							<view class="flex">
+								<view class="driver_name">
+									{{item.driverNickname}}
+								</view>
+								<!-- <view class="driver_invite">
+									<view class="route_invite" style="margin-left: 30px;" @click="invitation(item)">
+										<image src="../../static/images/carSource/yaoqing.png" mode=""
+											style="width: 26rpx;height: 26rpx;margin-rigth:10rpx;"></image>邀请
+									</view>
+								</view> -->
+							
+								<u-picker :show="fleetShow" :columns="columns" @cancel="fleetClose"
+									@confirm="invitationCheng">
+								</u-picker>
+							</view>
+							<view class="address" v-for="(items,index) in item.startAdress">
+								<span class="spots spot1"></span>
+								{{item.startAdress[index]}}
+								<!-- {{item.sendCity ? item.sendCity: item.sendProvince }}{{item.sendArea}} -->
+								<image class="jt-icon" src="@/static/images/goodSource/jt.png" mode='widthFix'></image>
+								<span class="spots spot2"></span>
+								{{item.endAdress[index]}}
+								<!-- {{item.unloadCity ? item.unloadCity: item.unloadProvince }}{{item.unloadArea}} -->
+							</view>
+						</view>
+					</view>
+				</view>
+				<u-loadmore :status="status"  :nomore-text="nomoreText" />
+			</view>
+			<!-- <view v-if="routeData.length == 0" style="background: #FFFFFF;text-align: center;">
+				暂无数据
+			</view> -->
+		</view>
+		<view class="riders" v-show="indexbtn == 2">
+			<view class="flex riders_top">
+				<view @click="selectChange" class="riders_city">{{city ? city : province}}</view>
+				<itmister-address-picker ref="addressElthree" :showCheck="false" @confirmChange="confirmChangethree">
+				</itmister-address-picker>
+				<u-search placeholder="输入车队信息关键字" bgColor="#ffffff" v-model="searchKeyWord" @search="getList"
+					maxlength="15"></u-search>
+			</view>
+			<view class="fleet">
+				<view v-for="(item,index) in formData" class="flex">
+					<view class="fleet_item">
+						<view class="flex">
+							<u-avatar :src="item.coverUrl" size="45"></u-avatar>
+							<view class="fleet_name">
+								{{item.fleetName}}
+								<view class="fleet_member flex">
+									<u-avatar-group :urls="item.fleetMemberUrl.split(',')" size="24" gap="0.4">
+									</u-avatar-group>
+									<text class="fleet_number">{{item.fleetMemberNum}}人</text>
+									<!-- <image src="../../static/images/myimg/gengduo1@3x.png" class="arrow"></image> -->
+									<image src="../../static/images/myimg/gengduo1.png" mode=""
+										style="width: 18rpx;height: 20rpx;margin-top:14rpx;"></image>
+								</view>
+							</view>
+							<view class="fleet_invite"  @click="">队长</view>
+							<!-- <view class="fleet_invite" v-else>{{item.fleetMemberStatus}}</view> -->
+						</view>
+
+						<view class="fleet_introduce">
+							<u-read-more ref="uReadMore" :toggle="true" :shadowStyle="shadowStyle" closeText="查看全部"
+								:showHeight="20">
+								<rich-text :nodes="item.fleetProfile"></rich-text>
+							</u-read-more>
+
+							<!-- <view class="fleet_text" v-if="item.textShow">{{item.fleetProfile}}</view>
+							<view class="" v-else>{{item.fleetProfile}}</view>
+								<span class="btn_change" @click="textChange(index)">{{switchtext}}</span> -->
+
+						</view>
+						<view class="" v-if="item.img">
+							<u-upload class="uview-upload" :fileList="item.img" :deletable="false" name="1" multiple
+								:maxCount="1">
+							</u-upload>
+						</view>
+					</view>
+				</view>
+				<u-loadmore :status="status"  :nomore-text="nomoreText" />
+			</view>
+
+		<!-- 	<view v-if="formData.length == 0" style="background: #FFFFFF;text-align: center;">
+				暂无数据
+			</view> -->
+		</view>
+		<u-toast ref="uToast"></u-toast>
+		<u-modal :show="isShowAlert" :title="alertTitle" :closeOnClickOverlay='true' :showCancelButton='true'
+			confirmColor='#2772FB' @confirm="confirmClick" @close="cancelClick" @cancel="cancelClick"></u-modal>
+		<u-modal :show="tipsShow" :content='tipsText' :confirmText="btnTips" @confirm="authentication"></u-modal>
+	</view>
+</template>
+
+<script>
+	import itmisterAddressPicker from '@/components/itmister-address-picker/itmister-address-picker.nvue'
+	import itmisterAddressPickerOther from '@/components/itmister-address-picker/itmister-address-picker-other.nvue'
+	export default {
+		components: {
+			itmisterAddressPicker,
+			itmisterAddressPickerOther
+		},
+		data() {
+			return {
+				indexbtn: 1,
+				routeData: [], //列表
+				// show1: false,
+				// show2: false,
+				title1: "",
+				title2: "",
+				sendInfo: {
+					sendProvince: "",
+					sendCity: "",
+					sendArea: ""
+				},
+				unloadInfo: {
+					unloadProvince: "",
+					unloadCity: "",
+					unloadArea: ""
+				},
+				fleetLocation: {},
+				formData: [],
+				searchKeyWord: "",
+				province: "", //省
+				city: "", //市
+				alertTitle: "",
+				isShowAlert: false,
+				commonId: "",
+				addMember: {},
+				tipsShow: false,
+				tipsText: "",
+				btnTips: '去认证',
+				fleetShow: false,
+				columns: [],
+				fleetInviteList: [],
+				//文本折叠
+				shadowStyle: {
+					backgroundImage: "none",
+					paddingTop: "0",
+				},
+				status: 'loadmore',
+				 nomoreText: '实在没有了'
+			}
+		},
+		created() {},
+		onShow() {
+			if (uni.getStorageSync("sendInfo")) { //从缓存中获取  上一次的装车地 卸车地
+				this.sendInfo = uni.getStorageSync("sendInfo")
+				this.title1 = this.sendInfo.sendProvince + this.sendInfo.sendCity + this.sendInfo.sendArea
+			} else {
+				this.sendInfo.sendProvince = "北京"
+				this.title1 = "北京"
+			}
+			if (uni.getStorageSync("unloadInfo")) {
+				this.unloadInfo = uni.getStorageSync("unloadInfo")
+				this.title2 = this.unloadInfo.unloadProvince + this.unloadInfo.unloadCity + this.unloadInfo.unloadArea
+			} else {
+				this.title2 = '全国'
+				this.unloadInfo.unloadProvince = '全国'
+			}
+			if (uni.getStorageSync("fleetLocation")) {
+				this.province = uni.getStorageSync("fleetLocation").province
+				this.city = uni.getStorageSync("fleetLocation").city
+			} else {
+				this.province = ''
+				this.city = '北京'
+			}
+			this.commonId = uni.getStorageSync("firstAuthentication").commonId
+			// this.checking()
+			this.getList()
+		},
+		onLoad() {},
+		methods: {
+			checking(){
+				this.statusVal = uni.getStorageSync("firstAuthentication").authenticationStatus
+				// if (uni.getStorageSync("firstAuthentication")) {
+				// 	if(this.statusVal != "已认证" && this.statusVal != "已过期"){
+				// 		uni.setTabBarItem({
+				// 			  index: 1,
+				// 			  text: '车友',
+				// 			  pagePath: "/pages/riders/checkPage",
+				// 			  iconPath: 'static/images/common/huoyuan@2x(1).png',
+				// 			  selectedIconPath: 'static/images/common/huoyuan@2x.png'
+				// 		})
+				// 		uni.switchTab({
+				// 			url: '/pages/riders/checkPage'
+				// 		});
+				// 	}else{
+				// 		uni.setTabBarItem({
+				// 			  index: 1,
+				// 			  text: '车友',
+				// 			  pagePath: "/pages/riders/index",
+				// 			  iconPath: 'static/images/common/huoyuan@2x(1).png',
+				// 			  selectedIconPath: 'static/images/common/huoyuan@2x.png'
+				// 		})
+				// 		uni.switchTab({
+				// 			url: '/pages/riders/index'
+				// 		});
+				// 	}
+				// } else if(!uni.getStorageSync("firstAuthentication")&&!uni.getStorageSync("userInfo")) { //判断有没有登录
+				// 	this.tipsShow = true
+				// 	this.tipsText = "您尚未登录,请前去登录!"
+				// 	this.btnTips = "去登录"
+				// }else if (!uni.getStorageSync("firstAuthentication")){ //注册登录后并没有认证司机
+				// 	uni.setTabBarItem({
+				// 		  index: 1,
+				// 		  text: '车友',
+				// 		  pagePath: "/pages/riders/checkPage",
+				// 		  iconPath: 'static/images/common/huoyuan@2x(1).png',
+				// 		  selectedIconPath: 'static/images/common/huoyuan@2x.png'
+				// 	})
+				// 	uni.switchTab({
+				// 		url: '/pages/riders/checkPage'
+				// 	});
+				// }
+			},
+			fleetClose() {
+				this.fleetShow = false
+			},
+			invitation(item) {
+				this.addMember = {}
+				this.columns = []
+				this.addMember.commonId = item.commonId
+				this.addMember.driverNickname = item.driverNickname
+				this.addMember.driverPortrait = item.driverPortrait
+
+				this.$request.baseRequest('get', '/fleetInfo/fleetInfos', {
+						commonId: this.commonId,
+					}).then(res => {
+						this.fleetInviteList = res.data
+						let flrrtArray = []
+						for (let i = 0; i < res.data.length; i++) {
+							flrrtArray.push(res.data[i].fleetName)
+						}
+						this.columns.push(flrrtArray)
+						if (this.columns.length == 0) {
+							uni.$u.toast("无可邀请的车队");
+						} else {
+							this.fleetShow = true
+						}
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+			},
+			invitationCheng(e) { //邀请
+				this.addMember.fleetId = this.fleetInviteList[e.indexs[0]].id
+				this.fleetShow = false
+				this.addMember.joinFlag = 2
+				this.$request.baseRequest('post', '/fleetMemberInfo/api/addFleetMemberInfo', this.addMember).then(res => {
+						if (res.code == 200) {
+							this.$refs.uToast.show({
+								type: 'success',
+								message: "邀请已发出",
+							})
+						} else {
+							uni.$u.toast(res.message);
+						}
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+			},
+			authentication() {
+				this.tipsShow = false
+				if (this.statusVal == '未认证') {
+					this.$u.route("/pages/mine/driverCertification")
+				} else if (this.statusVal == '未通过') {
+					this.$u.route("/pages/mine/editDriverCertification")
+				} else if (this.statusVal == '审核中') {
+					// this.$u.route("")
+					uni.switchTab({
+						url: '/pages/mine/index'
+					});
+				} else {
+					uni.$u.route('/pages/public/login');
+				}
+			},
+			selectAddress(num) {
+				if (num == 1) {
+					this.$refs.addressElone.show();
+				} else if (num == 2) {
+					this.$refs.addressEltwo.show();
+				}
+			},
+			selectChange() {
+				this.$refs.addressElthree.show();
+			},
+			// 确认选中
+			confirmChangeOne(address) {
+				if (address.province == '全国') {
+					uni.$u.toast("发货地不可以是全国")
+					// this.$refs.addressElone.show();
+					return
+				}
+				this.sendInfo.sendProvince = address.province ? address.province : ''
+				this.sendInfo.sendCity = address.city ? address.city : ''
+				this.sendInfo.sendArea = address.area ? address.area : ''
+				if (address.city == '全省') {
+					this.title1 = address.province
+					this.sendInfo.sendCity = ""
+					this.sendInfo.sendArea = ""
+				} else if (address.area == '全市') {
+					this.title1 = address.province + address.city
+					this.sendInfo.sendArea = ""
+				} else {
+					this.title1 = address.province + address.city + address.area;
+				}
+				uni.setStorageSync("sendInfo", this.sendInfo)
+				this.getList()
+			},
+			confirmChangeTwo(address) {
+				this.unloadInfo.unloadProvince = address.province ? address.province : ''
+				this.unloadInfo.unloadCity = address.city ? address.city : ''
+				this.unloadInfo.unloadArea = address.area ? address.area : ''
+				if (address.city == '全省') {
+					this.title2 = address.province
+					this.unloadInfo.unloadCity = ""
+					this.unloadInfo.unloadArea = ""
+				} else if (address.area == '全市') {
+					this.title2 = address.province + address.city
+					this.unloadInfo.unloadArea = ""
+				} else {
+					if(address.province == '全国'){
+						this.title2 = address.province
+					}else{
+						this.title2 = address.province + address.city + address.area;
+					}
+				}
+				uni.setStorageSync("unloadInfo", this.unloadInfo)
+				this.getList()
+			},
+			confirmChangethree(address) {
+				this.province = address.province
+				this.city = address.city
+				if (address.city == "全省") {
+					this.city = ""
+				}
+				this.fleetLocation.province = address.province
+				this.fleetLocation.city = address.city == "全省" ? "" : address.city
+				uni.setStorageSync("fleetLocation", this.fleetLocation)
+				this.getList()
+			},
+			joinFleet(item) {
+				this.addMember.commonId = this.commonId
+				this.addMember.driverNickname = uni.getStorageSync("firstAuthentication").driverCall
+				this.addMember.driverPortrait = uni.getStorageSync("userInfo").avatarUrl
+				this.addMember.fleetId = item.id
+				this.alertTitle = "确定申请加入该车队?"
+				this.isShowAlert = true
+			},
+			// addressChange(num) {
+			// 	if (num == 1) {
+			// 		this.show1 = true
+			// 		this.show2 = false
+			// 	} else {
+			// 		this.show1 = false
+			// 		this.show2 = true
+			// 	}
+			// },
+			cancelClick() {
+				this.isShowAlert = false
+			},
+			confirmClick() {
+				this.isShowAlert = false
+				this.addMember.joinFlag = 1
+				this.$request.baseRequest('post', '/fleetMemberInfo/api/addFleetMemberInfo', this.addMember).then(res => {
+						if (res.code == '200') {
+							this.$refs.uToast.show({
+								type: 'success',
+								message: "申请成功,等待队长审核",
+							})
+							this.getList()
+						} else {
+							this.$refs.uToast.show({
+								type: 'success',
+								message: "申请失败,请稍后重试",
+							})
+						}
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+			},
+			getList() {
+				this.status = 'loading';
+				if (this.indexbtn == 1) {
+					this.$request.baseRequest('get', '/commonRoute/driverList', {
+							pageSize: 10,
+							currentPage: 1,
+							sendProvince: this.sendInfo.sendProvince,
+							sendCity: this.sendInfo.sendCity,
+							sendArea: this.sendInfo.sendArea,
+							unloadProvince: this.unloadInfo.unloadProvince,
+							unloadCity: this.unloadInfo.unloadCity,
+							unloadArea: this.unloadInfo.unloadArea
+						}).then(res => {
+							if (res.code == 200) {
+								this.routeData = res.data.records
+								for (let i = 0; i < this.routeData.length; i++) {
+									if (this.routeData[i].startAdress) {
+										this.routeData[i].startAdress = this.routeData[i].startAdress.split(",")
+									}
+									if (this.routeData[i].endAdress) {
+										this.routeData[i].endAdress = this.routeData[i].endAdress.split(",")
+									}
+								}
+								if(res.data.total == 0){
+									this.status = 'nomore'
+								}else{
+									this.status = 'loadmore'
+								}
+							}
+						})
+						.catch(res => {
+							uni.$u.toast(res.message);
+						});
+				} else {
+					let that = this
+					this.$request.baseRequest('get', '/fleetInfo/selectFleetInfo', {
+							commonId: this.commonId,
+							province: this.province, //省
+							city: this.city, //市
+							searchKeyWord: this.searchKeyWord,
+							pageSize: 10,
+							currentPage: 1
+						}).then(res => {
+							that.formData = res.data.records
+							for (let i = 0; i < that.formData.length; i++) {
+								that.formData[i].textShow = false
+								if (that.formData[i].fleetUrl) {
+									that.formData[i].img = []
+									let imgList = that.formData[i].fleetUrl.split(",")
+									for (let j = 0; j < imgList.length; j++) {
+										that.formData[i].img.push({
+											url: imgList[j]
+										})
+									}
+								}
+							}
+							if(res.data.total == 0){
+								this.status = 'nomore'
+							}else{
+								this.status = 'loadmore'
+							}
+						})
+						.catch(res => {
+							uni.$u.toast(res.message);
+						});
+				}
+			},
+			changebtn(num) {
+				this.indexbtn = num
+				this.getList()
+			},
+			// 回调参数为包含columnIndex、value、values
+			confirm(e) {
+				console.log('confirm', e)
+				this.show = false
+			},
+			replace() {
+				if (this.unloadInfo.unloadProvince == "全国") {
+					uni.$u.toast("发货地不可以是全国")
+					return
+				}
+				let _obj = {}
+				_obj = JSON.parse(JSON.stringify(this.sendInfo))
+				this.sendInfo.sendProvince = this.unloadInfo.unloadProvince
+				this.sendInfo.sendCity = this.unloadInfo.unloadCity
+				this.sendInfo.sendArea = this.unloadInfo.unloadArea
+				this.unloadInfo.unloadProvince = _obj.sendProvince
+				this.unloadInfo.unloadCity = _obj.sendCity
+				this.unloadInfo.unloadArea = _obj.sendArea
+				let text = ""
+				text = this.title1
+				this.title1 = this.title2
+				this.title2 = text
+				this.getList()
+			},
+			myPage() {
+				uni.$u.route("/pages/riders/myTeam")
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.center {
+		background: #F2F4F7;
+
+		.row1 {
+			display: flex;
+			justify-content: flex-end;
+
+			.flex-end {
+				margin-top: 50rpx;
+			}
+
+			.center_top {
+				width: 40%;
+				margin: 60rpx auto 0;
+
+				.center_top_btn {
+					width: 50%;
+					text-align: center;
+					color: #000000;
+					font-size: 42rpx;
+					font-weight: 600;
+				}
+
+				.center_top_btn1 {
+					color: #BBBBBB;
+				}
+			}
+		}
+
+		.top_img {
+			width: 70rpx;
+			height: 70rpx;
+		}
+	}
+
+
+	.route {
+		padding: 40rpx;
+		margin-top: 40rpx;
+		background: #FFFFFF;
+
+		.route_item {
+			margin-bottom: 40rpx;
+			width: 100%;
+
+			.route_invite {
+				width: 146rpx;
+				height: 54rpx;
+				border-radius: 35px;
+				text-align: center;
+				color: #FFFFFF;
+				line-height: 54rpx;
+				background: #2772FB;
+			}
+
+			.driver_name {
+				width: 50%;
+				margin: 20rpx 0 0 30rpx;
+				color: #333333;
+				font-size: 30rpx;
+			}
+			.driver_invite{
+				display: flex;
+				width: 50%;
+				justify-content: flex-end;
+			}
+		}
+
+		.address {
+			margin-left: 30rpx;
+
+			// line-height: 34rpx;
+			.spots {
+				width: 20rpx;
+				height: 20rpx;
+				display: inline-block;
+				border-radius: 10rpx;
+				margin-right: 10rpx;
+				margin-bottom: 4rpx
+			}
+
+			.spot1 {
+				background: #2772FB;
+			}
+
+			.spot2 {
+				background: #FE6300;
+			}
+		}
+	}
+
+	.driver {
+		.screen {
+			background-color: #FFFFFF;
+			width: 92%;
+			border-radius: 20rpx;
+			height: 200rpx;
+			margin: 0 auto;
+			margin-top: 60rpx;
+
+			.screen_item {
+				padding: 60rpx 30rpx;
+				width: 40%;
+				text-align: center;
+
+				.screen_sign {
+					width: 40rpx;
+					height: 40rpx;
+					text-align: center;
+					margin: 0 auto;
+					border-radius: 6px;
+					color: #FFFFFF;
+					font-size: 22rpx;
+					line-height: 40rpx;
+				}
+
+				.sign1 {
+					background: #2772FB;
+				}
+
+				.sign2 {
+					background: #FE6300;
+				}
+			}
+
+			.exchange {
+				line-height: 200rpx;
+				margin-top: 60rpx;
+			}
+		}
+	}
+
+	.riders {
+		.riders_top {
+			margin-top: 40rpx;
+
+			.riders_city {
+				margin-top: 10rpx;
+				margin: 10rpx 30rpx;
+			}
+		}
+
+		.fleet {
+			padding: 30rpx;
+			// margin: 40rpx 0;
+			margin-top: 40rpx;
+			background: #FFFFFF;
+			border-top-right-radius: 40rpx;
+			border-top-left-radius: 40rpx;
+
+			.fleet_item {
+
+				// margin-top: 10rpx;
+				width: 100%;
+				margin-bottom: 20rpx;
+
+				.fleet_name {
+					margin-left: 20rpx;
+					width: 70%;
+				}
+
+				.fleet_invite {
+					text-align: center;
+					background-color: #2772FB;
+					width: 128rpx;
+					height: 66rpx;
+					line-height: 66rpx;
+					border-radius: 35rpx;
+					color: #fff;
+				}
+
+				.fleet_introduce {
+					margin: 40rpx 0;
+					position: relative;
+
+					// .fleet_text{
+					// 	overflow: hidden;
+					// 	word-break: break-all;  /* break-all(允许在单词内换行。) */
+					// 	text-overflow: ellipsis;  /* 超出部分省略号 */
+					// 	display: -webkit-box; /** 对象作为伸缩盒子模型显示 **/
+					// 	-webkit-box-orient: vertical; /** 设置或检索伸缩盒对象的子元素的排列方式 **/
+					// 	-webkit-line-clamp: 3; /** 显示的行数 **/
+					// }
+					.btn_change {
+						position: absolute;
+						right: 0rpx;
+						bottom: 0rpx;
+						color: #2772fb;
+					}
+				}
+
+				.fleet_member {
+					margin-top: 20rpx;
+				}
+
+				.fleet_number {
+					margin: 6rpx 10rpx;
+					color: #ABABAB;
+					font-size: 24rpx;
+				}
+			}
+		}
+
+
+	}
+
+	.jt-icon {
+		position: relative;
+		top: 16rpx;
+		width: 60rpx;
+		margin: 0 20rpx;
+		// margin-top: 10rpx;
+
+	}
+</style>

+ 10 - 8
pages/mine/company/editcompany.vue

@@ -299,7 +299,7 @@
 					})
 					return true
 				}
-				if (this.dataDetails.companyName.length<4||this.dataDetails.companyName.length<25) {
+				if (this.dataDetails.companyName.length<4||this.dataDetails.companyName.length>25) {
 					this.$refs.uToast.show({
 						type: 'error',
 						message: "企业名称字数在4-25个字!",
@@ -366,13 +366,13 @@
 						return true
 					}
 				}
-				if (uni.$u.test.isEmpty(this.dataDetails.videoAddressUrl)) {
-					this.$refs.uToast.show({
-						type: 'error',
-						message: "视频认证不能为空!",
-					})
-					return true
-				}
+				// if (uni.$u.test.isEmpty(this.dataDetails.videoAddressUrl)) {
+				// 	this.$refs.uToast.show({
+				// 		type: 'error',
+				// 		message: "视频认证不能为空!",
+				// 	})
+				// 	return true
+				// }
 			},
 			submit() {
 				if (this.validate()) return
@@ -583,6 +583,7 @@
 	}
 
 	.preview-card-img {
+		overflow: hidden;
 		// /deep/uni-image>div, uni-image>img {
 		//     transform: scale(1.5) rotate(-90deg);
 		// }
@@ -731,4 +732,5 @@
 	.myVideo{
 		
 	}
+
 </style>

+ 217 - 0
pages/mine/driverEvaluation.vue

@@ -0,0 +1,217 @@
+<template>
+	<view class="content">
+		<mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" class="mescroll">
+		<view class="content-list" v-for="(item,index) in list" :key='index'>
+			<view class="top flex flex-space-between">
+				<view class="left flex">
+					<view>
+						{{item.orderNumber}}
+					</view>
+					<u-icon name="arrow-right" color="#ccc" size="18"></u-icon>
+				</view>
+				<view class="right gray999">
+					{{item.createDate.split(' ')[0]}}
+				</view>
+			</view>
+			<view class="flex align-center name-row">
+				<view class="sj-row hz-name">
+					{{item.orderInfo.driverName}}:
+				</view>
+				<view class="xx">
+					<start :count="count" v-model="item.count" size="35" activeColor="#ffaa00" :size="18" :allowHalf='true' :readonly='true'>
+					</start>
+				</view>
+			</view>
+			<view class="gray999 xy-row">
+				<view class='item'>
+					司机信用:{{item.driverCredit}}星
+				</view>
+				<view class='item'>
+					运费效率:{{item.tranEfficiency}}星
+				</view>
+				<view class='item'>
+					运输安全:{{item.tranSafety}}星
+				</view>
+				<view class='item'>
+					服务质量:{{item.serviceQuality}}星
+				</view>
+				<view class='item'>
+					满意度:{{item.satisfaction}}星
+				</view>
+			</view>
+			<!-- 
+			<view class="xkuang">
+				<view style="display: flex;" class="flex-space-between" v-for="(item,index) in rate">
+					<view class="ziti">{{item.name}}</view>
+					<start :count="item.count" style="margin-top: 15px; margin-left: 50px;" size="35"
+						activeIcon="heart-fill" inactiveIcon="heart" activeColor="#ffaa00" v-model="item.value1">
+					</start>
+				</view>
+			</view> -->
+			<view class="pl-style">
+				{{item.ownerContent}}
+			</view>
+			<view class="color2979ff flex">
+				<view @click="clickZK">展开</view>
+				<u-icon name="arrow-down" color="#2979ff" size="18" v-if="isOpen"></u-icon>
+				<u-icon name="arrow-up" color="#2979ff" size="18" v-else></u-icon>
+			</view>
+			<view v-if="isOpen" class="img-content">
+				<u--image :showLoading="true" :src="item1" width="80px" height="80px" class="img" v-for="(item1,index) in item.imgList"></u--image>
+			</view>
+			<u-line class="line"></u-line>
+			<view class="gray999">
+				{{item.ownerAnonymous==1?"匿名评价":''}}
+			</view>
+		</view>
+	</mescroll-body>
+	</view>
+</template>
+
+<script>
+	var that
+	import {
+		mapState
+	} from 'vuex';
+	import start from '../../common/components/uni-rate.vue'
+	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
+	export default {
+		mixins: [MescrollMixin], // 使用mixin
+		components: {
+			start
+		},
+		data() {
+			return {imgList:[],
+				list:[],
+				isOpen: true,
+				count: '5',
+				value: '3',
+				src: 'https://cdn.uviewui.com/uview/album/1.jpg',
+				rate: [{
+						name: "司机信用",
+						count: "5",
+						value1: '5',
+					},
+					{
+						name: "运输效率",
+						count: "5",
+						value1: '3',
+					},
+					{
+						name: "运输安全",
+						count: "5",
+						value1: '5',
+					},
+					{
+						name: "服务质量",
+						count: "5",
+						value1: '2',
+					}, {
+						name: "满意度",
+						count: "5",
+						value1: '1',
+					}
+				],
+			};
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo', 'firstAuthentication'])
+		},
+		onLoad() {
+			that = this
+		},
+		methods: {
+			upCallback(page) {
+				that.$request.baseRequest('get', '/evaluateInfo/selectEvaluateInfo', {
+						ownerId: this.userInfo.id,
+						flag:1,
+						pageSize: page.size,
+						currentPage: page.num
+					}).then(res => {debugger
+						if (page.num == 1) that.list = [];
+						that.list = that.list.concat(res.data.records); //追加新数据
+						for(let i = 0;i<that.list.length;i++){
+							that.list[i].imgList =  that.list[i].ownerUrl.split(',')
+							that.list[i].count =(Number(that.list[i].driverCredit)+Number(that.list[i].tranEfficiency)+Number(that.list[i].tranSafety)+Number(that.list[i].serviceQuality)+Number(that.list[i].satisfaction))/25*5 
+						}
+						that.mescroll.endBySize(res.data.records.length, res.data.total);
+						uni.hideLoading()
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+			},
+			clickZK() {
+				this.isOpen = !this.isOpen
+			},
+			getList(){
+			
+			},
+		},
+
+	}
+</script>
+
+<style lang="scss">
+	.ziti {
+		color: #909090;
+		margin-top: 23px;
+	}
+
+	.xkuang {
+		margin-top: 20px;
+		background-color: #FAFAFA;
+		padding-left: 30px;
+	}
+
+	.content-list {
+		margin: 20rpx;
+		padding: 20rpx;
+		background: white;
+		border-radius: 20rpx;
+
+	}
+
+	.hz-name {
+		color: #999;
+		margin-right: 10rpx;
+	}
+
+	.gray999 {
+		color: #999;
+	}
+
+	.name-row {
+		margin: 20rpx 0;
+	}
+
+	.item {
+		margin-right: 20rpx;
+		font-size: 26rpx;
+		display: inline-block;
+	}
+
+	.xy-row {
+		margin-bottom: 40rpx;
+	}
+
+	.pl-style {
+		margin-bottom: 40rpx;
+	}
+
+	.color2979ff {
+		color: #2979ff;
+	}
+	.img-content{
+		margin-top: 20rpx;
+		.img{
+			display: inline-block;
+			margin-right: 10rpx;
+			border-radius: 20rpx;
+		}
+		
+	}
+	.line{
+		margin: 20rpx 0!important;
+	}
+</style>

+ 356 - 0
pages/mine/evaluate.vue

@@ -0,0 +1,356 @@
+<template>
+	<mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback"
+		class="mescroll">
+	<view class="page_pingjia4">
+		
+		<view class="kuang">
+			<view class="order-row flex flex-space-between">
+				<view class="flex align-center">
+					<view>张先生</view>
+					<view>匿名评价</view>
+				</view>
+				
+				<view class="flex align-center">
+					<!-- <image :src="objData.driverPortrait" mode="widthFix" class="tx-img"></image> -->
+					<!-- <view>{{objData.driverName}}</view> -->
+					<view>2022-04-21</view>
+				</view>
+			</view>
+			<view class="xkuang">
+				<view style="display: flex;" class="flex-space-between" v-for="(item,index) in rate"
+					@click="clickStar(index)">
+					<view class="flex" style="margin: 10rpx 0;">
+						<view class="ziti">{{item.name}}</view>
+						<start :count="item.count" style="" size="35" activeIcon="heart-fill" inactiveIcon="heart"
+							activeColor="#ffaa00" v-model="item.value1" @change="getVal" :size="22">
+						</start>
+					</view>
+
+					<view class="">
+						{{item.level}}
+					</view>
+				</view>
+			</view>
+			<view>
+				<!-- <u--textarea style="margin-top: 20px;" background-color="#6d6d6d" v-model="value3"
+					placeholder="评价一下这单发运任务~">
+				</u--textarea> -->
+				<view>是否点击可浪费啊据了解SD卡见风使舵是否点击拉分手的距离看拉圣诞节福利发送到节流防抖拉三级分类库山东假的李开复加空间撒的卢卡斯的房间里快递费</view>
+			</view>
+		<!-- 	<u-upload class="uview-upload" :fileList="fileList1" @afterRead="afterRead($event)" @delete="deletePic"
+				name="1" multiple :maxCount="9" style="margin-bottom: 80rpx;"></u-upload> -->
+				<div class="imgShow">
+					<image src='https://cdn.uviewui.com/uview/album/1.jpg' class="img img_item" v-for="(item,index) in 9" :key='index'></image>
+				 </div>
+			<!-- <u-line></u-line> -->
+		</view>
+		<!-- <view class="anniu" v-for="(item,index) in button">
+			<u-button type="warning">{{item.name}}</u-button>
+		</view> -->
+		<u-toast ref="uToast"></u-toast>
+	</view>
+	</mescroll-body>
+</template>
+
+<script>
+	var that
+	import {
+		mapState
+	} from 'vuex';
+	import start from '../../common/components/uni-rate.vue'
+	import uploadImage from '@/components/ossutil/uploadFile.js';
+		import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
+	export default {
+		mixins: [MescrollMixin], // 使用mixin
+		components: {
+			start
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo', 'firstAuthentication'])
+		},
+		data() {
+			return {
+				imageList :[],
+					objData:{},
+				starIndex: '',
+				checkboxValue1: [],
+				checkboxList1: [{
+					name: '匿名评论',
+					disabled: false
+				}],
+				count: "5",
+				value: '',
+				value3: '',
+				fileList1: [],
+				por: [{
+					title: '"无可挑剔"',
+				}],
+			rate: [{
+					name: "货主信用",
+					count: "5",
+					value1: '5',
+					level: '非常好'
+				},
+				{
+					name: "运费支付",
+					count: "5",
+					value1: '5',
+					level: '非常好'
+				},
+				{
+					name: "综合满意度",
+					count: "5",
+					value1: '5',
+					level: '非常满意'
+				}
+			],
+				button: [{
+					name: '提交'
+				}],
+
+				hidden: [{
+					name: '匿名评论',
+					disabled: false
+				}],
+			}
+		},
+		onNavigationBarButtonTap() {debugger
+			let _data = {
+				 driverId: this.objData.commonId,
+				 ownerName:this.checkboxValue1?this.objData.cargoOwner:'',
+				 ownerPortrait:this.checkboxValue1?this.userInfo.avatarUrl:'',
+				 orderId:this.objData.id,
+				 orderNumber:this.objData.orderNo,
+				 driverCredit:this.rate[0].value1,
+				 tranEfficiency:this.rate[1].value1,
+				 tranSafety:this.rate[2].value1,
+				 serviceQuality:this.rate[3].value1,
+				 satisfaction:this.rate[4].value1,
+				 ownerContent:this.value3,
+				 ownerUrl:this.imageList.toString(),
+				 ownerAnonymous:this.checkboxValue1.length!=0?1:0
+				 
+			}
+			that.$request.baseRequest('post', '/evaluateInfo/api/addEvaluateInfo', _data).then(res => {
+				if (res.code==200) {
+					this.$refs.uToast.show({
+						type: 'success',
+						message: "评价成功",
+						complete() {
+							uni.navigateTo({
+								url: '/pages/order/index'
+							})
+						}
+					})
+				}else{
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "评价失败",
+					})
+				}
+			})
+		},
+		onLoad(options) {
+			that = this
+			// this.objData = JSON.parse(options.val)
+			// console.log(this.objData)
+			// that.imageList = []
+			// this.getList()
+		},
+		methods: {
+			upCallback(page) {
+				that.$request.baseRequest('get', '/evaluateInfo/selectEvaluateInfo', {
+						ownerId: this.userInfo.id,
+						flag: 2,
+						pageSize: page.size,
+						currentPage: page.num
+					}).then(res => {
+						debugger
+				// 		if (page.num == 1) that.list = [];
+				// 		that.list = that.list.concat(res.data.records); //追加新数据
+				// 		for (let i = 0; i < that.list.length; i++) {
+				// 			if (that.list[i].ownerUrl) {
+				// 				that.list[i].imgList = that.list[i].ownerUrl.split(',')
+				// 			}
+				
+				// 			that.list[i].count = (Number(that.list[i].ownerCredit) + Number(that.list[i]
+				// 				.tranEfficiency) + Number(that.list[i].freightPayment) + Number(that.list[i]
+				// 				.serviceQuality) + Number(that.list[i].comprehensiveSatisfaction)) / 15 * 5
+				// 		}
+				// 		that.mescroll.endBySize(res.data.records.length, res.data.total);
+				// 		uni.hideLoading()
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+				that.$request.baseRequest('get', '/orderInfo/selectHaoPing', {
+						commonId: this.userInfo.id,
+						haoType: ''
+					}).then(res => {
+						
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+			},
+			clickStar(index) {
+				console.log(index)
+				this.selectStar = index
+				if (index == 0 || index == 1|| index == 2|| index == 3) {
+					if (this.starIndex == '1') {
+						this.rate[index].level = '极差'
+					} else if (this.starIndex == '2') {
+						this.rate[index].level = '差'
+					} else if (this.starIndex == '3') {
+						this.rate[index].level = '一般'
+					} else if (this.starIndex == '4') {
+						this.rate[index].level = '较好'
+					} else if (this.starIndex == '5') {
+						this.rate[index].level = '非常好'
+					}
+
+				} else {
+					if (this.starIndex == '1') {
+						this.rate[index].level = '极不满意'
+					} else if (this.starIndex == '2') {
+						this.rate[index].level = '不满意'
+					} else if (this.starIndex == '3') {
+						this.rate[index].level = '尚可'
+					} else if (this.starIndex == '4') {
+						this.rate[index].level = '满意'
+					} else if (this.starIndex == '5') {
+						this.rate[index].level = '非常满意'
+					}
+				}
+
+
+
+			},
+			getVal(e) {
+				debugger
+				this.starIndex = e.value
+				console.log(e)
+			},
+			checkboxChange(n) {
+				console.log('change', n);
+			},
+			// 删除图片
+			deletePic(event) {
+				this[`fileList${event.name}`].splice(event.index, 1)
+			},
+			// 新增图片
+			async afterRead(event) {
+				// console.log(this[`fileList${event.name}`])
+				// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
+				let lists = [].concat(event.file)
+				let fileListLen = this[`fileList${event.name}`].length
+				lists.map((item) => {
+					this[`fileList${event.name}`].push({
+						...item,
+						status: 'uploading',
+						message: '上传中'
+					})
+				})
+				for (let i = 0; i < lists.length; i++) {
+					const result = await this.uploadFilePromise(lists[i], lists[i].url)
+					// console.log(result)
+					let item = this[`fileList${event.name}`][fileListLen]
+					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
+						status: 'success',
+						message: '',
+						url: result
+					}))
+					fileListLen++
+				}
+			},
+			uploadFilePromise(file, url) {
+				debugger
+				uploadImage('image', url, 'appData/',
+					result => {
+						debugger
+						// 上传成功回调函数
+						console.log('图片地址', result)
+						that.imageList.push(result)
+						// this.dataDetails.certificateAddressUrl=this.dataDetails.certificateAddressUrl +',' +result
+
+					}
+				)
+			},
+			// 删除图片
+			deletePic(event) {
+				this[`fileList${event.name}`].splice(event.index, 1)
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.page_pingjia4 {
+		background-color: #ffffff;
+		padding: 20rpx;
+
+		.anniu {
+			margin-top: 48px;
+			margin-left: 20px;
+		}
+
+		.niming {
+			margin-top: 20px;
+		}
+
+		.ziti {
+			color: #909090;
+			margin-right: 20rpx;
+			width: 160rpx;
+		}
+
+		.xkuang {
+			margin-top: 20px;
+		}
+
+		.xx {
+			margin-left: 24%;
+			padding-top: 10px;
+		}
+
+		.biaoti {
+			width: 80%;
+			margin: 0 auto;
+			text-align: center;
+			margin-top: 20px;
+		}
+
+		.kuang {
+			background-color: #ffffff;
+		}
+	}
+
+	.tx-img {
+		width: 40rpx;
+		margin-right: 20rpx;
+	}
+	// .img-content{
+	// 	// display: flex;
+	// 	// justify-content: center;
+		
+	// 	// display: inline-block;
+	// 	.img{
+	// 		width: 160rpx;
+	// 		height: 160rpx;
+	// 	}
+	// }
+	.imgShow{
+	 width: 100%;
+	 display: flex;
+	 flex-wrap: wrap;
+	 margin-top: 20rpx;
+	}
+	.img_item{
+	 // height:0px;
+	 height: 85px!important;
+	 width: 30%;
+	 background-color: #f1f1f1;
+	 margin: 2px 1.66%;
+	 border-radius: 10rpx;
+	}
+</style>

+ 12 - 2
pages/mine/index.vue

@@ -37,7 +37,7 @@
 					<u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/wodefabu.png"
 						width="42px" height="42px"></u--image>我发布的
 				</view>
-				<view class='flex items-center'>
+				<view class='flex items-center' @click="goDetailPage('/pages/mine/evaluate')">
 					<u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/pingjia.png"
 						width="42px" height="42px"></u--image>
 					司机评价
@@ -83,6 +83,16 @@
 						<u-icon name="arrow-right" color="#7E7E7E" size="10"></u-icon>
 					</view>
 				</view>
+		<!-- 		<view class="flex flex-space-between content1-item"
+					@click="goDetailPage('/pages/mine/driverEvaluation')">
+					<view class='flex items-center'>
+						<u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/dailihuozhu.png"
+							width="20px" height="20px"></u--image>司机评价
+					</view>
+					<view>
+						<u-icon name="arrow-right" color="#7E7E7E" size="10"></u-icon>
+					</view>
+				</view> -->
 				<!-- <view class="flex flex-space-between content1-item" @click="goDetailPage('/pages/mine/set')">
 					<view class='flex items-center'>
 						<u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/dailihuozhu.png"
@@ -171,7 +181,7 @@
 		methods: {
 			confirmClick() {
 							// #ifdef APP-PLUS
-								if (this.alertTitle = '账号审核中') {
+								if (this.alertTitle == '账号审核中') {
 									if (uni.getSystemInfoSync().platform == 'ios') {
 										plus.ios.import("UIApplication").sharedApplication().performSelector("exit")
 									} else if (uni.getSystemInfoSync().platform == 'android') {

+ 1 - 0
pages/mine/settings/editAvatar.vue

@@ -13,6 +13,7 @@
 	</view>
 </template>
 
+
 <script>
 	import uploadImage from '@/components/ossutil/uploadFile.js';
 	import {

+ 1 - 1
pages/news/index.vue

@@ -230,7 +230,7 @@
 						pageSize: page.size,
 						currentPage: page.num,
 					}).then(res => {
-						this.news = res.data.records
+						this.news = this.news.concat(res.data.records); //追加新数据
 						this.mescroll.endBySize(res.data.records.length, res.data.total);
 					})
 					.catch(res => {

+ 307 - 0
pages/order/addEvaluation.vue

@@ -0,0 +1,307 @@
+<template>
+	<view class="page_pingjia4">
+		<view class="kuang">
+			<view class="order-row flex flex-space-between">
+				<view class="flex">
+					<view>{{objData.orderNo}}</view>
+					<view>{{objData.goodName}}</view>
+				</view>
+				<view class="flex align-center">
+					<image :src="objData.driverPortrait" mode="widthFix" class="tx-img"></image>
+					<view>{{objData.driverName}}</view>
+				</view>
+			</view>
+			<view class="xkuang">
+				<view style="display: flex;" class="flex-space-between" v-for="(item,index) in rate"
+					@click="clickStar(index)">
+					<view class="flex" style="margin: 10rpx 0;">
+						<view class="ziti">{{item.name}}</view>
+						<start :count="item.count" style="" size="35" activeIcon="heart-fill" inactiveIcon="heart"
+							activeColor="#ffaa00" v-model="item.value1" @change="getVal" :size="22">
+						</start>
+					</view>
+
+					<view class="">
+						{{item.level}}
+					</view>
+				</view>
+			</view>
+			<view>
+				<u--textarea style="margin-top: 20px;" background-color="#6d6d6d" v-model="value3"
+					placeholder="评价一下这单发运任务~">
+				</u--textarea>
+			</view>
+			<u-upload class="uview-upload" :fileList="fileList1" @afterRead="afterRead($event)" @delete="deletePic"
+				name="1" multiple :maxCount="9" style="margin-bottom: 80rpx;"></u-upload>
+			<u-line></u-line>
+			<view class="niming">
+				<u-checkbox-group v-model="checkboxValue1" placement="column" @change="checkboxChange">
+					<u-checkbox :customStyle="{marginBottom: '8px'}" v-for="(item, index) in checkboxList1" :key="index"
+						:label="item.name" :name="item.name">
+					</u-checkbox>
+				</u-checkbox-group>
+			</view>
+		</view>
+		<!-- <view class="anniu" v-for="(item,index) in button">
+			<u-button type="warning">{{item.name}}</u-button>
+		</view> -->
+		<u-toast ref="uToast"></u-toast>
+	</view>
+</template>
+
+<script>
+	var that
+	import {
+		mapState
+	} from 'vuex';
+	import start from '../../common/components/uni-rate.vue'
+	import uploadImage from '@/components/ossutil/uploadFile.js';
+
+	export default {
+		components: {
+			start
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo', 'firstAuthentication'])
+		},
+		data() {
+			return {
+				imageList: [],
+				objData: {},
+				starIndex: '',
+				checkboxValue1: [],
+				checkboxList1: [{
+					name: '匿名评论',
+					disabled: false
+				}],
+				count: "5",
+				value: '',
+				value3: '',
+				fileList1: [],
+				por: [{
+					title: '"无可挑剔"',
+				}],
+				rate: [{
+						name: "司机信用",
+						count: "5",
+						value1: '5',
+						level: '非常好'
+					},
+					{
+						name: "运输效率",
+						count: "5",
+						value1: '5',
+						level: '非常好'
+					},
+					{
+						name: "运输安全",
+						count: "5",
+						value1: '5',
+						level: '非常好'
+					},
+					{
+						name: "运输安全",
+						count: "5",
+						value1: '5',
+						level: '非常好'
+					},
+					{
+						name: "满意度",
+						count: "5",
+						value1: '5',
+						level: '非常满意'
+					}
+				],
+				button: [{
+					name: '提交'
+				}],
+
+				hidden: [{
+					name: '匿名评论',
+					disabled: false
+				}],
+			}
+		},
+		onNavigationBarButtonTap() {
+			debugger
+			let _data = {
+				evaluatoredId: this.objData.commonId,
+				evaluatorId: this.objData.cargoCommonId,
+				ownerName: this.checkboxValue1 ? this.objData.cargoOwner : '',
+				driverName: this.objData.driverName,
+				ownerPortrait: this.checkboxValue1 ? this.userInfo.avatarUrl : '',
+				orderId: this.objData.id,
+				orderNumber: this.objData.orderNo,
+				driverCredit: this.rate[0].value1,
+				tranEfficiency: this.rate[1].value1,
+				tranSafety: this.rate[2].value1,
+				serviceQuality: this.rate[3].value1,
+				satisfaction: this.rate[4].value1,
+				ownerContent: this.value3,
+				ownerUrl: this.imageList.toString(),
+				ownerAnonymous: this.checkboxValue1.length != 0 ? 1 : 0
+
+			}
+			that.$request.baseRequest('post', '/evaluateInfo/api/addEvaluateInfo', _data).then(res => {
+				if (res.code == 200) {
+					this.$refs.uToast.show({
+						type: 'success',
+						message: "评价成功",
+						complete() {
+							uni.navigateTo({
+								url: '/pages/order/index'
+							})
+						}
+					})
+				} else {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "评价失败",
+					})
+				}
+			})
+		},
+		onLoad(options) {
+			that = this
+			this.objData = JSON.parse(options.val)
+			console.log(this.objData)
+			that.imageList = []
+		},
+		methods: {
+			clickStar(index) {
+				console.log(index)
+				this.selectStar = index
+				if (index == 0 || index == 1 || index == 2 || index == 3) {
+					if (this.starIndex == '1') {
+						this.rate[index].level = '极差'
+					} else if (this.starIndex == '2') {
+						this.rate[index].level = '差'
+					} else if (this.starIndex == '3') {
+						this.rate[index].level = '一般'
+					} else if (this.starIndex == '4') {
+						this.rate[index].level = '较好'
+					} else if (this.starIndex == '5') {
+						this.rate[index].level = '非常好'
+					}
+
+				} else {
+					if (this.starIndex == '1') {
+						this.rate[index].level = '极不满意'
+					} else if (this.starIndex == '2') {
+						this.rate[index].level = '不满意'
+					} else if (this.starIndex == '3') {
+						this.rate[index].level = '尚可'
+					} else if (this.starIndex == '4') {
+						this.rate[index].level = '满意'
+					} else if (this.starIndex == '5') {
+						this.rate[index].level = '非常满意'
+					}
+				}
+
+
+
+			},
+			getVal(e) {
+				debugger
+				this.starIndex = e.value
+				console.log(e)
+			},
+			checkboxChange(n) {
+				console.log('change', n);
+			},
+			// 删除图片
+			deletePic(event) {
+				this[`fileList${event.name}`].splice(event.index, 1)
+			},
+			// 新增图片
+			async afterRead(event) {
+				// console.log(this[`fileList${event.name}`])
+				// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
+				let lists = [].concat(event.file)
+				let fileListLen = this[`fileList${event.name}`].length
+				lists.map((item) => {
+					this[`fileList${event.name}`].push({
+						...item,
+						status: 'uploading',
+						message: '上传中'
+					})
+				})
+				for (let i = 0; i < lists.length; i++) {
+					const result = await this.uploadFilePromise(lists[i], lists[i].url)
+					// console.log(result)
+					let item = this[`fileList${event.name}`][fileListLen]
+					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
+						status: 'success',
+						message: '',
+						url: result
+					}))
+					fileListLen++
+				}
+			},
+			uploadFilePromise(file, url) {
+				debugger
+				uploadImage('image', url, 'appData/',
+					result => {
+						debugger
+						// 上传成功回调函数
+						console.log('图片地址', result)
+						that.imageList.push(result)
+						// this.dataDetails.certificateAddressUrl=this.dataDetails.certificateAddressUrl +',' +result
+
+					}
+				)
+			},
+			// 删除图片
+			deletePic(event) {
+				this[`fileList${event.name}`].splice(event.index, 1)
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.page_pingjia4 {
+		background-color: #ffffff;
+		padding: 20rpx;
+
+		.anniu {
+			margin-top: 48px;
+			margin-left: 20px;
+		}
+
+		.niming {
+			margin-top: 20px;
+		}
+
+		.ziti {
+			color: #909090;
+			margin-right: 20rpx;
+			width: 160rpx;
+		}
+
+		.xkuang {
+			margin-top: 20px;
+		}
+
+		.xx {
+			margin-left: 24%;
+			padding-top: 10px;
+		}
+
+		.biaoti {
+			width: 80%;
+			margin: 0 auto;
+			text-align: center;
+			margin-top: 20px;
+		}
+
+		.kuang {
+			background-color: #ffffff;
+		}
+	}
+
+	.tx-img {
+		width: 40rpx;
+		margin-right: 20rpx;
+	}
+</style>

+ 425 - 0
pages/order/driverDetail.vue

@@ -0,0 +1,425 @@
+<template>
+	<view class="content">
+		<view class="item3 flex align-center flex-space-between">
+			<view class="flex align-center flex-space-between row1">
+				<view class="flex align-center">
+					<u--image :showLoading="true" :src="dataObj.driverPortrait" width="100rpx" height="100rpx" @click=""
+						shape='circle'>
+					</u--image>
+					<view class="name">{{dataObj.driverName}}</view>
+				</view>
+
+				<view class="right flex s-row align-center phone">
+					<view class="bgc flex flex-space-between">
+						<u-icon class="phone" name="phone-fill" color="#2772FB" size="20" @click="toPhone"></u-icon>
+						<view class="hz-name">联系司机</view>
+					</view>
+				</view>
+			</view>
+		</view>
+			<view class="row2 flex">
+			<view class="flex item">
+				<view class="pf-name">评分</view>
+				<view class="pf-number">4.98</view>
+			</view>
+			<view class="flex item">
+				<view class="pf-name">发运次数</view>
+				<view class="pf-number">4.98</view>
+			</view>
+			<view class="flex item">
+				<view class="pf-name">评价</view>
+				<view class="pf-number">4.98</view>
+			</view>
+		</view>
+		<view class="row3 flex">
+			<view :class="index==1?'row3-active':''" @click="clickTap(1)">司机信息</view>
+			<view :class="index==2?'row3-active':''" @click="clickTap(2)">评价</view>
+			<!-- <u-tabs :list="list1" @click="click"></u-tabs> -->
+		</view>
+		<view class="carInfo" v-if="index==1">
+			<view class="flex flex-center row4">
+				<view class="title">
+					<text class="item" :class="tabIndex==1?'item-active':1" @click="clickTab(1)">车辆信息</text>
+					<text class="item" :class="tabIndex==2?'item-active':2" @click="clickTab(2)">发运记录</text>
+				</view>
+			</view>
+		</view>
+		<view v-show="index == 2" class="pl-style">
+			<view class="pf flex-space-between flex">
+				<view class="left flex align-center" style="margin-right: 20rpx;">
+					<view class="pf-number1">
+						4.8
+					</view>
+					<view>
+					<!-- 	<view>
+							<start count="5" v-model="zhpf" size="35" activeColor="#ffaa00" :size="18" :allowHalf='true'
+								:readonly='true'>
+							</start>
+						</view> -->
+						<view class="gray fontsize-24">累计发运150次</view>
+					</view>
+				</view>
+				<view class="right">
+					<view>98%</view>
+					<view class="gray fontsize-24">好评率</view>
+				</view>
+			</view>
+			<mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback"
+				class="mescroll">
+				<view class="flex flex-space-between">
+					<view :class="btnData == 1 ? 'btn-active':'btn'" @click="btnChange(1)">全部(1)</view>
+					<view :class="btnData == 2 ? 'btn-active':'btn'" @click="btnChange(2)">最新(1)</view>
+					<view :class="btnData == 3 ? 'btn-active':'btn'" @click="btnChange(3)">好评(1)</view>
+					<view :class="btnData == 4 ? 'btn-active':'btn'" @click="btnChange(4)">差评(1)</view>
+				</view>
+				<view class="evaluate_css" v-for="(item,index) in list">
+					<view class="flex">
+						<view class="row1 flex">
+							<u--image
+								:src="item.ownerPortrait?item.ownerPortrait:'../../static/images/mine/tx.png'"
+								width='70rpx' height='70rpx' shape="circle">
+							</u--image>
+							<view class="right">
+								<view class="evaluate_name">{{item.ownerName}}</view>
+								<view class="evaluate_date m-top10">
+									{{item.createDate?item.createDate.split(' ')[0]:''}}
+								</view>
+								<view class="flex m-top10">
+									<view class="branch_css ">{{item.count}}</view>
+									<view class="">
+										<start count="5" v-model="item.count" size="35" activeColor="#ffaa00" :size="18"
+											:allowHalf='true' :readonly='true'>
+										</start>
+									</view>
+								</view>
+								<view class="">
+									{{item.driverContent}}
+								</view>
+								<view>
+									<u--image v-for="(item,index) in item.imgList" :src="item" width='170rpx'
+										height='170rpx' class="img-style">
+									</u--image>
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</mescroll-body>
+		</view>
+		<view class="row5">
+			<view v-if="tabIndex==1&&index==1">
+				<view>辽H111111</view>
+				<view class="flex align-center">高栏 | 车长20米 | 载重50吨</view>
+			</view>
+			<view class="carInfo" v-if="tabIndex==2&index==2">
+				<view>
+					累计发运150次,好评率90%
+				</view>
+			</view>
+		</view>
+		<u-toast ref="uToast"></u-toast>
+		<u-picker :show="show" :columns="columns" :closeOnClickOverlay='true' @cancel='cancel' @close='cancel'
+			@confirm='confirmBtn'></u-picker>
+	</view>
+</template>
+
+<script>
+	var that
+	import {
+		mapState
+	} from 'vuex';
+	import start from '../../common/components/uni-rate.vue'
+	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
+	export default {
+		mixins: [MescrollMixin], // 使用mixin
+		components: {
+			start
+		},
+		data() {
+			return {
+				btnData: 1,
+				tabIndex: 1,
+				index: 1,
+				show: false,
+				objectInfo: {},
+				columns: [
+					['反馈', '举报']
+				],
+				list: [],
+				list1: [{
+					name: '司机',
+				}, {
+					name: '评价',
+				}]
+			};
+		},
+		onNavigationBarButtonTap(e) {
+			console.log("success")
+			this.show = true
+		},
+		onLoad(options) {
+			debugger
+			this.dataObj =JSON.parse(options.val) 
+			console.log(this.dataObj)
+			that = this
+			// this.getList()
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo', 'firstAuthentication'])
+		},
+		methods: {
+			confirmBtn(e) {
+				console.log(e.value)
+				if (e.value == '反馈') {
+					uni.$u.route('/pages/order/fk', {
+						val: JSON.stringify(this.dataObj)
+					});
+				} else {
+					uni.$u.route('/pages/order/jb', {
+						val: JSON.stringify(this.dataObj)
+					});
+				}
+				this.show = false
+			},
+			cancel() {
+				this.show = false
+			},
+			clickTap(index) {
+				this.index = index
+			},
+			clickTab(index) {
+				this.tabIndex = index
+			},
+			btnChange(num) {
+				debugger
+				this.btnData = num
+				// this.getList()
+			},
+			upCallback(page) {
+				that.$request.baseRequest('get', '/evaluateInfo/selectEvaluateInfo', {
+						driverId: this.objectInfo.driverId,
+						flag: 1,
+						pageSize: page.size,
+						currentPage: page.num
+					}).then(res => {
+						debugger
+						if (page.num == 1) that.list = [];
+						that.list = that.list.concat(res.data.records); //追加新数据
+						for (let i = 0; i < that.list.length; i++) {
+							if (that.list[i].ownerUrl) {
+								that.list[i].imgList = that.list[i].ownerUrl.split(',')
+							}
+				
+							that.list[i].count = (Number(that.list[i].ownerCredit) + Number(that.list[i]
+								.tranEfficiency) + Number(that.list[i].freightPayment) + Number(that.list[i]
+								.serviceQuality) + Number(that.list[i].comprehensiveSatisfaction)) / 15 * 5
+						}
+						that.mescroll.endBySize(res.data.records.length, res.data.total);
+						uni.hideLoading()
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+				that.$request.baseRequest('get', '/orderInfo/selectHaoPing', {
+						commonId: this.userInfo.id,
+						haoType: ''
+					}).then(res => {
+						
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+			},
+			// getList() {
+
+			// 		debugger
+			// 	this.$request.baseRequest('get', '/orderInfo/selectHaoPing', {
+			// 			commonId: this.userInfo.id,
+			// 			haoType:''
+			// 		}).then(res => {
+			// 			if (res.code == 200) {
+			// 					this.dataObj = res.data
+
+			// 			} else {
+			// 				this.$refs.uToast.show({
+			// 					type: 'error',
+			// 					message: res.message,
+			// 				})
+			// 			}
+			// 		})
+			// 		.catch(res => {
+			// 			uni.$u.toast(res.message);
+			// 		});
+			// },
+		},
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		height: 100vh;
+	}
+
+	.item3,
+	.row3 {
+		background: white;
+	}
+
+	.name {
+		font-size: 46rpx;
+		font-weight: 500;
+		margin-left: 20rpx;
+	}
+
+	.row1 {
+		width: 100%;
+		padding: 30rpx;
+	}
+
+	.phone {
+		.bgc {
+			background: #E5F0FE;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			border-radius: 50rpx;
+			padding: 10rpx 20rpx;
+			align-items: center;
+		}
+
+		.hz-name {
+			font-size: 26rpx;
+			color: #2772FB;
+		}
+
+	}
+
+	.row2 {
+		padding: 0 20rpx;
+		background: white;
+
+		.item {
+			margin-right: 20rpx;
+		}
+
+		.pf-name {
+			color: #999999;
+			margin-right: 10rpx;
+		}
+
+		.pf-number {
+			color: #2772FB;
+		}
+	}
+
+	.row3 {
+		justify-content: space-around;
+		padding: 40rpx 0;
+	}
+
+	.row3-active {
+		font-weight: 700;
+		position: relative;
+	}
+
+	.row3-active:before {
+		font-weight: 700;
+		content: '';
+		position: absolute;
+		bottom: -10rpx;
+		width: 40rpx;
+		height: 6rpx;
+		background: #2772FB;
+		left: 0;
+		right: 0;
+		margin: auto;
+	}
+
+	.row4 {
+		.title {
+			background: #EFF1F7;
+			border-radius: 20rpx;
+			margin-top: 20rpx;
+
+			.item {
+				display: inline-block;
+				color: #AFB3BF;
+				border-radius: 20rpx;
+				padding: 4rpx 60rpx;
+			}
+
+			.item-active {
+				background: white;
+				color: #363636;
+			}
+		}
+	}
+
+	.row5 {
+		padding: 20rpx;
+	}
+
+	.evaluate_css {
+		margin-top: 30rpx;
+		display: flex;
+		width: 100%;
+		padding-bottom: 40rpx;
+		border-bottom: 1px solid #E6E6E6;
+
+		.evaluate_name {}
+
+		.branch_css {
+			// margin: 0;
+			margin-right: 20rpx;
+		}
+
+		.evaluate_date {}
+
+		.row1 {
+			.right {
+				display: flex;
+				flex-direction: column;
+				margin-left: 40rpx;
+			}
+		}
+	}
+
+	.btn-active {
+		background-color: #2772FB;
+		color: white;
+		border-radius: 50rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		padding: 10rpx 20rpx;
+	}
+
+	.btn {
+		background: #F8F9FB;
+		color: #363636;
+		border-radius: 50rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		padding: 10rpx 20rpx;
+	}
+
+	.pl-style {
+		padding: 40rpx;
+		background: white;
+	}
+	.img-style{
+		display: inline-block;
+		margin-right: 20rpx;
+	}
+	
+	.pf-number1 {
+		color: #363636;
+		font-size: 60rpx;
+		margin-right: 30rpx;
+	}
+	
+	.pf {
+		margin-bottom: 20rpx;
+	}
+</style>

+ 226 - 0
pages/order/evaluationRecord.vue

@@ -0,0 +1,226 @@
+<template>
+	<view class="content">
+		<mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" class="mescroll">
+			<view class="content-list" v-for="(item,index) in list" :key='index'>
+				<view class="top flex flex-space-between">
+					<view class="left flex">
+						<view>
+							{{item.orderNumber}}
+						</view>
+						<u-icon name="arrow-right" color="#ccc" size="18"></u-icon>
+					</view>
+					<view class="right gray999">
+						{{item.createDate.split(' ')[0]}}
+					</view>
+				</view>
+				<view class="flex align-center name-row">
+					<view class="sj-row hz-name">
+						{{item.orderInfo.driverName}}:
+					</view>
+					<view class="xx">
+						<start :count="count" v-model="item.count" size="35" activeColor="#ffaa00" :size="18"
+							:allowHalf='true' :readonly='true'>
+						</start>
+					</view>
+				</view>
+				<view class="gray999 xy-row">
+					<view class='item'>
+						司机信用:{{item.driverCredit}}星
+					</view>
+					<view class='item'>
+						运费效率:{{item.tranEfficiency}}星
+					</view>
+					<view class='item'>
+						运输安全:{{item.tranSafety}}星
+					</view>
+					<view class='item'>
+						服务质量:{{item.serviceQuality}}星
+					</view>
+					<view class='item'>
+						满意度:{{item.satisfaction}}星
+					</view>
+				</view>
+				<!-- 
+			<view class="xkuang">
+				<view style="display: flex;" class="flex-space-between" v-for="(item,index) in rate">
+					<view class="ziti">{{item.name}}</view>
+					<start :count="item.count" style="margin-top: 15px; margin-left: 50px;" size="35"
+						activeIcon="heart-fill" inactiveIcon="heart" activeColor="#ffaa00" v-model="item.value1">
+					</start>
+				</view>
+			</view> -->
+				<view class="pl-style">
+					{{item.ownerContent}}
+				</view>
+				<view class="color2979ff flex">
+					<view @click="clickZK">展开</view>
+					<u-icon name="arrow-down" color="#2979ff" size="18" v-if="isOpen"></u-icon>
+					<u-icon name="arrow-up" color="#2979ff" size="18" v-else></u-icon>
+				</view>
+				<view v-if="isOpen" class="img-content">
+					<u--image :showLoading="true" :src="item1" width="80px" height="80px" class="img"
+						v-for="(item1,index) in item.imgList"></u--image>
+				</view>
+				<u-line class="line"></u-line>
+				<view class="gray999">
+					{{item.ownerAnonymous==1?"匿名评价":''}}
+				</view>
+			</view>
+		</mescroll-body>
+	</view>
+</template>
+
+<script>
+	var that
+	import {
+		mapState
+	} from 'vuex';
+	import start from '../../common/components/uni-rate.vue'
+	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
+	export default {
+		mixins: [MescrollMixin], // 使用mixin
+		components: {
+			start
+		},
+		data() {
+			return {
+				imgList: [],
+				list: [],
+				isOpen: true,
+				count: '5',
+				value: '3',
+				src: 'https://cdn.uviewui.com/uview/album/1.jpg',
+				rate: [{
+						name: "司机信用",
+						count: "5",
+						value1: '5',
+					},
+					{
+						name: "运输效率",
+						count: "5",
+						value1: '3',
+					},
+					{
+						name: "运输安全",
+						count: "5",
+						value1: '5',
+					},
+					{
+						name: "服务质量",
+						count: "5",
+						value1: '2',
+					}, {
+						name: "满意度",
+						count: "5",
+						value1: '1',
+					}
+				],
+			};
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo', 'firstAuthentication'])
+		},
+		onLoad() {
+			that = this
+		},
+		methods: {
+			upCallback(page) {
+				that.$request.baseRequest('get', '/evaluateInfo/selectEvaluateInfo', {
+						ownerId: this.userInfo.id,
+						flag: 1,
+						pageSize: page.size,
+						currentPage: page.num
+					}).then(res => {
+						debugger
+						if (page.num == 1) that.list = [];
+						that.list = that.list.concat(res.data.records); //追加新数据
+						for (let i = 0; i < that.list.length; i++) {
+							that.list[i].imgList = that.list[i].ownerUrl.split(',')
+							that.list[i].count = (Number(that.list[i].driverCredit) + Number(that.list[i]
+								.tranEfficiency) + Number(that.list[i].tranSafety) + Number(that.list[i]
+								.serviceQuality) + Number(that.list[i].satisfaction)) / 25 * 5
+						}
+						that.mescroll.endBySize(res.data.records.length, res.data.total);
+						uni.hideLoading()
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+			},
+			clickZK() {
+				this.isOpen = !this.isOpen
+			},
+			getList() {
+
+			},
+		},
+
+	}
+</script>
+
+<style lang="scss">
+	.ziti {
+		color: #909090;
+		margin-top: 23px;
+	}
+
+	.xkuang {
+		margin-top: 20px;
+		background-color: #FAFAFA;
+		padding-left: 30px;
+	}
+
+	.content-list {
+		margin: 20rpx;
+		padding: 20rpx;
+		background: white;
+		border-radius: 20rpx;
+
+	}
+
+	.hz-name {
+		color: #999;
+		margin-right: 10rpx;
+	}
+
+	.gray999 {
+		color: #999;
+	}
+
+	.name-row {
+		margin: 20rpx 0;
+	}
+
+	.item {
+		margin-right: 20rpx;
+		font-size: 26rpx;
+		display: inline-block;
+	}
+
+	.xy-row {
+		margin-bottom: 40rpx;
+	}
+
+	.pl-style {
+		margin-bottom: 40rpx;
+	}
+
+	.color2979ff {
+		color: #2979ff;
+	}
+
+	.img-content {
+		margin-top: 20rpx;
+
+		.img {
+			display: inline-block;
+			margin-right: 10rpx;
+			border-radius: 20rpx;
+		}
+
+	}
+
+	.line {
+		margin: 20rpx 0 !important;
+	}
+</style>

+ 141 - 0
pages/order/fk.vue

@@ -0,0 +1,141 @@
+<template>
+	<view class="content">
+		<view class="row1 flex flex-space-between">
+			<view>被反馈人</view>
+			<view class='flex'>
+				<image :src="dataDetails.driverPortrait" mode="widthFix" class="img"></image>
+				<view>{{dataDetails.driverName}}</view>
+			</view>
+		</view>
+		<u-line class="line"></u-line>
+		<view class="row2">
+			<view class="title">反馈信息</view>
+			<u--textarea v-model="value1" placeholder="输入要反馈的内容,10-300字" count maxlength='300'></u--textarea>
+			<u-upload class="uview-upload" :fileList="fileList1" @afterRead="afterRead($event)" @delete="deletePic"
+				name="1" multiple :maxCount="9"></u-upload>
+		</view>
+		<view class="row3" @click="submit">提交</view>
+		<u-toast ref="uToast"></u-toast>
+	</view>
+</template>
+
+<script>
+	import {
+		mapState
+	} from 'vuex';
+	import uploadImage from '@/components/ossutil/uploadFile.js';
+	export default {
+		data() {
+			return {
+				imgList: [],
+				value1: '',
+				fileList1: [],
+				dataDetails: {},
+			};
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo', 'firstAuthentication'])
+		},
+		onLoad(options) {
+			this.dataDetails = JSON.parse(options.val)
+			console.log(this.dataDetails)
+			this.imgList = []
+		},
+		methods: {
+			submit() {
+				uni.showLoading({
+					title: '加载中'
+				})
+				this.$request.baseRequest('post', '/feedbackReport/api/addInfo', {
+						commonId: this.userInfo.id,
+						name: this.dataDetails.driverName,
+						content: this.value1,
+						url: this.imgList.toString(),
+						flag: 1,
+					}).then(res => {
+						let that = this
+						uni.hideLoading()
+						this.$refs.uToast.show({
+							type: 'success',
+							message: "反馈成功",
+							complete() {
+								uni.$u.route('/pages/order/driverDetail',{
+									driver:JSON.stringify(that.dataDetails)
+								});
+								
+							}
+						})
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+			},
+			// 删除图片
+			deletePic(event) {
+				this[`fileList${event.name}`].splice(event.index, 1)
+			},
+			// 新增图片
+			async afterRead(event) {
+				// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
+				let lists = [].concat(event.file)
+				let fileListLen = this[`fileList${event.name}`].length
+				lists.map((item) => {
+					this[`fileList${event.name}`].push({
+						...item,
+						status: 'uploading',
+						message: '上传中'
+					})
+				})
+				for (let i = 0; i < lists.length; i++) {
+					const result = await this.uploadFilePromise(lists[i].url)
+					let item = this[`fileList${event.name}`][fileListLen]
+					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
+						status: 'success',
+						message: '',
+						url: result
+					}))
+					fileListLen++
+				}
+			},
+			uploadFilePromise(url) {
+				uploadImage('image', url, 'appData/',
+					result => {
+						// 上传成功回调函数
+						console.log('图片地址', result)
+						this.imgList.push(result)
+
+					}
+				)
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		background: white;
+	}
+
+	.img {
+		width: 40rpx;
+	}
+
+	.row1,
+	.row2 {
+		padding: 40rpx;
+	}
+
+	.title {
+		margin-bottom: 20rpx;
+	}
+
+	.row3 {
+		width: 80%;
+		background: #2772FB;
+		text-align: center;
+		color: white;
+		padding: 20rpx;
+		margin: auto;
+		border-radius: 10rpx;
+	}
+</style>

+ 44 - 18
pages/order/index.vue

@@ -46,8 +46,16 @@
 			</u-transition>
 			<view class="modal-black" v-show="showMenu" @click="closeMenu"></view>
 		</view>
-
 		<mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" class="mescroll">
+	<view class="evaluatePage flex flex-space-between" v-show="tabIndex == 10"  @click="evaluationRecord">
+		<view class="left flex flex-space-between">
+			<u-icon size="20" name="edit-pen"></u-icon>
+			<view style="margin-left: 20prx;">我的评价</view> 
+		</view>
+		<view class="right">
+				<u-icon size="20" name="arrow-right"></u-icon>
+		</view>
+		</view>
 			<view :id="'good'+good.id" class="good-list" v-for="good in goods" :key="good.id"
 				@click="toDetail(good.id)">
 				<view style="padding: 0 35rpx 20rpx 35rpx;">
@@ -88,7 +96,7 @@
 					<view class="flex row3 s-row">
 						<view class="flex align-center">
 							<image class="hz" src="@/static/images/news/sj.png"></image>
-							<view style="margin-right: 20rpx;">{{good.driverName}}</view>
+							<view style="margin-right: 20rpx;" @click.stop="goTodriverDetail(good)">{{good.driverName}}</view>
 							<!-- <view style="margin-right: 20rpx;">{{good.driverCall}}</view> -->
 							<image class="hz-good" src="@/static/images/order/good-img.png"></image>
 							<view>{{good.goodsName}}</view>
@@ -139,7 +147,7 @@
 						<view class="normal" @click.stop="stop(good)"
 							v-if="good.cargoOwnerStatus=='待还款'||good.cargoOwnerStatus=='已还款'">还款</view>
 
-						<!-- <view class="start normal" @click.stop="closed(good)" v-if="good.cargoOwnerStatus=='结算中'">完结</view> -->
+						<view class="start normal" @click.stop="addevaluation(good)">评价</view>
 					</view>
 				</view>
 			</view>
@@ -270,9 +278,9 @@
 					{
 						name: '已完结'
 					},
-					// {
-					// 	name: '评价'
-					// },
+					{
+						name: '评价'
+					},
 
 				],
 				tabIndex: 0,
@@ -363,6 +371,18 @@
 
 		// },
 		methods: {
+			goTodriverDetail(val){
+				debugger
+				uni.$u.route('/pages/order/driverDetail',{
+					val:JSON.stringify(val)
+				});
+			},
+			addevaluation(val){
+					uni.$u.route('/pages/order/addEvaluation',{val:JSON.stringify(val)});
+			},
+			evaluationRecord(){
+				uni.$u.route('/pages/order/evaluationRecord');
+			},
 			toMap(val) {
 				uni.$u.route('/pages/order/map', val);
 			},
@@ -451,16 +471,16 @@
 				this.isShowAlert = true
 			},
 			confirmClick() {
-							// #ifdef APP-PLUS
-								if (this.alertTitle = '账号审核中') {
-									if (uni.getSystemInfoSync().platform == 'ios') {
-										plus.ios.import("UIApplication").sharedApplication().performSelector("exit")
-									} else if (uni.getSystemInfoSync().platform == 'android') {
-										plus.runtime.quit();
-									}
-									return
-								}
-								// #endif
+				// #ifdef APP-PLUS
+				if (this.alertTitle == '账号审核中') {
+					if (uni.getSystemInfoSync().platform == 'ios') {
+						plus.ios.import("UIApplication").sharedApplication().performSelector("exit")
+					} else if (uni.getSystemInfoSync().platform == 'android') {
+						plus.runtime.quit();
+					}
+					return
+				}
+				// #endif
 				that.isShowAlert = false
 				if (this.type == 1 || this.type == 2) {
 					let _title = ''
@@ -470,7 +490,7 @@
 						}).then(res => {
 							if (res.code == 200) {
 								if (this.type == 1) {
-									_title = '单成功'
+									_title = '接单单成功'
 								} else {
 									_title = '拒绝订单成功'
 								}
@@ -483,7 +503,7 @@
 								})
 							} else {
 								if (this.type == 1) {
-									_title = '单失败'
+									_title = '单失败'
 								} else {
 									_title = '拒绝订单失败'
 								}
@@ -973,4 +993,10 @@
 		border:1px solid #2772FB;
 		color: white;
 	}
+	.evaluatePage{
+		background: white;
+		margin: 20rpx;
+		padding: 20rpx;
+		border-radius: 20rpx;
+	}
 </style>

+ 141 - 0
pages/order/jb.vue

@@ -0,0 +1,141 @@
+<template>
+	<view class="content">
+		<view class="row1 flex flex-space-between">
+			<view>被举报人</view>
+			<view class='flex'>
+				<image :src="dataDetails.driverPortrait" mode="widthFix" class="img"></image>
+				<view>{{dataDetails.driverName}}</view>
+			</view>
+		</view>
+		<u-line class="line"></u-line>
+		<view class="row2">
+			<view class="title">举报信息</view>
+			<u--textarea v-model="value1" placeholder="输入要举报的内容,10-300字" count maxlength='300'></u--textarea>
+			<u-upload class="uview-upload" :fileList="fileList1" @afterRead="afterRead($event)" @delete="deletePic"
+				name="1" multiple :maxCount="9"></u-upload>
+		</view>
+		<view class="row3" @click="submit">提交</view>
+		<u-toast ref="uToast"></u-toast>
+	</view>
+</template>
+
+<script>
+	import {
+		mapState
+	} from 'vuex';
+	import uploadImage from '@/components/ossutil/uploadFile.js';
+	export default {
+		data() {
+			return {
+				imgList: [],
+				value1: '',
+				fileList1: [],
+				dataDetails: {},
+			};
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo', 'firstAuthentication'])
+		},
+		onLoad(options) {
+			this.dataDetails = JSON.parse(options.val)
+			console.log(this.dataDetails)
+			this.imgList = []
+		},
+		methods: {
+			submit() {
+				uni.showLoading({
+					title: '加载中'
+				})
+				this.$request.baseRequest('post', '/feedbackReport/api/addInfo', {
+						name: this.dataDetails.driverName,
+							commonId: this.userInfo.id,
+						content: this.value1,
+						url: this.imgList.toString(),
+						flag: 2,
+					}).then(res => {
+						let that = this
+						uni.hideLoading()
+						this.$refs.uToast.show({
+							type: 'success',
+							message: "举报成功",
+							complete() {
+								uni.$u.route('/pages/order/driverDetail',{
+									driver:JSON.stringify(that.dataDetails)
+								});
+								
+							}
+						})
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+			},
+			// 删除图片
+			deletePic(event) {
+				this[`fileList${event.name}`].splice(event.index, 1)
+			},
+			// 新增图片
+			async afterRead(event) {
+				// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
+				let lists = [].concat(event.file)
+				let fileListLen = this[`fileList${event.name}`].length
+				lists.map((item) => {
+					this[`fileList${event.name}`].push({
+						...item,
+						status: 'uploading',
+						message: '上传中'
+					})
+				})
+				for (let i = 0; i < lists.length; i++) {
+					const result = await this.uploadFilePromise(lists[i].url)
+					let item = this[`fileList${event.name}`][fileListLen]
+					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
+						status: 'success',
+						message: '',
+						url: result
+					}))
+					fileListLen++
+				}
+			},
+			uploadFilePromise(url) {
+				uploadImage('image', url, 'appData/',
+					result => {
+						// 上传成功回调函数
+						console.log('图片地址', result)
+						this.imgList.push(result)
+
+					}
+				)
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		background: white;
+	}
+
+	.img {
+		width: 40rpx;
+	}
+
+	.row1,
+	.row2 {
+		padding: 40rpx;
+	}
+
+	.title {
+		margin-bottom: 20rpx;
+	}
+
+	.row3 {
+		width: 80%;
+		background: #2772FB;
+		text-align: center;
+		color: white;
+		padding: 20rpx;
+		margin: auto;
+		border-radius: 10rpx;
+	}
+</style>

+ 12 - 4
pages/order/orderDetails.vue

@@ -31,9 +31,12 @@
 
 				<u-button class="btn" text="驳回装车信息" @click="confirmLoading()" v-if="dataObj.cargoOwnerStatus=='待确认装车'">
 				</u-button>
-				<u-button class="btn" text="确认装车" @click="confirmLoading(3)"
+		<!-- 		<u-button class="btn" text="确认装车" @click="confirmLoading(3)"
 					v-if="dataObj.cargoOwnerStatus=='待确认装车'&&dataObj.cargoOwnerContract=='1'">
+				</u-button> -->
+				<u-button class="btn" text="确认装车" @click="confirmLoading(3)">
 				</u-button>
+				
 				<u-button class="btn" text="驳回卸车信息" @click="confirmUnLoading" v-if="dataObj.cargoOwnerStatus=='待收货'">
 				</u-button>
 				<u-button class="btn" text="确认卸车" @click="confirmUnLoading" v-if="dataObj.cargoOwnerStatus=='待收货'">
@@ -46,10 +49,10 @@
 				</u-button>
 			</view>
 			<view class="item3 flex flex-space-between align-center">
-				<view class="left flex align-center">
+				<view class="left flex align-center" @click="goTodriverDetail">
 					<u--image :showLoading="true" :src="src" width="44px" height="44px" @click="" shape='circle'>
 					</u--image>
-					<view class="name">{{dataObj.cargoOwner}}</view>
+					<view class="name">{{dataObj.driverName}}</view>
 					<view class="flex align-center">
 						<!-- <view class="number">4.98</view> -->
 						<!-- <u-icon class="star" name="star-fill" color="#FEC823" size="20" @click="back"></u-icon> -->
@@ -343,6 +346,11 @@
 			this.getList()
 		},
 		methods: {
+			goTodriverDetail(){
+				uni.$u.route('/pages/order/driverDetail',{
+					driver:JSON.stringify(this.dataObj)
+				});
+			},
 			lookContract() {
 				this.$request.baseRequest('get', '/orderInfo/setPdf', {}).then(res => {
 						if (res.code == 200) {
@@ -494,7 +502,7 @@
 									type: 'success',
 									message: "提交成功",
 									complete() {
-										this.getList()
+										that.getList()
 										// that.upCallback({
 										// 	size: 10,
 										// 	num: 1

+ 6 - 9
pages/release/release.vue

@@ -309,7 +309,7 @@
 		onShow() {
 
 			console.log("点击发布")
-			if (!_this.hasLogin) {
+			if (!this.hasLogin) {
 				uni.$u.route('/pages/public/login');
 				return
 			}
@@ -330,9 +330,9 @@
 			this.getSFList()
 		},
 		async onLoad() {
-			that = this
+			_this = this
 			// #ifdef APP-PLUS
-			let _status = await that.$request.baseRequest('get', '/cargoOwnerInfo/firstAuthentication', {
+			let _status = await this.$request.baseRequest('get', '/cargoOwnerInfo/firstAuthentication', {
 				phone: this.userInfo.phone,
 			}).then(res => {
 				return res.data.authenticationStatus
@@ -386,16 +386,12 @@
 			this.dataObj.taskValidity = '长期'
 			
 			
-		},
-		onLoad(options) {
-
-		
 		},
 		computed: {
 			...mapState(['hasLogin', 'userInfo']),
 		},
 		methods: {
-			getSFList() {
+			getSFList() {debugger
 				this.dataObj.commonId = this.userInfo.id
 				this.$request.baseRequest('get', '/cargoOwnerCompInfo/cargoOwnerList', {
 						commonId: this.userInfo.id
@@ -409,6 +405,7 @@
 						let _self = res.data.companyInfoList
 						//代理货主
 						let _dlhz = res.data.cargoOwnerCompInfoList
+						if(!_dlhz) _dlhz=[]
 						for (let i = 0; i < _self.length; i++) {
 							if (_self[i].status == '已认证') {
 								this.qyList.push(_self[i])
@@ -579,7 +576,7 @@
 			},
 			confirmClick() {
 							// #ifdef APP-PLUS
-								if (this.alertTitle = '账号审核中') {
+								if (this.alertTitle == '账号审核中') {
 									if (uni.getSystemInfoSync().platform == 'ios') {
 										plus.ios.import("UIApplication").sharedApplication().performSelector("exit")
 									} else if (uni.getSystemInfoSync().platform == 'android') {

BIN
static/ITkoala-amap/amap.png


BIN
static/ITkoala-amap/close.png


BIN
static/ITkoala-amap/selectedStart.png


BIN
static/ITkoala-amap/sharp.png


BIN
static/ITkoala-amap/start.png


+ 1 - 1
static/css/common.scss

@@ -1,6 +1,6 @@
 // 全局公共样式
 .content{
-	background: $ac-bgc;
+	background:#F7F8FA;
 	// padding:$uni-spacing-row-base;
 	overflow: hidden;
 	position: relative;

BIN
static/iconfont.ttf


BIN
static/images/carSource/exchange.png


BIN
static/images/carSource/yaoqing.png


+ 16 - 0
uni_modules/uni-icons/changelog.md

@@ -0,0 +1,16 @@
+## 1.3.2(2021-12-01)
+- 优化 示例可复制图标名称
+## 1.3.1(2021-11-23)
+- 优化 兼容旧组件 type 值
+## 1.3.0(2021-11-19)
+- 新增 更多图标
+- 优化 自定义图标使用方式
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons)
+## 1.1.7(2021-11-08)
+## 1.2.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.5(2021-05-12)
+- 新增 组件示例地址
+## 1.1.4(2021-02-05)
+- 调整为uni_modules目录规范

+ 1115 - 0
uni_modules/uni-icons/components/uni-icons/icons.js

@@ -0,0 +1,1115 @@
+export default {
+  "id": "2852637",
+  "name": "uniui图标库",
+  "font_family": "uniicons",
+  "css_prefix_text": "uniui-",
+  "description": "",
+  "glyphs": [
+    {
+      "icon_id": "25027049",
+      "name": "yanse",
+      "font_class": "color",
+      "unicode": "e6cf",
+      "unicode_decimal": 59087
+    },
+    {
+      "icon_id": "25027048",
+      "name": "wallet",
+      "font_class": "wallet",
+      "unicode": "e6b1",
+      "unicode_decimal": 59057
+    },
+    {
+      "icon_id": "25015720",
+      "name": "settings-filled",
+      "font_class": "settings-filled",
+      "unicode": "e6ce",
+      "unicode_decimal": 59086
+    },
+    {
+      "icon_id": "25015434",
+      "name": "shimingrenzheng-filled",
+      "font_class": "auth-filled",
+      "unicode": "e6cc",
+      "unicode_decimal": 59084
+    },
+    {
+      "icon_id": "24934246",
+      "name": "shop-filled",
+      "font_class": "shop-filled",
+      "unicode": "e6cd",
+      "unicode_decimal": 59085
+    },
+    {
+      "icon_id": "24934159",
+      "name": "staff-filled-01",
+      "font_class": "staff-filled",
+      "unicode": "e6cb",
+      "unicode_decimal": 59083
+    },
+    {
+      "icon_id": "24932461",
+      "name": "VIP-filled",
+      "font_class": "vip-filled",
+      "unicode": "e6c6",
+      "unicode_decimal": 59078
+    },
+    {
+      "icon_id": "24932462",
+      "name": "plus_circle_fill",
+      "font_class": "plus-filled",
+      "unicode": "e6c7",
+      "unicode_decimal": 59079
+    },
+    {
+      "icon_id": "24932463",
+      "name": "folder_add-filled",
+      "font_class": "folder-add-filled",
+      "unicode": "e6c8",
+      "unicode_decimal": 59080
+    },
+    {
+      "icon_id": "24932464",
+      "name": "yanse-filled",
+      "font_class": "color-filled",
+      "unicode": "e6c9",
+      "unicode_decimal": 59081
+    },
+    {
+      "icon_id": "24932465",
+      "name": "tune-filled",
+      "font_class": "tune-filled",
+      "unicode": "e6ca",
+      "unicode_decimal": 59082
+    },
+    {
+      "icon_id": "24932455",
+      "name": "a-rilidaka-filled",
+      "font_class": "calendar-filled",
+      "unicode": "e6c0",
+      "unicode_decimal": 59072
+    },
+    {
+      "icon_id": "24932456",
+      "name": "notification-filled",
+      "font_class": "notification-filled",
+      "unicode": "e6c1",
+      "unicode_decimal": 59073
+    },
+    {
+      "icon_id": "24932457",
+      "name": "wallet-filled",
+      "font_class": "wallet-filled",
+      "unicode": "e6c2",
+      "unicode_decimal": 59074
+    },
+    {
+      "icon_id": "24932458",
+      "name": "paihangbang-filled",
+      "font_class": "medal-filled",
+      "unicode": "e6c3",
+      "unicode_decimal": 59075
+    },
+    {
+      "icon_id": "24932459",
+      "name": "gift-filled",
+      "font_class": "gift-filled",
+      "unicode": "e6c4",
+      "unicode_decimal": 59076
+    },
+    {
+      "icon_id": "24932460",
+      "name": "fire-filled",
+      "font_class": "fire-filled",
+      "unicode": "e6c5",
+      "unicode_decimal": 59077
+    },
+    {
+      "icon_id": "24928001",
+      "name": "refreshempty",
+      "font_class": "refreshempty",
+      "unicode": "e6bf",
+      "unicode_decimal": 59071
+    },
+    {
+      "icon_id": "24926853",
+      "name": "location-ellipse",
+      "font_class": "location-filled",
+      "unicode": "e6af",
+      "unicode_decimal": 59055
+    },
+    {
+      "icon_id": "24926735",
+      "name": "person-filled",
+      "font_class": "person-filled",
+      "unicode": "e69d",
+      "unicode_decimal": 59037
+    },
+    {
+      "icon_id": "24926703",
+      "name": "personadd-filled",
+      "font_class": "personadd-filled",
+      "unicode": "e698",
+      "unicode_decimal": 59032
+    },
+    {
+      "icon_id": "24923351",
+      "name": "back",
+      "font_class": "back",
+      "unicode": "e6b9",
+      "unicode_decimal": 59065
+    },
+    {
+      "icon_id": "24923352",
+      "name": "forward",
+      "font_class": "forward",
+      "unicode": "e6ba",
+      "unicode_decimal": 59066
+    },
+    {
+      "icon_id": "24923353",
+      "name": "arrowthinright",
+      "font_class": "arrow-right",
+      "unicode": "e6bb",
+      "unicode_decimal": 59067
+    },
+    {
+      "icon_id": "24923354",
+      "name": "arrowthinleft",
+      "font_class": "arrow-left",
+      "unicode": "e6bc",
+      "unicode_decimal": 59068
+    },
+    {
+      "icon_id": "24923355",
+      "name": "arrowthinup",
+      "font_class": "arrow-up",
+      "unicode": "e6bd",
+      "unicode_decimal": 59069
+    },
+    {
+      "icon_id": "24923356",
+      "name": "arrowthindown",
+      "font_class": "arrow-down",
+      "unicode": "e6be",
+      "unicode_decimal": 59070
+    },
+    {
+      "icon_id": "24923349",
+      "name": "arrowdown",
+      "font_class": "bottom",
+      "unicode": "e6b8",
+      "unicode_decimal": 59064
+    },
+    {
+      "icon_id": "24923346",
+      "name": "arrowright",
+      "font_class": "right",
+      "unicode": "e6b5",
+      "unicode_decimal": 59061
+    },
+    {
+      "icon_id": "24923347",
+      "name": "arrowup",
+      "font_class": "top",
+      "unicode": "e6b6",
+      "unicode_decimal": 59062
+    },
+    {
+      "icon_id": "24923348",
+      "name": "arrowleft",
+      "font_class": "left",
+      "unicode": "e6b7",
+      "unicode_decimal": 59063
+    },
+    {
+      "icon_id": "24923334",
+      "name": "eye",
+      "font_class": "eye",
+      "unicode": "e651",
+      "unicode_decimal": 58961
+    },
+    {
+      "icon_id": "24923335",
+      "name": "eye-filled",
+      "font_class": "eye-filled",
+      "unicode": "e66a",
+      "unicode_decimal": 58986
+    },
+    {
+      "icon_id": "24923336",
+      "name": "eye-slash",
+      "font_class": "eye-slash",
+      "unicode": "e6b3",
+      "unicode_decimal": 59059
+    },
+    {
+      "icon_id": "24923337",
+      "name": "eye-slash-filled",
+      "font_class": "eye-slash-filled",
+      "unicode": "e6b4",
+      "unicode_decimal": 59060
+    },
+    {
+      "icon_id": "24923305",
+      "name": "info-filled",
+      "font_class": "info-filled",
+      "unicode": "e649",
+      "unicode_decimal": 58953
+    },
+    {
+      "icon_id": "24923299",
+      "name": "reload-01",
+      "font_class": "reload",
+      "unicode": "e6b2",
+      "unicode_decimal": 59058
+    },
+    {
+      "icon_id": "24923195",
+      "name": "mic_slash_fill",
+      "font_class": "micoff-filled",
+      "unicode": "e6b0",
+      "unicode_decimal": 59056
+    },
+    {
+      "icon_id": "24923165",
+      "name": "map-pin-ellipse",
+      "font_class": "map-pin-ellipse",
+      "unicode": "e6ac",
+      "unicode_decimal": 59052
+    },
+    {
+      "icon_id": "24923166",
+      "name": "map-pin",
+      "font_class": "map-pin",
+      "unicode": "e6ad",
+      "unicode_decimal": 59053
+    },
+    {
+      "icon_id": "24923167",
+      "name": "location",
+      "font_class": "location",
+      "unicode": "e6ae",
+      "unicode_decimal": 59054
+    },
+    {
+      "icon_id": "24923064",
+      "name": "starhalf",
+      "font_class": "starhalf",
+      "unicode": "e683",
+      "unicode_decimal": 59011
+    },
+    {
+      "icon_id": "24923065",
+      "name": "star",
+      "font_class": "star",
+      "unicode": "e688",
+      "unicode_decimal": 59016
+    },
+    {
+      "icon_id": "24923066",
+      "name": "star-filled",
+      "font_class": "star-filled",
+      "unicode": "e68f",
+      "unicode_decimal": 59023
+    },
+    {
+      "icon_id": "24899646",
+      "name": "a-rilidaka",
+      "font_class": "calendar",
+      "unicode": "e6a0",
+      "unicode_decimal": 59040
+    },
+    {
+      "icon_id": "24899647",
+      "name": "fire",
+      "font_class": "fire",
+      "unicode": "e6a1",
+      "unicode_decimal": 59041
+    },
+    {
+      "icon_id": "24899648",
+      "name": "paihangbang",
+      "font_class": "medal",
+      "unicode": "e6a2",
+      "unicode_decimal": 59042
+    },
+    {
+      "icon_id": "24899649",
+      "name": "font",
+      "font_class": "font",
+      "unicode": "e6a3",
+      "unicode_decimal": 59043
+    },
+    {
+      "icon_id": "24899650",
+      "name": "gift",
+      "font_class": "gift",
+      "unicode": "e6a4",
+      "unicode_decimal": 59044
+    },
+    {
+      "icon_id": "24899651",
+      "name": "link",
+      "font_class": "link",
+      "unicode": "e6a5",
+      "unicode_decimal": 59045
+    },
+    {
+      "icon_id": "24899652",
+      "name": "notification",
+      "font_class": "notification",
+      "unicode": "e6a6",
+      "unicode_decimal": 59046
+    },
+    {
+      "icon_id": "24899653",
+      "name": "staff",
+      "font_class": "staff",
+      "unicode": "e6a7",
+      "unicode_decimal": 59047
+    },
+    {
+      "icon_id": "24899654",
+      "name": "VIP",
+      "font_class": "vip",
+      "unicode": "e6a8",
+      "unicode_decimal": 59048
+    },
+    {
+      "icon_id": "24899655",
+      "name": "folder_add",
+      "font_class": "folder-add",
+      "unicode": "e6a9",
+      "unicode_decimal": 59049
+    },
+    {
+      "icon_id": "24899656",
+      "name": "tune",
+      "font_class": "tune",
+      "unicode": "e6aa",
+      "unicode_decimal": 59050
+    },
+    {
+      "icon_id": "24899657",
+      "name": "shimingrenzheng",
+      "font_class": "auth",
+      "unicode": "e6ab",
+      "unicode_decimal": 59051
+    },
+    {
+      "icon_id": "24899565",
+      "name": "person",
+      "font_class": "person",
+      "unicode": "e699",
+      "unicode_decimal": 59033
+    },
+    {
+      "icon_id": "24899566",
+      "name": "email-filled",
+      "font_class": "email-filled",
+      "unicode": "e69a",
+      "unicode_decimal": 59034
+    },
+    {
+      "icon_id": "24899567",
+      "name": "phone-filled",
+      "font_class": "phone-filled",
+      "unicode": "e69b",
+      "unicode_decimal": 59035
+    },
+    {
+      "icon_id": "24899568",
+      "name": "phone",
+      "font_class": "phone",
+      "unicode": "e69c",
+      "unicode_decimal": 59036
+    },
+    {
+      "icon_id": "24899570",
+      "name": "email",
+      "font_class": "email",
+      "unicode": "e69e",
+      "unicode_decimal": 59038
+    },
+    {
+      "icon_id": "24899571",
+      "name": "personadd",
+      "font_class": "personadd",
+      "unicode": "e69f",
+      "unicode_decimal": 59039
+    },
+    {
+      "icon_id": "24899558",
+      "name": "chatboxes-filled",
+      "font_class": "chatboxes-filled",
+      "unicode": "e692",
+      "unicode_decimal": 59026
+    },
+    {
+      "icon_id": "24899559",
+      "name": "contact",
+      "font_class": "contact",
+      "unicode": "e693",
+      "unicode_decimal": 59027
+    },
+    {
+      "icon_id": "24899560",
+      "name": "chatbubble-filled",
+      "font_class": "chatbubble-filled",
+      "unicode": "e694",
+      "unicode_decimal": 59028
+    },
+    {
+      "icon_id": "24899561",
+      "name": "contact-filled",
+      "font_class": "contact-filled",
+      "unicode": "e695",
+      "unicode_decimal": 59029
+    },
+    {
+      "icon_id": "24899562",
+      "name": "chatboxes",
+      "font_class": "chatboxes",
+      "unicode": "e696",
+      "unicode_decimal": 59030
+    },
+    {
+      "icon_id": "24899563",
+      "name": "chatbubble",
+      "font_class": "chatbubble",
+      "unicode": "e697",
+      "unicode_decimal": 59031
+    },
+    {
+      "icon_id": "24881290",
+      "name": "upload-filled",
+      "font_class": "upload-filled",
+      "unicode": "e68e",
+      "unicode_decimal": 59022
+    },
+    {
+      "icon_id": "24881292",
+      "name": "upload",
+      "font_class": "upload",
+      "unicode": "e690",
+      "unicode_decimal": 59024
+    },
+    {
+      "icon_id": "24881293",
+      "name": "weixin",
+      "font_class": "weixin",
+      "unicode": "e691",
+      "unicode_decimal": 59025
+    },
+    {
+      "icon_id": "24881274",
+      "name": "compose",
+      "font_class": "compose",
+      "unicode": "e67f",
+      "unicode_decimal": 59007
+    },
+    {
+      "icon_id": "24881275",
+      "name": "qq",
+      "font_class": "qq",
+      "unicode": "e680",
+      "unicode_decimal": 59008
+    },
+    {
+      "icon_id": "24881276",
+      "name": "download-filled",
+      "font_class": "download-filled",
+      "unicode": "e681",
+      "unicode_decimal": 59009
+    },
+    {
+      "icon_id": "24881277",
+      "name": "pengyouquan",
+      "font_class": "pyq",
+      "unicode": "e682",
+      "unicode_decimal": 59010
+    },
+    {
+      "icon_id": "24881279",
+      "name": "sound",
+      "font_class": "sound",
+      "unicode": "e684",
+      "unicode_decimal": 59012
+    },
+    {
+      "icon_id": "24881280",
+      "name": "trash-filled",
+      "font_class": "trash-filled",
+      "unicode": "e685",
+      "unicode_decimal": 59013
+    },
+    {
+      "icon_id": "24881281",
+      "name": "sound-filled",
+      "font_class": "sound-filled",
+      "unicode": "e686",
+      "unicode_decimal": 59014
+    },
+    {
+      "icon_id": "24881282",
+      "name": "trash",
+      "font_class": "trash",
+      "unicode": "e687",
+      "unicode_decimal": 59015
+    },
+    {
+      "icon_id": "24881284",
+      "name": "videocam-filled",
+      "font_class": "videocam-filled",
+      "unicode": "e689",
+      "unicode_decimal": 59017
+    },
+    {
+      "icon_id": "24881285",
+      "name": "spinner-cycle",
+      "font_class": "spinner-cycle",
+      "unicode": "e68a",
+      "unicode_decimal": 59018
+    },
+    {
+      "icon_id": "24881286",
+      "name": "weibo",
+      "font_class": "weibo",
+      "unicode": "e68b",
+      "unicode_decimal": 59019
+    },
+    {
+      "icon_id": "24881288",
+      "name": "videocam",
+      "font_class": "videocam",
+      "unicode": "e68c",
+      "unicode_decimal": 59020
+    },
+    {
+      "icon_id": "24881289",
+      "name": "download",
+      "font_class": "download",
+      "unicode": "e68d",
+      "unicode_decimal": 59021
+    },
+    {
+      "icon_id": "24879601",
+      "name": "help",
+      "font_class": "help",
+      "unicode": "e679",
+      "unicode_decimal": 59001
+    },
+    {
+      "icon_id": "24879602",
+      "name": "navigate-filled",
+      "font_class": "navigate-filled",
+      "unicode": "e67a",
+      "unicode_decimal": 59002
+    },
+    {
+      "icon_id": "24879603",
+      "name": "plusempty",
+      "font_class": "plusempty",
+      "unicode": "e67b",
+      "unicode_decimal": 59003
+    },
+    {
+      "icon_id": "24879604",
+      "name": "smallcircle",
+      "font_class": "smallcircle",
+      "unicode": "e67c",
+      "unicode_decimal": 59004
+    },
+    {
+      "icon_id": "24879605",
+      "name": "minus-filled",
+      "font_class": "minus-filled",
+      "unicode": "e67d",
+      "unicode_decimal": 59005
+    },
+    {
+      "icon_id": "24879606",
+      "name": "micoff",
+      "font_class": "micoff",
+      "unicode": "e67e",
+      "unicode_decimal": 59006
+    },
+    {
+      "icon_id": "24879588",
+      "name": "closeempty",
+      "font_class": "closeempty",
+      "unicode": "e66c",
+      "unicode_decimal": 58988
+    },
+    {
+      "icon_id": "24879589",
+      "name": "clear",
+      "font_class": "clear",
+      "unicode": "e66d",
+      "unicode_decimal": 58989
+    },
+    {
+      "icon_id": "24879590",
+      "name": "navigate",
+      "font_class": "navigate",
+      "unicode": "e66e",
+      "unicode_decimal": 58990
+    },
+    {
+      "icon_id": "24879591",
+      "name": "minus",
+      "font_class": "minus",
+      "unicode": "e66f",
+      "unicode_decimal": 58991
+    },
+    {
+      "icon_id": "24879592",
+      "name": "image",
+      "font_class": "image",
+      "unicode": "e670",
+      "unicode_decimal": 58992
+    },
+    {
+      "icon_id": "24879593",
+      "name": "mic",
+      "font_class": "mic",
+      "unicode": "e671",
+      "unicode_decimal": 58993
+    },
+    {
+      "icon_id": "24879594",
+      "name": "paperplane",
+      "font_class": "paperplane",
+      "unicode": "e672",
+      "unicode_decimal": 58994
+    },
+    {
+      "icon_id": "24879595",
+      "name": "close",
+      "font_class": "close",
+      "unicode": "e673",
+      "unicode_decimal": 58995
+    },
+    {
+      "icon_id": "24879596",
+      "name": "help-filled",
+      "font_class": "help-filled",
+      "unicode": "e674",
+      "unicode_decimal": 58996
+    },
+    {
+      "icon_id": "24879597",
+      "name": "plus-filled",
+      "font_class": "paperplane-filled",
+      "unicode": "e675",
+      "unicode_decimal": 58997
+    },
+    {
+      "icon_id": "24879598",
+      "name": "plus",
+      "font_class": "plus",
+      "unicode": "e676",
+      "unicode_decimal": 58998
+    },
+    {
+      "icon_id": "24879599",
+      "name": "mic-filled",
+      "font_class": "mic-filled",
+      "unicode": "e677",
+      "unicode_decimal": 58999
+    },
+    {
+      "icon_id": "24879600",
+      "name": "image-filled",
+      "font_class": "image-filled",
+      "unicode": "e678",
+      "unicode_decimal": 59000
+    },
+    {
+      "icon_id": "24855900",
+      "name": "locked-filled",
+      "font_class": "locked-filled",
+      "unicode": "e668",
+      "unicode_decimal": 58984
+    },
+    {
+      "icon_id": "24855901",
+      "name": "info",
+      "font_class": "info",
+      "unicode": "e669",
+      "unicode_decimal": 58985
+    },
+    {
+      "icon_id": "24855903",
+      "name": "locked",
+      "font_class": "locked",
+      "unicode": "e66b",
+      "unicode_decimal": 58987
+    },
+    {
+      "icon_id": "24855884",
+      "name": "camera-filled",
+      "font_class": "camera-filled",
+      "unicode": "e658",
+      "unicode_decimal": 58968
+    },
+    {
+      "icon_id": "24855885",
+      "name": "chat-filled",
+      "font_class": "chat-filled",
+      "unicode": "e659",
+      "unicode_decimal": 58969
+    },
+    {
+      "icon_id": "24855886",
+      "name": "camera",
+      "font_class": "camera",
+      "unicode": "e65a",
+      "unicode_decimal": 58970
+    },
+    {
+      "icon_id": "24855887",
+      "name": "circle",
+      "font_class": "circle",
+      "unicode": "e65b",
+      "unicode_decimal": 58971
+    },
+    {
+      "icon_id": "24855888",
+      "name": "checkmarkempty",
+      "font_class": "checkmarkempty",
+      "unicode": "e65c",
+      "unicode_decimal": 58972
+    },
+    {
+      "icon_id": "24855889",
+      "name": "chat",
+      "font_class": "chat",
+      "unicode": "e65d",
+      "unicode_decimal": 58973
+    },
+    {
+      "icon_id": "24855890",
+      "name": "circle-filled",
+      "font_class": "circle-filled",
+      "unicode": "e65e",
+      "unicode_decimal": 58974
+    },
+    {
+      "icon_id": "24855891",
+      "name": "flag",
+      "font_class": "flag",
+      "unicode": "e65f",
+      "unicode_decimal": 58975
+    },
+    {
+      "icon_id": "24855892",
+      "name": "flag-filled",
+      "font_class": "flag-filled",
+      "unicode": "e660",
+      "unicode_decimal": 58976
+    },
+    {
+      "icon_id": "24855893",
+      "name": "gear-filled",
+      "font_class": "gear-filled",
+      "unicode": "e661",
+      "unicode_decimal": 58977
+    },
+    {
+      "icon_id": "24855894",
+      "name": "home",
+      "font_class": "home",
+      "unicode": "e662",
+      "unicode_decimal": 58978
+    },
+    {
+      "icon_id": "24855895",
+      "name": "home-filled",
+      "font_class": "home-filled",
+      "unicode": "e663",
+      "unicode_decimal": 58979
+    },
+    {
+      "icon_id": "24855896",
+      "name": "gear",
+      "font_class": "gear",
+      "unicode": "e664",
+      "unicode_decimal": 58980
+    },
+    {
+      "icon_id": "24855897",
+      "name": "smallcircle-filled",
+      "font_class": "smallcircle-filled",
+      "unicode": "e665",
+      "unicode_decimal": 58981
+    },
+    {
+      "icon_id": "24855898",
+      "name": "map-filled",
+      "font_class": "map-filled",
+      "unicode": "e666",
+      "unicode_decimal": 58982
+    },
+    {
+      "icon_id": "24855899",
+      "name": "map",
+      "font_class": "map",
+      "unicode": "e667",
+      "unicode_decimal": 58983
+    },
+    {
+      "icon_id": "24855825",
+      "name": "refresh-filled",
+      "font_class": "refresh-filled",
+      "unicode": "e656",
+      "unicode_decimal": 58966
+    },
+    {
+      "icon_id": "24855826",
+      "name": "refresh",
+      "font_class": "refresh",
+      "unicode": "e657",
+      "unicode_decimal": 58967
+    },
+    {
+      "icon_id": "24855808",
+      "name": "cloud-upload",
+      "font_class": "cloud-upload",
+      "unicode": "e645",
+      "unicode_decimal": 58949
+    },
+    {
+      "icon_id": "24855809",
+      "name": "cloud-download-filled",
+      "font_class": "cloud-download-filled",
+      "unicode": "e646",
+      "unicode_decimal": 58950
+    },
+    {
+      "icon_id": "24855810",
+      "name": "cloud-download",
+      "font_class": "cloud-download",
+      "unicode": "e647",
+      "unicode_decimal": 58951
+    },
+    {
+      "icon_id": "24855811",
+      "name": "cloud-upload-filled",
+      "font_class": "cloud-upload-filled",
+      "unicode": "e648",
+      "unicode_decimal": 58952
+    },
+    {
+      "icon_id": "24855813",
+      "name": "redo",
+      "font_class": "redo",
+      "unicode": "e64a",
+      "unicode_decimal": 58954
+    },
+    {
+      "icon_id": "24855814",
+      "name": "images-filled",
+      "font_class": "images-filled",
+      "unicode": "e64b",
+      "unicode_decimal": 58955
+    },
+    {
+      "icon_id": "24855815",
+      "name": "undo-filled",
+      "font_class": "undo-filled",
+      "unicode": "e64c",
+      "unicode_decimal": 58956
+    },
+    {
+      "icon_id": "24855816",
+      "name": "more",
+      "font_class": "more",
+      "unicode": "e64d",
+      "unicode_decimal": 58957
+    },
+    {
+      "icon_id": "24855817",
+      "name": "more-filled",
+      "font_class": "more-filled",
+      "unicode": "e64e",
+      "unicode_decimal": 58958
+    },
+    {
+      "icon_id": "24855818",
+      "name": "undo",
+      "font_class": "undo",
+      "unicode": "e64f",
+      "unicode_decimal": 58959
+    },
+    {
+      "icon_id": "24855819",
+      "name": "images",
+      "font_class": "images",
+      "unicode": "e650",
+      "unicode_decimal": 58960
+    },
+    {
+      "icon_id": "24855821",
+      "name": "paperclip",
+      "font_class": "paperclip",
+      "unicode": "e652",
+      "unicode_decimal": 58962
+    },
+    {
+      "icon_id": "24855822",
+      "name": "settings",
+      "font_class": "settings",
+      "unicode": "e653",
+      "unicode_decimal": 58963
+    },
+    {
+      "icon_id": "24855823",
+      "name": "search",
+      "font_class": "search",
+      "unicode": "e654",
+      "unicode_decimal": 58964
+    },
+    {
+      "icon_id": "24855824",
+      "name": "redo-filled",
+      "font_class": "redo-filled",
+      "unicode": "e655",
+      "unicode_decimal": 58965
+    },
+    {
+      "icon_id": "24841702",
+      "name": "list",
+      "font_class": "list",
+      "unicode": "e644",
+      "unicode_decimal": 58948
+    },
+    {
+      "icon_id": "24841489",
+      "name": "mail-open-filled",
+      "font_class": "mail-open-filled",
+      "unicode": "e63a",
+      "unicode_decimal": 58938
+    },
+    {
+      "icon_id": "24841491",
+      "name": "hand-thumbsdown-filled",
+      "font_class": "hand-down-filled",
+      "unicode": "e63c",
+      "unicode_decimal": 58940
+    },
+    {
+      "icon_id": "24841492",
+      "name": "hand-thumbsdown",
+      "font_class": "hand-down",
+      "unicode": "e63d",
+      "unicode_decimal": 58941
+    },
+    {
+      "icon_id": "24841493",
+      "name": "hand-thumbsup-filled",
+      "font_class": "hand-up-filled",
+      "unicode": "e63e",
+      "unicode_decimal": 58942
+    },
+    {
+      "icon_id": "24841494",
+      "name": "hand-thumbsup",
+      "font_class": "hand-up",
+      "unicode": "e63f",
+      "unicode_decimal": 58943
+    },
+    {
+      "icon_id": "24841496",
+      "name": "heart-filled",
+      "font_class": "heart-filled",
+      "unicode": "e641",
+      "unicode_decimal": 58945
+    },
+    {
+      "icon_id": "24841498",
+      "name": "mail-open",
+      "font_class": "mail-open",
+      "unicode": "e643",
+      "unicode_decimal": 58947
+    },
+    {
+      "icon_id": "24841488",
+      "name": "heart",
+      "font_class": "heart",
+      "unicode": "e639",
+      "unicode_decimal": 58937
+    },
+    {
+      "icon_id": "24839963",
+      "name": "loop",
+      "font_class": "loop",
+      "unicode": "e633",
+      "unicode_decimal": 58931
+    },
+    {
+      "icon_id": "24839866",
+      "name": "pulldown",
+      "font_class": "pulldown",
+      "unicode": "e632",
+      "unicode_decimal": 58930
+    },
+    {
+      "icon_id": "24813798",
+      "name": "scan",
+      "font_class": "scan",
+      "unicode": "e62a",
+      "unicode_decimal": 58922
+    },
+    {
+      "icon_id": "24813786",
+      "name": "bars",
+      "font_class": "bars",
+      "unicode": "e627",
+      "unicode_decimal": 58919
+    },
+    {
+      "icon_id": "24813788",
+      "name": "cart-filled",
+      "font_class": "cart-filled",
+      "unicode": "e629",
+      "unicode_decimal": 58921
+    },
+    {
+      "icon_id": "24813790",
+      "name": "checkbox",
+      "font_class": "checkbox",
+      "unicode": "e62b",
+      "unicode_decimal": 58923
+    },
+    {
+      "icon_id": "24813791",
+      "name": "checkbox-filled",
+      "font_class": "checkbox-filled",
+      "unicode": "e62c",
+      "unicode_decimal": 58924
+    },
+    {
+      "icon_id": "24813794",
+      "name": "shop",
+      "font_class": "shop",
+      "unicode": "e62f",
+      "unicode_decimal": 58927
+    },
+    {
+      "icon_id": "24813795",
+      "name": "headphones",
+      "font_class": "headphones",
+      "unicode": "e630",
+      "unicode_decimal": 58928
+    },
+    {
+      "icon_id": "24813796",
+      "name": "cart",
+      "font_class": "cart",
+      "unicode": "e631",
+      "unicode_decimal": 58929
+    }
+  ]
+}

+ 89 - 0
uni_modules/uni-icons/components/uni-icons/uni-icons.vue

@@ -0,0 +1,89 @@
+<template>
+	<!-- #ifdef APP-NVUE -->
+	<text :style="{ color: color, 'font-size': size + 'px' }" class="uni-icons" @click="_onClick">{{unicode}}</text>
+	<!-- #endif -->
+	<!-- #ifndef APP-NVUE -->
+	<text :style="{ color: color, 'font-size': size + 'px' }" class="uni-icons" :class="['uniui-'+type,customPrefix,customPrefix?type:'']" @click="_onClick"></text>
+	<!-- #endif -->
+</template>
+
+<script>
+	import icons from './icons.js';
+	// #ifdef APP-NVUE
+	var domModule = weex.requireModule('dom');
+	import iconUrl from './uniicons.ttf'
+	domModule.addRule('fontFace', {
+		'fontFamily': "uniicons",
+		'src': "url('"+iconUrl+"')"
+	});
+	// #endif
+
+	/**
+	 * Icons 图标
+	 * @description 用于展示 icons 图标
+	 * @tutorial https://ext.dcloud.net.cn/plugin?id=28
+	 * @property {Number} size 图标大小
+	 * @property {String} type 图标图案,参考示例
+	 * @property {String} color 图标颜色
+	 * @property {String} customPrefix 自定义图标
+	 * @event {Function} click 点击 Icon 触发事件
+	 */
+	export default {
+		name: 'UniIcons',
+		emits:['click'],
+		props: {
+			type: {
+				type: String,
+				default: ''
+			},
+			color: {
+				type: String,
+				default: '#333333'
+			},
+			size: {
+				type: [Number, String],
+				default: 16
+			},
+			customPrefix:{
+				type: String,
+				default: ''
+			}
+		},
+		data() {
+			return {
+				icons: icons.glyphs
+			}
+		},
+		computed:{
+			unicode(){
+				let code = this.icons.find(v=>v.font_class === this.type)
+				if(code){
+					return unescape(`%u${code.unicode}`)
+				}
+				return ''
+			}
+		},
+		methods: {
+			_onClick() {
+				this.$emit('click')
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	/* #ifndef APP-NVUE */
+	@import './uniicons.css';
+	@font-face {
+		font-family: uniicons;
+		src: url('./uniicons.ttf') format('truetype');
+	}
+
+	/* #endif */
+	.uni-icons {
+		font-family: uniicons;
+		text-decoration: none;
+		text-align: center;
+	}
+
+</style>

+ 663 - 0
uni_modules/uni-icons/components/uni-icons/uniicons.css

@@ -0,0 +1,663 @@
+.uniui-color:before {
+  content: "\e6cf";
+}
+
+.uniui-wallet:before {
+  content: "\e6b1";
+}
+
+.uniui-settings-filled:before {
+  content: "\e6ce";
+}
+
+.uniui-auth-filled:before {
+  content: "\e6cc";
+}
+
+.uniui-shop-filled:before {
+  content: "\e6cd";
+}
+
+.uniui-staff-filled:before {
+  content: "\e6cb";
+}
+
+.uniui-vip-filled:before {
+  content: "\e6c6";
+}
+
+.uniui-plus-filled:before {
+  content: "\e6c7";
+}
+
+.uniui-folder-add-filled:before {
+  content: "\e6c8";
+}
+
+.uniui-color-filled:before {
+  content: "\e6c9";
+}
+
+.uniui-tune-filled:before {
+  content: "\e6ca";
+}
+
+.uniui-calendar-filled:before {
+  content: "\e6c0";
+}
+
+.uniui-notification-filled:before {
+  content: "\e6c1";
+}
+
+.uniui-wallet-filled:before {
+  content: "\e6c2";
+}
+
+.uniui-medal-filled:before {
+  content: "\e6c3";
+}
+
+.uniui-gift-filled:before {
+  content: "\e6c4";
+}
+
+.uniui-fire-filled:before {
+  content: "\e6c5";
+}
+
+.uniui-refreshempty:before {
+  content: "\e6bf";
+}
+
+.uniui-location-filled:before {
+  content: "\e6af";
+}
+
+.uniui-person-filled:before {
+  content: "\e69d";
+}
+
+.uniui-personadd-filled:before {
+  content: "\e698";
+}
+
+.uniui-back:before {
+  content: "\e6b9";
+}
+
+.uniui-forward:before {
+  content: "\e6ba";
+}
+
+.uniui-arrow-right:before {
+  content: "\e6bb";
+}
+
+.uniui-arrowthinright:before {
+  content: "\e6bb";
+}
+
+.uniui-arrow-left:before {
+  content: "\e6bc";
+}
+
+.uniui-arrowthinleft:before {
+  content: "\e6bc";
+}
+
+.uniui-arrow-up:before {
+  content: "\e6bd";
+}
+
+.uniui-arrowthinup:before {
+  content: "\e6bd";
+}
+
+.uniui-arrow-down:before {
+  content: "\e6be";
+}
+
+.uniui-arrowthindown:before {
+  content: "\e6be";
+}
+
+.uniui-bottom:before {
+  content: "\e6b8";
+}
+
+.uniui-arrowdown:before {
+  content: "\e6b8";
+}
+
+.uniui-right:before {
+  content: "\e6b5";
+}
+
+.uniui-arrowright:before {
+  content: "\e6b5";
+}
+
+.uniui-top:before {
+  content: "\e6b6";
+}
+
+.uniui-arrowup:before {
+  content: "\e6b6";
+}
+
+.uniui-left:before {
+  content: "\e6b7";
+}
+
+.uniui-arrowleft:before {
+  content: "\e6b7";
+}
+
+.uniui-eye:before {
+  content: "\e651";
+}
+
+.uniui-eye-filled:before {
+  content: "\e66a";
+}
+
+.uniui-eye-slash:before {
+  content: "\e6b3";
+}
+
+.uniui-eye-slash-filled:before {
+  content: "\e6b4";
+}
+
+.uniui-info-filled:before {
+  content: "\e649";
+}
+
+.uniui-reload:before {
+  content: "\e6b2";
+}
+
+.uniui-micoff-filled:before {
+  content: "\e6b0";
+}
+
+.uniui-map-pin-ellipse:before {
+  content: "\e6ac";
+}
+
+.uniui-map-pin:before {
+  content: "\e6ad";
+}
+
+.uniui-location:before {
+  content: "\e6ae";
+}
+
+.uniui-starhalf:before {
+  content: "\e683";
+}
+
+.uniui-star:before {
+  content: "\e688";
+}
+
+.uniui-star-filled:before {
+  content: "\e68f";
+}
+
+.uniui-calendar:before {
+  content: "\e6a0";
+}
+
+.uniui-fire:before {
+  content: "\e6a1";
+}
+
+.uniui-medal:before {
+  content: "\e6a2";
+}
+
+.uniui-font:before {
+  content: "\e6a3";
+}
+
+.uniui-gift:before {
+  content: "\e6a4";
+}
+
+.uniui-link:before {
+  content: "\e6a5";
+}
+
+.uniui-notification:before {
+  content: "\e6a6";
+}
+
+.uniui-staff:before {
+  content: "\e6a7";
+}
+
+.uniui-vip:before {
+  content: "\e6a8";
+}
+
+.uniui-folder-add:before {
+  content: "\e6a9";
+}
+
+.uniui-tune:before {
+  content: "\e6aa";
+}
+
+.uniui-auth:before {
+  content: "\e6ab";
+}
+
+.uniui-person:before {
+  content: "\e699";
+}
+
+.uniui-email-filled:before {
+  content: "\e69a";
+}
+
+.uniui-phone-filled:before {
+  content: "\e69b";
+}
+
+.uniui-phone:before {
+  content: "\e69c";
+}
+
+.uniui-email:before {
+  content: "\e69e";
+}
+
+.uniui-personadd:before {
+  content: "\e69f";
+}
+
+.uniui-chatboxes-filled:before {
+  content: "\e692";
+}
+
+.uniui-contact:before {
+  content: "\e693";
+}
+
+.uniui-chatbubble-filled:before {
+  content: "\e694";
+}
+
+.uniui-contact-filled:before {
+  content: "\e695";
+}
+
+.uniui-chatboxes:before {
+  content: "\e696";
+}
+
+.uniui-chatbubble:before {
+  content: "\e697";
+}
+
+.uniui-upload-filled:before {
+  content: "\e68e";
+}
+
+.uniui-upload:before {
+  content: "\e690";
+}
+
+.uniui-weixin:before {
+  content: "\e691";
+}
+
+.uniui-compose:before {
+  content: "\e67f";
+}
+
+.uniui-qq:before {
+  content: "\e680";
+}
+
+.uniui-download-filled:before {
+  content: "\e681";
+}
+
+.uniui-pyq:before {
+  content: "\e682";
+}
+
+.uniui-sound:before {
+  content: "\e684";
+}
+
+.uniui-trash-filled:before {
+  content: "\e685";
+}
+
+.uniui-sound-filled:before {
+  content: "\e686";
+}
+
+.uniui-trash:before {
+  content: "\e687";
+}
+
+.uniui-videocam-filled:before {
+  content: "\e689";
+}
+
+.uniui-spinner-cycle:before {
+  content: "\e68a";
+}
+
+.uniui-weibo:before {
+  content: "\e68b";
+}
+
+.uniui-videocam:before {
+  content: "\e68c";
+}
+
+.uniui-download:before {
+  content: "\e68d";
+}
+
+.uniui-help:before {
+  content: "\e679";
+}
+
+.uniui-navigate-filled:before {
+  content: "\e67a";
+}
+
+.uniui-plusempty:before {
+  content: "\e67b";
+}
+
+.uniui-smallcircle:before {
+  content: "\e67c";
+}
+
+.uniui-minus-filled:before {
+  content: "\e67d";
+}
+
+.uniui-micoff:before {
+  content: "\e67e";
+}
+
+.uniui-closeempty:before {
+  content: "\e66c";
+}
+
+.uniui-clear:before {
+  content: "\e66d";
+}
+
+.uniui-navigate:before {
+  content: "\e66e";
+}
+
+.uniui-minus:before {
+  content: "\e66f";
+}
+
+.uniui-image:before {
+  content: "\e670";
+}
+
+.uniui-mic:before {
+  content: "\e671";
+}
+
+.uniui-paperplane:before {
+  content: "\e672";
+}
+
+.uniui-close:before {
+  content: "\e673";
+}
+
+.uniui-help-filled:before {
+  content: "\e674";
+}
+
+.uniui-paperplane-filled:before {
+  content: "\e675";
+}
+
+.uniui-plus:before {
+  content: "\e676";
+}
+
+.uniui-mic-filled:before {
+  content: "\e677";
+}
+
+.uniui-image-filled:before {
+  content: "\e678";
+}
+
+.uniui-locked-filled:before {
+  content: "\e668";
+}
+
+.uniui-info:before {
+  content: "\e669";
+}
+
+.uniui-locked:before {
+  content: "\e66b";
+}
+
+.uniui-camera-filled:before {
+  content: "\e658";
+}
+
+.uniui-chat-filled:before {
+  content: "\e659";
+}
+
+.uniui-camera:before {
+  content: "\e65a";
+}
+
+.uniui-circle:before {
+  content: "\e65b";
+}
+
+.uniui-checkmarkempty:before {
+  content: "\e65c";
+}
+
+.uniui-chat:before {
+  content: "\e65d";
+}
+
+.uniui-circle-filled:before {
+  content: "\e65e";
+}
+
+.uniui-flag:before {
+  content: "\e65f";
+}
+
+.uniui-flag-filled:before {
+  content: "\e660";
+}
+
+.uniui-gear-filled:before {
+  content: "\e661";
+}
+
+.uniui-home:before {
+  content: "\e662";
+}
+
+.uniui-home-filled:before {
+  content: "\e663";
+}
+
+.uniui-gear:before {
+  content: "\e664";
+}
+
+.uniui-smallcircle-filled:before {
+  content: "\e665";
+}
+
+.uniui-map-filled:before {
+  content: "\e666";
+}
+
+.uniui-map:before {
+  content: "\e667";
+}
+
+.uniui-refresh-filled:before {
+  content: "\e656";
+}
+
+.uniui-refresh:before {
+  content: "\e657";
+}
+
+.uniui-cloud-upload:before {
+  content: "\e645";
+}
+
+.uniui-cloud-download-filled:before {
+  content: "\e646";
+}
+
+.uniui-cloud-download:before {
+  content: "\e647";
+}
+
+.uniui-cloud-upload-filled:before {
+  content: "\e648";
+}
+
+.uniui-redo:before {
+  content: "\e64a";
+}
+
+.uniui-images-filled:before {
+  content: "\e64b";
+}
+
+.uniui-undo-filled:before {
+  content: "\e64c";
+}
+
+.uniui-more:before {
+  content: "\e64d";
+}
+
+.uniui-more-filled:before {
+  content: "\e64e";
+}
+
+.uniui-undo:before {
+  content: "\e64f";
+}
+
+.uniui-images:before {
+  content: "\e650";
+}
+
+.uniui-paperclip:before {
+  content: "\e652";
+}
+
+.uniui-settings:before {
+  content: "\e653";
+}
+
+.uniui-search:before {
+  content: "\e654";
+}
+
+.uniui-redo-filled:before {
+  content: "\e655";
+}
+
+.uniui-list:before {
+  content: "\e644";
+}
+
+.uniui-mail-open-filled:before {
+  content: "\e63a";
+}
+
+.uniui-hand-down-filled:before {
+  content: "\e63c";
+}
+
+.uniui-hand-down:before {
+  content: "\e63d";
+}
+
+.uniui-hand-up-filled:before {
+  content: "\e63e";
+}
+
+.uniui-hand-up:before {
+  content: "\e63f";
+}
+
+.uniui-heart-filled:before {
+  content: "\e641";
+}
+
+.uniui-mail-open:before {
+  content: "\e643";
+}
+
+.uniui-heart:before {
+  content: "\e639";
+}
+
+.uniui-loop:before {
+  content: "\e633";
+}
+
+.uniui-pulldown:before {
+  content: "\e632";
+}
+
+.uniui-scan:before {
+  content: "\e62a";
+}
+
+.uniui-bars:before {
+  content: "\e627";
+}
+
+.uniui-cart-filled:before {
+  content: "\e629";
+}
+
+.uniui-checkbox:before {
+  content: "\e62b";
+}
+
+.uniui-checkbox-filled:before {
+  content: "\e62c";
+}
+
+.uniui-shop:before {
+  content: "\e62f";
+}
+
+.uniui-headphones:before {
+  content: "\e630";
+}
+
+.uniui-cart:before {
+  content: "\e631";
+}

BIN
uni_modules/uni-icons/components/uni-icons/uniicons.ttf


+ 86 - 0
uni_modules/uni-icons/package.json

@@ -0,0 +1,86 @@
+{
+  "id": "uni-icons",
+  "displayName": "uni-icons 图标",
+  "version": "1.3.2",
+  "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。",
+  "keywords": [
+    "uni-ui",
+    "uniui",
+    "icon",
+    "图标"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": "^3.2.14"
+  },
+  "directories": {
+    "example": "../../temps/example_temps"
+  },
+  "dcloudext": {
+    "category": [
+      "前端组件",
+      "通用组件"
+    ],
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "无",
+      "data": "无",
+      "permissions": "无"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+  },
+  "uni_modules": {
+    "dependencies": ["uni-scss"],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "y"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "微信浏览器(Android)": "y",
+          "QQ浏览器(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "小程序": {
+          "微信": "y",
+          "阿里": "y",
+          "百度": "y",
+          "字节跳动": "y",
+          "QQ": "y"
+        },
+        "快应用": {
+          "华为": "u",
+          "联盟": "u"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
+        }
+      }
+    }
+  }
+}

+ 8 - 0
uni_modules/uni-icons/readme.md

@@ -0,0 +1,8 @@
+## Icons 图标
+> **组件名:uni-icons**
+> 代码块: `uIcons`
+
+用于展示 icons 图标 。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 

+ 23 - 0
uni_modules/uni-rate/changelog.md

@@ -0,0 +1,23 @@
+## 1.3.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-rate](https://uniapp.dcloud.io/component/uniui/uni-rate)
+## 1.2.2(2021-09-10)
+- 优化 默认值修改为 0 颗星
+## 1.2.1(2021-07-30)
+- 优化 vue3下事件警告的问题
+## 1.2.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.2(2021-05-12)
+- 新增 组件示例地址
+## 1.1.1(2021-04-21)
+- 修复 布局变化后 uni-rate  星星计算不准确的 bug
+- 优化 添加依赖 uni-icons, 导入 uni-rate 自动下载依赖
+## 1.1.0(2021-04-16)
+- 修复 uni-rate 属性 margin 值为 string 组件失效的 bug
+
+## 1.0.9(2021-02-05)
+- 优化 组件引用关系,通过uni_modules引用组件
+
+## 1.0.8(2021-02-05)
+- 调整为uni_modules目录规范
+- 支持 pc 端

+ 88 - 0
uni_modules/uni-rate/package.json

@@ -0,0 +1,88 @@
+{
+  "id": "uni-rate",
+  "displayName": "uni-rate 评分",
+  "version": "1.3.0",
+  "description": "Rate 评分组件,可自定义评分星星图标的大小、间隔、评分数。",
+  "keywords": [
+    "uni-ui",
+    "uniui",
+    "评分"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": ""
+  },
+  "directories": {
+    "example": "../../temps/example_temps"
+  },
+  "dcloudext": {
+    "category": [
+      "前端组件",
+      "通用组件"
+    ],
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "无",
+      "data": "无",
+      "permissions": "无"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+  },
+  "uni_modules": {
+    "dependencies": [
+			"uni-scss",
+			"uni-icons"
+		],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "y"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "微信浏览器(Android)": "y",
+          "QQ浏览器(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "小程序": {
+          "微信": "y",
+          "阿里": "y",
+          "百度": "y",
+          "字节跳动": "y",
+          "QQ": "y"
+        },
+        "快应用": {
+          "华为": "u",
+          "联盟": "u"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
+        }
+      }
+    }
+  }
+}

+ 12 - 0
uni_modules/uni-rate/readme.md

@@ -0,0 +1,12 @@
+
+
+## Rate 评分
+> **组件名:uni-rate**
+> 代码块: `uRate`
+> 关联组件:`uni-icons`
+
+
+评分组件,多用于购买商品后,对商品进行评价等场景
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-rate)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 

+ 8 - 0
uni_modules/uni-scss/changelog.md

@@ -0,0 +1,8 @@
+## 1.0.3(2022-01-21)
+- 优化 组件示例
+## 1.0.2(2021-11-22)
+- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题
+## 1.0.1(2021-11-22)
+- 修复 vue3中scss语法兼容问题
+## 1.0.0(2021-11-18)
+- init

+ 1 - 0
uni_modules/uni-scss/index.scss

@@ -0,0 +1 @@
+@import './styles/index.scss';

+ 82 - 0
uni_modules/uni-scss/package.json

@@ -0,0 +1,82 @@
+{
+  "id": "uni-scss",
+  "displayName": "uni-scss 辅助样式",
+  "version": "1.0.3",
+  "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。",
+  "keywords": [
+    "uni-scss",
+    "uni-ui",
+    "辅助样式"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": "^3.1.0"
+  },
+  "dcloudext": {
+    "category": [
+        "JS SDK",
+        "通用 SDK"
+    ],
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "无",
+      "data": "无",
+      "permissions": "无"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+  },
+  "uni_modules": {
+    "dependencies": [],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "u"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "微信浏览器(Android)": "y",
+          "QQ浏览器(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "小程序": {
+          "微信": "y",
+          "阿里": "y",
+          "百度": "y",
+          "字节跳动": "y",
+          "QQ": "y"
+        },
+        "快应用": {
+          "华为": "n",
+          "联盟": "n"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
+        }
+      }
+    }
+  }
+}

+ 4 - 0
uni_modules/uni-scss/readme.md

@@ -0,0 +1,4 @@
+`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 

+ 7 - 0
uni_modules/uni-scss/styles/index.scss

@@ -0,0 +1,7 @@
+@import './setting/_variables.scss';
+@import './setting/_border.scss';
+@import './setting/_color.scss';
+@import './setting/_space.scss';
+@import './setting/_radius.scss';
+@import './setting/_text.scss';
+@import './setting/_styles.scss';

+ 3 - 0
uni_modules/uni-scss/styles/setting/_border.scss

@@ -0,0 +1,3 @@
+.uni-border {
+	border: 1px $uni-border-1 solid;
+}

+ 66 - 0
uni_modules/uni-scss/styles/setting/_color.scss

@@ -0,0 +1,66 @@
+
+// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐
+// @mixin get-styles($k,$c) {
+// 	@if $k == size or $k == weight{
+// 		font-#{$k}:#{$c}
+// 	}@else{
+// 		#{$k}:#{$c}
+// 	}
+// }
+$uni-ui-color:(
+	// 主色
+	primary: $uni-primary,
+	primary-disable: $uni-primary-disable,
+	primary-light: $uni-primary-light,
+	// 辅助色
+	success: $uni-success,
+	success-disable: $uni-success-disable,
+	success-light: $uni-success-light,
+	warning: $uni-warning,
+	warning-disable: $uni-warning-disable,
+	warning-light: $uni-warning-light,
+	error: $uni-error,
+	error-disable: $uni-error-disable,
+	error-light: $uni-error-light,
+	info: $uni-info,
+	info-disable: $uni-info-disable,
+	info-light: $uni-info-light,
+	// 中性色
+	main-color: $uni-main-color,
+	base-color: $uni-base-color,
+	secondary-color: $uni-secondary-color,
+	extra-color: $uni-extra-color,
+	// 背景色
+	bg-color: $uni-bg-color,
+	// 边框颜色
+	border-1: $uni-border-1,
+	border-2: $uni-border-2,
+	border-3: $uni-border-3,
+	border-4: $uni-border-4,
+	// 黑色
+	black:$uni-black,
+	// 白色
+	white:$uni-white,
+	// 透明
+	transparent:$uni-transparent
+) !default;
+@each $key, $child in $uni-ui-color {
+	.uni-#{"" + $key} {
+		color: $child;
+	}
+	.uni-#{"" + $key}-bg {
+		background-color: $child;
+	}
+}
+.uni-shadow-sm {
+	box-shadow: $uni-shadow-sm;
+}
+.uni-shadow-base {
+	box-shadow: $uni-shadow-base;
+}
+.uni-shadow-lg {
+	box-shadow: $uni-shadow-lg;
+}
+.uni-mask {
+	background-color:$uni-mask;
+}

+ 55 - 0
uni_modules/uni-scss/styles/setting/_radius.scss

@@ -0,0 +1,55 @@
+@mixin radius($r,$d:null ,$important: false){
+  $radius-value:map-get($uni-radius, $r) if($important, !important, null);
+  // Key exists within the $uni-radius variable
+  @if (map-has-key($uni-radius, $r) and  $d){
+		@if $d == t {
+				border-top-left-radius:$radius-value;
+				border-top-right-radius:$radius-value;
+		}@else if $d == r {
+				border-top-right-radius:$radius-value;
+				border-bottom-right-radius:$radius-value;
+		}@else if $d == b {
+				border-bottom-left-radius:$radius-value;
+				border-bottom-right-radius:$radius-value;
+		}@else if $d == l {
+				border-top-left-radius:$radius-value;
+				border-bottom-left-radius:$radius-value;
+		}@else if $d == tl {
+				border-top-left-radius:$radius-value;
+		}@else if $d == tr {
+				border-top-right-radius:$radius-value;
+		}@else if $d == br {
+				border-bottom-right-radius:$radius-value;
+		}@else if $d == bl {
+				border-bottom-left-radius:$radius-value;
+		}
+  }@else{
+		border-radius:$radius-value;
+  }
+}
+
+@each $key, $child in $uni-radius {
+	@if($key){
+		.uni-radius-#{"" + $key} {
+				@include radius($key)
+		}
+	}@else{
+		.uni-radius {
+				@include radius($key)
+		}
+	}
+}
+
+@each $direction in t, r, b, l,tl, tr, br, bl {
+	@each $key, $child in $uni-radius {
+		@if($key){
+			.uni-radius-#{"" + $direction}-#{"" + $key} {
+				@include radius($key,$direction,false)
+			}
+		}@else{
+			.uni-radius-#{$direction} {
+				@include radius($key,$direction,false)
+			}
+		}
+	}
+}

+ 56 - 0
uni_modules/uni-scss/styles/setting/_space.scss

@@ -0,0 +1,56 @@
+
+@mixin fn($space,$direction,$size,$n) {
+	@if $n {
+		#{$space}-#{$direction}: #{$size*$uni-space-root}px
+	} @else {
+		 #{$space}-#{$direction}: #{-$size*$uni-space-root}px
+	}
+}
+@mixin get-styles($direction,$i,$space,$n){
+	@if $direction == t {
+		@include fn($space, top,$i,$n);
+	} 
+	@if $direction == r {
+		@include fn($space, right,$i,$n);
+	} 
+	@if $direction == b {
+		@include fn($space, bottom,$i,$n);
+	} 
+	@if $direction == l {
+	 @include fn($space, left,$i,$n);
+	} 
+	@if $direction == x {
+		@include fn($space, left,$i,$n);
+		@include fn($space, right,$i,$n);
+	} 
+	@if $direction == y {
+		@include fn($space, top,$i,$n);
+		@include fn($space, bottom,$i,$n);
+	} 
+	@if $direction == a {
+		@if $n {
+			#{$space}:#{$i*$uni-space-root}px;
+		} @else {
+			#{$space}:#{-$i*$uni-space-root}px;
+		}
+	} 
+}
+
+@each $orientation in m,p {
+	$space: margin;
+	@if $orientation == m {
+		$space: margin;
+	} @else {
+		$space: padding;
+	}
+	@for $i from 0 through 16 {
+		@each $direction in t, r, b, l, x, y, a {
+			.uni-#{$orientation}#{$direction}-#{$i} { 
+				@include  get-styles($direction,$i,$space,true);
+			} 
+			.uni-#{$orientation}#{$direction}-n#{$i} { 
+				@include  get-styles($direction,$i,$space,false);
+			}
+		}
+	}
+}

+ 167 - 0
uni_modules/uni-scss/styles/setting/_styles.scss

@@ -0,0 +1,167 @@
+/* #ifndef APP-NVUE */
+
+$-color-white:#fff;
+$-color-black:#000;
+@mixin base-style($color) {
+	color: #fff;
+	background-color: $color;
+	border-color: mix($-color-black, $color, 8%);
+	&:not([hover-class]):active {
+		background: mix($-color-black, $color, 10%);
+		border-color: mix($-color-black, $color, 20%);
+		color: $-color-white;
+		outline: none;
+	}
+}
+@mixin is-color($color) {
+	@include base-style($color);
+	&[loading] {
+		@include base-style($color);
+		&::before {
+			margin-right:5px;
+		}
+	}
+	&[disabled] {
+	  &,
+		&[loading],
+	  &:not([hover-class]):active {
+	    color: $-color-white;
+			border-color: mix(darken($color,10%), $-color-white);
+	    background-color: mix($color, $-color-white);
+	  }
+	}
+
+}
+@mixin base-plain-style($color) {
+	color:$color;
+	background-color: mix($-color-white, $color, 90%);
+	border-color: mix($-color-white, $color, 70%);
+	&:not([hover-class]):active {
+	  background: mix($-color-white, $color, 80%);
+	  color: $color;
+	  outline: none;
+		border-color: mix($-color-white, $color, 50%);
+	}
+}
+@mixin is-plain($color){
+	&[plain] {
+		@include base-plain-style($color);
+		&[loading] {
+			@include base-plain-style($color);
+			&::before {
+				margin-right:5px;
+			}
+		}
+		&[disabled] {
+		  &,
+		  &:active {
+		    color: mix($-color-white, $color, 40%);
+		    background-color: mix($-color-white, $color, 90%);
+				border-color: mix($-color-white, $color, 80%);
+		  }
+		}
+	}
+}
+
+
+.uni-btn {
+	margin: 5px;
+	color: #393939;
+	border:1px solid #ccc;
+	font-size: 16px;
+	font-weight: 200;
+	background-color: #F9F9F9;
+	// TODO 暂时处理边框隐藏一边的问题
+	overflow: visible;
+	&::after{
+		border: none;
+	}
+
+	&:not([type]),&[type=default] {
+		color: #999;
+		&[loading] {
+			background: none;
+			&::before {
+				margin-right:5px;
+			}
+		}
+
+
+
+		&[disabled]{
+			color: mix($-color-white, #999, 60%);
+		  &,
+			&[loading],
+		  &:active {
+				color: mix($-color-white, #999, 60%);
+		    background-color: mix($-color-white,$-color-black , 98%);
+				border-color: mix($-color-white,  #999, 85%);
+		  }
+		}
+
+		&[plain] {
+			color: #999;
+			background: none;
+			border-color: $uni-border-1;
+			&:not([hover-class]):active {
+				background: none;
+			  color: mix($-color-white, $-color-black, 80%);
+				border-color: mix($-color-white, $-color-black, 90%);
+			  outline: none;
+			}
+			&[disabled]{
+			  &,
+				&[loading],
+			  &:active {
+			    background: none;
+					color: mix($-color-white, #999, 60%);
+					border-color: mix($-color-white,  #999, 85%);
+			  }
+			}
+		}
+	}
+
+	&:not([hover-class]):active {
+	  color: mix($-color-white, $-color-black, 50%);
+	}
+
+	&[size=mini] {
+		font-size: 16px;
+		font-weight: 200;
+		border-radius: 8px;
+	}
+
+
+
+	&.uni-btn-small {
+		font-size: 14px;
+	}
+	&.uni-btn-mini {
+		font-size: 12px;
+	}
+
+	&.uni-btn-radius {
+		border-radius: 999px;
+	}
+	&[type=primary] {
+		@include is-color($uni-primary);
+		@include is-plain($uni-primary)
+	}
+	&[type=success] {
+		@include is-color($uni-success);
+		@include is-plain($uni-success)
+	}
+	&[type=error] {
+		@include is-color($uni-error);
+		@include is-plain($uni-error)
+	}
+	&[type=warning] {
+		@include is-color($uni-warning);
+		@include is-plain($uni-warning)
+	}
+	&[type=info] {
+		@include is-color($uni-info);
+		@include is-plain($uni-info)
+	}
+}
+/* #endif */

+ 24 - 0
uni_modules/uni-scss/styles/setting/_text.scss

@@ -0,0 +1,24 @@
+@mixin get-styles($k,$c) {
+	@if $k == size or $k == weight{
+		font-#{$k}:#{$c}
+	}@else{
+		#{$k}:#{$c}
+	}
+}
+
+@each $key, $child in $uni-headings {
+	/* #ifndef APP-NVUE */
+	.uni-#{$key} {
+		@each $k, $c in $child {
+			@include get-styles($k,$c)
+		}
+	}
+	/* #endif */
+	/* #ifdef APP-NVUE */
+	.container .uni-#{$key} {
+		@each $k, $c in $child {
+			@include get-styles($k,$c)
+		}
+	}
+	/* #endif */
+}

+ 146 - 0
uni_modules/uni-scss/styles/setting/_variables.scss

@@ -0,0 +1,146 @@
+// @use "sass:math";
+@import  '../tools/functions.scss';
+// 间距基础倍数
+$uni-space-root: 2 !default;
+// 边框半径默认值
+$uni-radius-root:5px !default;
+$uni-radius: () !default;
+// 边框半径断点
+$uni-radius: map-deep-merge(
+  (
+    0: 0,
+		// TODO 当前版本暂时不支持 sm 属性
+    // 'sm': math.div($uni-radius-root, 2),
+    null: $uni-radius-root,
+    'lg': $uni-radius-root * 2,
+    'xl': $uni-radius-root * 6,
+    'pill': 9999px,
+    'circle': 50%
+  ),
+  $uni-radius
+);
+// 字体家族
+$body-font-family: 'Roboto', sans-serif !default;
+// 文本
+$heading-font-family: $body-font-family !default;
+$uni-headings: () !default;
+$letterSpacing: -0.01562em;
+$uni-headings: map-deep-merge(
+  (
+    'h1': (
+      size: 32px,
+			weight: 300,
+			line-height: 50px,
+			// letter-spacing:-0.01562em
+    ),
+    'h2': (
+      size: 28px,
+      weight: 300,
+      line-height: 40px,
+      // letter-spacing: -0.00833em
+    ),
+    'h3': (
+      size: 24px,
+      weight: 400,
+      line-height: 32px,
+      // letter-spacing: normal
+    ),
+    'h4': (
+      size: 20px,
+      weight: 400,
+      line-height: 30px,
+      // letter-spacing: 0.00735em
+    ),
+    'h5': (
+      size: 16px,
+      weight: 400,
+      line-height: 24px,
+      // letter-spacing: normal
+    ),
+    'h6': (
+      size: 14px,
+      weight: 500,
+      line-height: 18px,
+      // letter-spacing: 0.0125em
+    ),
+    'subtitle': (
+      size: 12px,
+      weight: 400,
+      line-height: 20px,
+      // letter-spacing: 0.00937em
+    ),
+    'body': (
+      font-size: 14px,
+			font-weight: 400,
+			line-height: 22px,
+			// letter-spacing: 0.03125em
+    ),
+    'caption': (
+      'size': 12px,
+      'weight': 400,
+      'line-height': 20px,
+      // 'letter-spacing': 0.03333em,
+      // 'text-transform': false
+    )
+  ),
+  $uni-headings
+);
+
+
+
+// 主色
+$uni-primary: #2979ff !default;
+$uni-primary-disable:lighten($uni-primary,20%) !default;
+$uni-primary-light: lighten($uni-primary,25%) !default;
+
+// 辅助色
+// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。
+$uni-success: #18bc37 !default;
+$uni-success-disable:lighten($uni-success,20%) !default;
+$uni-success-light: lighten($uni-success,25%) !default;
+
+$uni-warning: #f3a73f !default;
+$uni-warning-disable:lighten($uni-warning,20%) !default;
+$uni-warning-light: lighten($uni-warning,25%) !default;
+
+$uni-error: #e43d33 !default;
+$uni-error-disable:lighten($uni-error,20%) !default;
+$uni-error-light: lighten($uni-error,25%) !default;
+
+$uni-info: #8f939c !default;
+$uni-info-disable:lighten($uni-info,20%) !default;
+$uni-info-light: lighten($uni-info,25%) !default;
+
+// 中性色
+// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。
+$uni-main-color: #3a3a3a !default; 			// 主要文字
+$uni-base-color: #6a6a6a !default;			// 常规文字
+$uni-secondary-color: #909399 !default;	// 次要文字
+$uni-extra-color: #c7c7c7 !default;			// 辅助说明
+
+// 边框颜色
+$uni-border-1: #F0F0F0 !default;
+$uni-border-2: #EDEDED !default;
+$uni-border-3: #DCDCDC !default;
+$uni-border-4: #B9B9B9 !default;
+
+// 常规色
+$uni-black: #000000 !default;
+$uni-white: #ffffff !default;
+$uni-transparent: rgba($color: #000000, $alpha: 0) !default;
+
+// 背景色
+$uni-bg-color: #f7f7f7 !default;
+
+/* 水平间距 */
+$uni-spacing-sm: 8px !default;
+$uni-spacing-base: 15px !default;
+$uni-spacing-lg: 30px !default;
+
+// 阴影
+$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default;
+$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default;
+$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default;
+
+// 蒙版
+$uni-mask: rgba($color: #000000, $alpha: 0.4) !default;

+ 19 - 0
uni_modules/uni-scss/styles/tools/functions.scss

@@ -0,0 +1,19 @@
+// 合并 map
+@function map-deep-merge($parent-map, $child-map){
+	$result: $parent-map;
+	@each $key, $child in $child-map {
+		$parent-has-key: map-has-key($result, $key);
+		$parent-value: map-get($result, $key);
+		$parent-type: type-of($parent-value);
+		$child-type: type-of($child);
+		$parent-is-map: $parent-type == map;
+		$child-is-map: $child-type == map;
+			
+		@if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){
+			$result: map-merge($result, ( $key: $child ));
+		}@else {
+			$result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) ));
+		}
+	}
+	@return $result;
+};

+ 31 - 0
uni_modules/uni-scss/theme.scss

@@ -0,0 +1,31 @@
+// 间距基础倍数
+$uni-space-root: 2;
+// 边框半径默认值
+$uni-radius-root:5px;
+// 主色
+$uni-primary: #2979ff;
+// 辅助色
+$uni-success: #4cd964;
+// 警告色
+$uni-warning: #f0ad4e;
+// 错误色
+$uni-error: #dd524d;
+// 描述色
+$uni-info: #909399;
+// 中性色
+$uni-main-color: #303133;
+$uni-base-color: #606266;
+$uni-secondary-color: #909399;
+$uni-extra-color: #C0C4CC;
+// 背景色
+$uni-bg-color: #f5f5f5;
+// 边框颜色
+$uni-border-1: #DCDFE6;
+$uni-border-2: #E4E7ED;
+$uni-border-3: #EBEEF5;
+$uni-border-4: #F2F6FC;
+
+// 常规色
+$uni-black: #000000;
+$uni-white: #ffffff;
+$uni-transparent: rgba($color: #000000, $alpha: 0);

+ 62 - 0
uni_modules/uni-scss/variables.scss

@@ -0,0 +1,62 @@
+@import './styles/setting/_variables.scss';
+// 间距基础倍数
+$uni-space-root: 2;
+// 边框半径默认值
+$uni-radius-root:5px;
+
+// 主色
+$uni-primary: #2979ff;
+$uni-primary-disable:mix(#fff,$uni-primary,50%);
+$uni-primary-light: mix(#fff,$uni-primary,80%);
+
+// 辅助色
+// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。
+$uni-success: #18bc37;
+$uni-success-disable:mix(#fff,$uni-success,50%);
+$uni-success-light: mix(#fff,$uni-success,80%);
+
+$uni-warning: #f3a73f;
+$uni-warning-disable:mix(#fff,$uni-warning,50%);
+$uni-warning-light: mix(#fff,$uni-warning,80%);
+
+$uni-error: #e43d33;
+$uni-error-disable:mix(#fff,$uni-error,50%);
+$uni-error-light: mix(#fff,$uni-error,80%);
+
+$uni-info: #8f939c;
+$uni-info-disable:mix(#fff,$uni-info,50%);
+$uni-info-light: mix(#fff,$uni-info,80%);
+
+// 中性色
+// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。
+$uni-main-color: #3a3a3a; 			// 主要文字
+$uni-base-color: #6a6a6a;			// 常规文字
+$uni-secondary-color: #909399;	// 次要文字
+$uni-extra-color: #c7c7c7;			// 辅助说明
+
+// 边框颜色
+$uni-border-1: #F0F0F0;
+$uni-border-2: #EDEDED;
+$uni-border-3: #DCDCDC;
+$uni-border-4: #B9B9B9;
+
+// 常规色
+$uni-black: #000000;
+$uni-white: #ffffff;
+$uni-transparent: rgba($color: #000000, $alpha: 0);
+
+// 背景色
+$uni-bg-color: #f7f7f7;
+
+/* 水平间距 */
+$uni-spacing-sm: 8px;
+$uni-spacing-base: 15px;
+$uni-spacing-lg: 30px;
+
+// 阴影
+$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5);
+$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2);
+$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5);
+
+// 蒙版
+$uni-mask: rgba($color: #000000, $alpha: 0.4);