liukang 2 سال پیش
والد
کامیت
b09cca3e8f
100فایلهای تغییر یافته به همراه1526 افزوده شده و 231 حذف شده
  1. 53 22
      components/news-module/news-module.vue
  2. 2 2
      page_index/pages/demand/perfect.vue
  3. 6 2
      page_index/pages/demand/publish.vue
  4. 23 20
      page_index/pages/index/newDetail.vue
  5. 11 1
      page_index/pages/purchase/purchase.vue
  6. 10 5
      page_index/pages/repair/repair.vue
  7. 46 4
      page_index/pages/repair/repairOrder.vue
  8. 222 0
      page_mine/pages/order/chat.vue
  9. 203 0
      page_mine/pages/order/chat2.vue
  10. 187 5
      page_mine/pages/order/repair.vue
  11. 79 99
      page_mine/pages/order/repairDetail.vue
  12. 490 0
      page_mine/pages/order/repairDetail2.vue
  13. 1 1
      page_mine/pages/service/applyMaintenance.vue
  14. 51 6
      page_mine/pages/service/demand.vue
  15. 3 3
      page_mine/pages/service/joinPerson.vue
  16. 1 1
      page_shop/pages/address/add.vue
  17. 6 3
      page_shop/pages/order/apply.vue
  18. 53 3
      page_shop/pages/order/refundDetail.vue
  19. 21 0
      pages.json
  20. 46 46
      pages/tabbar/index/index.vue
  21. 7 1
      pages/tabbar/mine/mine.vue
  22. 5 7
      static/js/api.js
  23. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  24. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  25. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/evils-el-poster/evils-el-poster.js.map
  26. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/menuList/menuList.js.map
  27. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/my-canvas/my-canvas.js.map
  28. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/my-order/my-order.js.map
  29. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/news-module/news-module.js.map
  30. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/order-top/order-top.js.map
  31. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/share-model/share-model.js.map
  32. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-avatar/u-avatar.js.map
  33. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-badge/u-badge.js.map
  34. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-checkbox-group/u-checkbox-group.js.map
  35. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-checkbox/u-checkbox.js.map
  36. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-code/u-code.js.map
  37. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-column-notice/u-column-notice.js.map
  38. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-count-down/u-count-down.js.map
  39. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-datetime-picker/u-datetime-picker.js.map
  40. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-grid-item/u-grid-item.js.map
  41. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-grid/u-grid.js.map
  42. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-icon/u-icon.js.map
  43. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-index-anchor/u-index-anchor.js.map
  44. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-index-item/u-index-item.js.map
  45. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-index-list/u-index-list.js.map
  46. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-input/u-input.js.map
  47. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-line/u-line.js.map
  48. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-link/u-link.js.map
  49. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-loading-icon/u-loading-icon.js.map
  50. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-modal/u-modal.js.map
  51. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-navbar/u-navbar.js.map
  52. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-notice-bar/u-notice-bar.js.map
  53. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-number-box/u-number-box.js.map
  54. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-overlay/u-overlay.js.map
  55. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-parse/node/node.js.map
  56. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-parse/u-parse.js.map
  57. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-picker/u-picker.js.map
  58. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-popup/u-popup.js.map
  59. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-radio-group/u-radio-group.js.map
  60. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-radio/u-radio.js.map
  61. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-read-more/u-read-more.js.map
  62. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-row-notice/u-row-notice.js.map
  63. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-safe-bottom/u-safe-bottom.js.map
  64. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-search/u-search.js.map
  65. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-status-bar/u-status-bar.js.map
  66. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-steps-item/u-steps-item.js.map
  67. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-steps/u-steps.js.map
  68. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-swipe-action-item/u-swipe-action-item.js.map
  69. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-swiper-indicator/u-swiper-indicator.js.map
  70. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-swiper/u-swiper.js.map
  71. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-switch/u-switch.js.map
  72. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-tabs/u-tabs.js.map
  73. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-text/u-text.js.map
  74. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-textarea/u-textarea.js.map
  75. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-toolbar/u-toolbar.js.map
  76. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-transition/u-transition.js.map
  77. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-upload/u-upload.js.map
  78. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/bidding/bidDetail.js.map
  79. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/bidding/bidding.js.map
  80. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/demand/collect.js.map
  81. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/demand/delivery.js.map
  82. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/demand/demand.js.map
  83. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/demand/perfect.js.map
  84. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/demand/publish.js.map
  85. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/demand/recruitDetail.js.map
  86. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/demand/wantedDetail.js.map
  87. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/index/changeCity.js.map
  88. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/index/newDetail.js.map
  89. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/index/noticeDetail.js.map
  90. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/index/noticeList.js.map
  91. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/index/search.js.map
  92. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/index/weather.js.map
  93. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/purchase/orderDetail.js.map
  94. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/purchase/purchase.js.map
  95. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/purchase/receivingDetail.js.map
  96. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/purchase/release.js.map
  97. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/repair/orderDetail.js.map
  98. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/repair/receivingOrder.js.map
  99. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/repair/repair.js.map
  100. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/repair/repairDetail.js.map

+ 53 - 22
components/news-module/news-module.vue

@@ -1,34 +1,53 @@
 <template>
 	<view class="news_module vflex">
 		<block v-for="(item,index) in pageList" :key="index">
-			<view class="news_box" @click="toDetail(item.id)">
+			<view class="news_box">
 				<view class="news_title">
-					{{item.title}}
+					{{item.ad.title}}
 				</view>
-				<view class="hflex acenter user" v-if="item.user">
-					<view class="avatar_box">
-						<image :src="item.user.avatar" mode="aspectFill" class="avatar"></image>
-					</view>
-					<view class="user_text">{{item.user.name}}</view>
-					<view v-if="item.user.is_blueV" class="blue_v">
-						V
-					</view>
-				</view>
-				<view v-if="item.imgs.length > 0" class="imgList hflex acenter jbetween">
-					<block v-for="(item2,index2) in item.imgs" :key="index2">
-						<image :src="item2" mode="aspectFill" class="img" @tap.stop="priveImg(index,index2)"></image>
-					</block>
-					
-				</view>
-				<view v-if="item.video" class="imgList">
-					<video :src="item.video" controls></video>
+				<view v-if="item.ad.images !== ''" class="imgList hflex acenter jbetween">
+					<image :src="item.ad.images" mode="aspectFill" class="img2"></image>
 				</view>
 				<view class="hflex acenter bottom">
-					<view class="bottom_text">{{item.type}}</view>
-					<view class="bottom_text2">{{item.client}}</view>
-					<view class="bottom_text2">{{item.comment}}评论</view>
+					<view class="bottom_text3">广告</view>
+					<view class="bottom_text2" v-if="item.ad.source">{{item.ad.source}}</view>
 				</view>
 			</view>
+			<view class="" >
+				<block v-for="(item1,index1) in item.xw" :key="index1">
+					<view class="news_box" @click="toDetail(item1.id)">
+						<view class="news_title">
+							{{item1.title}}
+						</view>
+						<!-- <view class="hflex acenter user" v-if="item2.user">
+							<view class="avatar_box">
+								<image :src="item.user.avatar" mode="aspectFill" class="avatar"></image>
+							</view>
+							<view class="user_text">{{item.user.name}}</view>
+							<view v-if="item.user.is_blueV" class="blue_v">
+								V
+							</view>
+						</view> -->
+						<view v-if="item1.images.length > 2" class="imgList hflex acenter jbetween">
+							<block v-for="(item2,index2) in item1.images" :key="index2">
+								<image :src="item2" mode="aspectFill" class="img" @tap.stop="priveImg(index,index2)"></image>
+							</block>
+						</view>
+						<view v-if="item1.images.length == 1 && !item1.has_img" class="imgList hflex acenter jcenter">
+							<image :src="item1.images" mode="aspectFill" class="img2"></image>
+						</view>
+						<!-- <view v-if="item.video" class="imgList">
+							<video :src="item.video" controls></video>
+						</view> -->
+						<view class="hflex acenter bottom">
+							<view class="bottom_text">{{item1.category.name}}</view>
+							<view class="bottom_text2">{{item1.source}}</view>
+							<view class="bottom_text2" v-if="item1.comments_count > 0">{{item1.comments_count}}评论</view>
+						</view>
+					</view>
+				</block>
+				
+			</view>
 		</block>
 		
 	</view>
@@ -80,6 +99,7 @@
 			font-size: 36rpx;
 			color: #333;
 			line-height: 50rpx;
+			padding: 20rpx 0;
 		}
 		.user {
 			padding: 14rpx 0 0;
@@ -118,6 +138,11 @@
 				border-radius: 8rpx 0px 0px 8rpx;
 				margin: 0 12rpx 20rpx 0;
 			}
+			.img2 {
+				width: 100%;
+				height: 360rpx;
+				border-radius: 16px;
+			}
 		}
 		.bottom {
 			
@@ -130,6 +155,12 @@
 				font-size: 24rpx;
 				margin-left: 20rpx;
 			}
+			.bottom_text3 {
+				font-size: 24rpx;
+				font-weight: 400;
+				color: #EB0000;
+				line-height: 34rpx;
+			}
 		}
 	}
 	

+ 2 - 2
page_index/pages/demand/perfect.vue

@@ -21,7 +21,7 @@
 				<view class="cell">
 					<view class="label">出生年月</view>
 					<view @click="open('birthday')">
-						<u-input v-model="base_info.date_birth" border="none" placeholder="请选择你的出生年月" suffixIcon="arrow-right"></u-input>
+						<u-input v-model="base_info.date_birth" disabled disabledColor="#fff" border="none" placeholder="请选择你的出生年月" suffixIcon="arrow-right"></u-input>
 					</view>
 					<u-datetime-picker :minDate="minDate" title="生日" :show="birthday_show" v-model="newDate" ref="datetimePicker" @confirm="confirmAge" @cancel="cancel" :formatter="formatter" mode="date"></u-datetime-picker>
 				</view>
@@ -60,7 +60,7 @@
 				<view class="cell">
 					<view class="label">期望薪资</view>
 					<view @click="open('salary')">
-						<u-input v-model="job_inte.salary" border="none" placeholder="请选择期望薪资" suffixIcon="arrow-right"></u-input>
+						<u-input v-model="job_inte.salary" disabled disabledColor="#fff" border="none" placeholder="请选择期望薪资" suffixIcon="arrow-right"></u-input>
 					</view>
 					<u-picker :show="salary_show" title="期望薪资" ref="uPicker" :columns="salaryList" @confirm="confirmSalary" @cancel="cancel"></u-picker>
 				</view>

+ 6 - 2
page_index/pages/demand/publish.vue

@@ -294,8 +294,12 @@
 						that.experience = res.data.workexperience
 						that.skills = res.data.professionalskills
 						that.certificate = res.data.certificate
-						that.salary = res.data.welfare_benefits
-						that.remarks = res.data.remark 
+						if(res.data.welfare_benefits) {
+							that.salary = res.data.welfare_benefits
+						} 
+						if(res.data.remark) {
+							that.remarks = res.data.remark
+						}
 					}
 				})
 			},

+ 23 - 20
page_index/pages/index/newDetail.vue

@@ -3,15 +3,15 @@
 		<view class="tile">{{pageData.title}}</view>
 		<view class="hflex acenter " style="box-sizing: border-box;padding: 0 30rpx;">
 			<view class="img_box">
-				<image :src="pageData.src" mode="aspectFill" class="avatar"></image>
+				<image :src="pageData.user.avatar" mode="aspectFill" class="avatar"></image>
 				<view class="type">V</view>
 			</view>
-			<view class="text_style1">{{pageData.name}}</view>
+			<view class="text_style1">{{pageData.user.username}}</view>
 		</view>
-		<image :src="pageData.img" class="img" v-if="pageData.image"></image>
+		<!-- <image :src="pageData.img" class="img" v-if="pageData.image"></image> -->
 		<u-parse :content="pageData.content" style="box-sizing: border-box;padding: 0 30rpx;"></u-parse>
-		<video :src="pageData.video" play-btn-position="center" class="video" v-if="pageData.video"></video>
-		<view class="date">发布于{{pageData.date}}</view>
+		<!-- <video :src="pageData.video" play-btn-position="center" class="video" v-if="pageData.video"></video> -->
+		<view class="date">发布于{{pageData.create_time}}</view>
 		<view class="comment">
 			<view class="comment_title">评论{{pageData.comment.num?pageData.comment.num:''}}</view>
 			<view v-if="pageData.comment.length == 0" class="hflex acenter jcenter comment_none">暂无评论</view>
@@ -50,28 +50,31 @@
 		data() {
 			return {
 				pageData: {
-					title: '在高质量发展中扎实推动共同富裕!',
-					src: '/static/images/mine/avatar1.jpg',
-					name: '船百知官方账号',
-					content: `洗脸,是我们日常生活中每天都要进行的活动。俗话说得好:勤梳头,勤洗脸,有点儿倒霉也不显。光洁的脸庞不仅透露出积极向上的精神面貌。也是外在美最直接的表现形式。网络疯传的洗脸教育帖转发率之高,书店里出售的洗脸书销量之大,都反映出人们对于洗脸的重`,
-					date: '2021年09月05日',
-					video: '',
-					img: '',
-					code: '',
-					comment: [],
-					is_dz: false,
-					dzNum: 12
 				},
-				comment:''
+				name: '船百知官方账号',
+				comment:'',
+				id: '',
 			}
 		},
-		onLoad() {
+		onLoad(options) {
 			that = this
-			
+			that.id = options.id
+			that.getData()
 		},
 		
 		methods: {
-			
+			getData() {
+				$api.req({
+					url: '/data/api.Xw/show',
+					data: {
+						id: that.id
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						that.pageData = res.data
+					}
+				})
+			}
 			
 		},
 	}

+ 11 - 1
page_index/pages/purchase/purchase.vue

@@ -79,7 +79,7 @@
 	export default {
 		data() {
 			return {
-				nav_index: 2,
+				nav_index: 1,
 				tabs: [
 					{
 						index: 0,
@@ -195,6 +195,7 @@
 		},
 		onLoad() {
 			that = this
+			that.getList()
 		},
 		methods: {
 			// 返回
@@ -202,6 +203,15 @@
 				console.log('返回');
 				$api.jump(-1)
 			},
+			getList() {
+				$api.req({
+					url: '/data/api.auth.Offer/purchase_order'
+				}, function(res) {
+					if(res.code == 1) {
+						that.pageList = res.data
+					}
+				})
+			},
 			// 切换导航栏
 			changeNav(index) {
 				if (index == 1) {

+ 10 - 5
page_index/pages/repair/repair.vue

@@ -235,7 +235,7 @@
 				serach_value: '',
 				pageList2: [
 				],
-				is_maintenance: true,
+				maintenance: false,
 				show_tips: false,
 				show_offer: false,
 				offer: '',
@@ -246,7 +246,7 @@
 		},
 		onLoad() {
 			that = this
-			
+			that.maintenance = uni.getStorageSync('maintenance')
 		},
 		onShow() {
 			that.getchatList()
@@ -353,8 +353,7 @@
 			},
 			// 发布接单需求
 			receivingOrder() {
-				console.log(that.is_maintenance);
-				if(that.is_maintenance) {
+				if(that.maintenance) {
 					$api.jump('/page_index/pages/repair/receivingOrder')
 					that.close()
 				} else {
@@ -374,7 +373,13 @@
 			},
 			// 接单
 			meetOrder(id) {
-				that.show_tips = true
+				if(that.maintenance) {
+					that.show_offer = true
+					that.id = id
+				} else {
+					that.show_tips = true
+				}
+				// that.show_tips = true
 				that.show_offer = true
 				that.id = id
 			},

+ 46 - 4
page_index/pages/repair/repairOrder.vue

@@ -13,12 +13,12 @@
 				<view class="label required">维修时间</view>
 				<view class="hflex acenter jbetween">
 					<view @click="open(1)">
-						<u-input v-model="startTime" border="none" placeholder="开始时间"></u-input>
+						<u-input v-model="startTime" disabled disabledColor="#fff" border="none" placeholder="开始时间"></u-input>
 					</view>
-					<u-datetime-picker title="开始时间" :show="show_time1" :minDate="newDate" v-model="newDate" ref="datetimePicker" @confirm="confirmTime1" @cancel="cancel" :formatter="formatter" mode="date"></u-datetime-picker>
+					<u-datetime-picker title="开始时间" dis :show="show_time1" :minDate="newDate" v-model="newDate" ref="datetimePicker" @confirm="confirmTime1" @cancel="cancel" :formatter="formatter" mode="date"></u-datetime-picker>
 					<view style="margin: 0 20rpx;">-</view>
 					<view @click="open(2)">
-						<u-input v-model="endTime" border="none" placeholder="结束时间"></u-input>
+						<u-input v-model="endTime"  disabled disabledColor="#fff" border="none" placeholder="结束时间"></u-input>
 					</view>
 					<u-datetime-picker title="结束时间" :show="show_time2" :minDate="newDate" v-model="newDate" ref="datetimePicker" @confirm="confirmTime2" @cancel="cancel" :formatter="formatter" mode="date"></u-datetime-picker>
 				</view>
@@ -68,14 +68,45 @@
 				addressObj: {},
 			}
 		},
-		onLoad() {
+		onLoad(options) {
 			that = this
+			var data = JSON.parse(options.data)
+			that.getData(data)
+			console.log(data);
 		},
 		onReady() {
 			// 微信小程序需要用此写法
 			this.$refs.datetimePicker.setFormatter(this.formatter)
 		},
 		methods: {
+			getData(data) {
+				that.id = data.id
+				var imgs = data.imgs
+				let obj = {}
+				for(let key in imgs) {
+					obj[key] = imgs[key]
+				}
+				var fileList1 = Object.keys(obj).map(item => ({
+					url: obj[item]
+				}))
+				that.fileList1 = fileList1
+				that.imgs = data.imgs
+				that.fault = data.describe
+				if(data.quick == 1) {
+					that.is_quick = false
+				} else {
+					that.is_quick = true
+				}
+				that.startTime = data.start_time
+				that.endTime = data.end_time
+				that.address = data.address
+				that.addressObj = {
+					address: data.address,
+					province: data.province,
+					city:data.city,
+					area:data.area,
+				}
+			},
 			selectmap() {
 				uni.getLocation({
 					type: 'wgs84',
@@ -162,6 +193,16 @@
 			// 删除图片
 			deletePic(event) {
 				this[`fileList${event.name}`].splice(event.index, 1)
+				that.imgs = ''
+				if(that[`fileList${event.name}`].length > 0) {
+					for(var i=0;i<that[`fileList${event.name}`].length;i++) {
+						if(i == that[`fileList${event.name}`].length -1) {
+							that.imgs += that[`fileList${event.name}`][i].url
+						} else {
+							that.imgs += that[`fileList${event.name}`][i].url + ','
+						}
+					}
+				}
 			},
 			// 新增图片
 			async afterRead(event) {
@@ -184,6 +225,7 @@
 					}))
 					fileListLen++
 				}
+				that.imgs = ''
 				if(that[`fileList${event.name}`].length > 0) {
 					for(var i=0;i<that[`fileList${event.name}`].length;i++) {
 						if(i == that[`fileList${event.name}`].length -1) {

+ 222 - 0
page_mine/pages/order/chat.vue

@@ -0,0 +1,222 @@
+<template>
+	<view class="content">
+		<view class="top">
+			<view class="top_title">当前报价</view>
+			<view class="vflex">
+				<block v-for="(item,index) in offer.list" :key="index">
+					<view class="top_item hflex acenter">
+						<view class="item_label">第{{index + 1}}次报价</view>
+						<view class="text_red">{{item.price}}</view>
+					</view>
+				</block>
+			</view>
+			<view class="top_title">图片及资质证明图片</view>
+			<block v-for="(item,index) in offer.imgs" :key="index">
+				<view class="hflex acenter">
+					<image :src="item" class="img"></image>
+				</view>
+			</block>
+		</view>
+		<view class="list" id="list">
+			<block v-for="(item,index) in offer.messagelist" :key="index">
+				<view class="hflex acenter jend item" v-if="item.user.id == userId">
+					<view class="message">{{item.content}}</view>
+					<image :src="item.user.headimg" class="headimg"></image>
+				</view>
+				<view class="hflex acenter item" v-else>
+					<image :src="item.user.headimg" class="headimg"></image>
+					<view class="message message_left">{{item.content}}</view>
+				</view>
+			</block>
+		</view>
+		<view class="bottom hflex jbetween">
+			<view class="bottom_left">
+				<u-input v-model="message" shape="circle" placeholder="请输入信息..." border="none"></u-input>
+			</view>
+			<view class="bottom_btn hflex acenter jcenter" @click="send">立即回复</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import $api from '@/static/js/api.js'
+	var that = ''
+	export default {
+		data() {
+			return {
+				offer: {},
+				message: '',
+				pageList: [],
+				type: '',
+				id: '',
+				offer_id: '',
+				userId: ''
+			}
+		},
+		onLoad(options) {
+			that = this
+			that.type = options.type
+			that.id = options.id
+			that.offer_id = options.offer_id
+			that.userId = uni.getStorageSync('id')
+			that.getOffer()
+			that.scrollToBottom()
+		},
+		methods: {
+			getOffer() {
+				$api.req({
+					url: '/data/api.auth.Center/userofferinfo',
+					method: 'POST',
+					data: {
+						id: that.id,
+						offer_id: that.offer_id
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						that.offer = res.data
+					}
+				})
+			},
+			send() {
+				if(that.message == "") {
+					$api.info('不能发送空的内容')
+				} else {
+					$api.req({
+						url: '/data/api.auth.Center/subleavemessage',
+						method: 'POST',
+						data: {
+							id: that.id,
+							offer_id: that.offer_id,
+							content: that.message
+						}
+					}, function(res) {
+						if(res.code == 1) {
+							that.message = ""
+							that.getOffer()
+						} 
+					})
+				}
+			},
+			scrollToBottom() {
+				uni.createSelectorQuery().select('#list').boundingClientRect(function(rect){
+				  // 使页面滚动到底部
+				  console.log("页面的高度",rect)
+				  uni.pageScrollTo({
+					scrollTop: rect.bottom
+				  })
+				}).exec()
+			}
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.content::v-deep {
+		background: #F4F4F4;
+		.top {
+			width: 100%;
+			// height: 300px;
+			background: #FFFFFF;
+			box-shadow: 0px 4rpx 32rpx 0px rgba(0,0,0,0.04);
+			border-radius: 0px 0px 28rpx 28rpx;
+			box-sizing: border-box;
+			padding: 24rpx 30rpx 0;
+			.top_title {
+				font-size: 28rpx;
+				font-weight: 500;
+				color: #222222;
+				line-height: 40rpx;
+				padding-bottom: 24rpx;
+			}
+			.top_item {
+				width: 100%;
+				height: 76rpx;
+				background: #F4F4F4;
+				border-radius: 16rpx;
+				margin-bottom: 20rpx;
+				box-sizing: border-box;
+				padding: 0 20rpx;
+				.item_label {
+					font-size: 24rpx;
+					font-weight: 500;
+					color: #777777;
+					line-height: 34rpx;
+					padding-right: 28rpx;
+				}
+				.text_red {
+					font-size: 28rpx;
+					font-weight: 400;
+					color: #FF3636;
+					line-height: 34rpx;
+				}
+			}
+			.img {
+				width: 220rpx;
+				height: 220rpx;
+				border-radius: 16rpx;
+				margin: 0 16rpx 24rpx 0;
+			}
+			.img:nth-child(3n+3) {
+				margin: 0 0 24rpx;
+			}
+		}
+		.list {
+			width: 100%;
+			margin-bottom: 186rpx;
+			box-sizing: border-box;
+			padding: 0 30rpx;
+			.item {
+				margin-top: 32rpx;
+				.message {
+					max-width: 480rpx;
+					background: #FFFFFF;
+					border-radius: 4rpx 24rpx 24rpx 24rpx;
+					box-sizing: border-box;
+					padding: 18rpx 20rpx;
+					font-size: 26rpx;
+					font-weight: 400;
+					color: #444444;
+					line-height: 36rpx;
+					margin: 0 20rpx 0 0;
+				}
+				.message_left {
+					margin: 0 0 0 20rpx;
+					border-radius: 24rpx 4rpx 24rpx 24rpx;
+				}
+				.headimg {
+					width: 68rpx;
+					height: 68rpx;
+					border-radius: 50%;
+				}
+			}
+		}
+		.bottom {
+			width: 100%;
+			height: 166rpx;
+			position: fixed;
+			bottom: 0;
+			z-index: 999;
+			box-sizing: border-box;
+			padding: 16rpx 30rpx 0;
+			background: #FFFFFF;
+			.bottom_left {
+				width: 490rpx;
+				height: 72rpx;
+				.u-input {
+					height: 100%;
+					background: #F4F4F4;
+					padding: 0 32rpx !important;
+				}
+			}
+			.bottom_btn {
+				width: 180rpx;
+				height: 72rpx;
+				background: #506DFF;
+				border-radius: 36rpx;
+				font-size: 28rpx;
+				font-weight: 500;
+				color: #FFFFFF;
+			}
+		}
+	}
+</style>

+ 203 - 0
page_mine/pages/order/chat2.vue

@@ -0,0 +1,203 @@
+<template>
+	<view class="content">
+		<view class="list" id="list">
+			<block v-for="(item,index) in pageList" :key="index">
+				<view class="hflex acenter jend item" v-if="item.user.id == userId">
+					<view class="message">{{item.content}}</view>
+					<image :src="item.user.headimg" class="headimg"></image>
+				</view>
+				<view class="hflex acenter item" v-else>
+					<image :src="item.user.headimg" class="headimg"></image>
+					<view class="message message_left">{{item.content}}</view>
+				</view>
+			</block>
+		</view>
+		<view class="bottom hflex jbetween">
+			<view class="bottom_left">
+				<u-input v-model="message" shape="circle" placeholder="请输入信息..." border="none"></u-input>
+			</view>
+			<view class="bottom_btn hflex acenter jcenter" @click="send">立即回复</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import $api from '@/static/js/api.js'
+	var that = ''
+	export default {
+		data() {
+			return {
+				offer: {},
+				message: '',
+				pageList: [],
+				type: '',
+				id: '',
+				offer_id: '',
+				userId: ''
+			}
+		},
+		onLoad(options) {
+			that = this
+			that.id = options.id
+			that.userId = uni.getStorageSync('id')
+			that.getList()
+		},
+		methods: {
+			getList() {
+				$api.req({
+					url: '/data/api.auth.Center/suboffermessagelist',
+					method: 'POST',
+					data: {
+						id: that.id,
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						that.pageList = res.data
+						setTimeout(() => {
+							that.scrollToBottom()
+						},300)
+					}
+				})
+			},
+			send() {
+				if(that.message == "") {
+					$api.info('不能发送空的内容')
+				} else {
+					$api.req({
+						url: '/data/api.auth.Center/subofferleavemessage',
+						method: 'POST',
+						data: {
+							id: that.id,
+							content: that.message
+						}
+					}, function(res) {
+						if(res.code == 1) {
+							that.message = ""
+							that.getList()
+						} 
+					})
+				}
+			},
+			scrollToBottom() {
+				uni.createSelectorQuery().select('#list').boundingClientRect(function(rect){
+				  // 使页面滚动到底部
+				  console.log("页面的高度",rect)
+				  uni.pageScrollTo({
+					scrollTop: rect.bottom
+				  })
+				}).exec()
+			}
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.content::v-deep {
+		background: #F4F4F4;
+		.top {
+			width: 100%;
+			// height: 300px;
+			background: #FFFFFF;
+			box-shadow: 0px 4rpx 32rpx 0px rgba(0,0,0,0.04);
+			border-radius: 0px 0px 28rpx 28rpx;
+			box-sizing: border-box;
+			padding: 24rpx 30rpx 0;
+			.top_title {
+				font-size: 28rpx;
+				font-weight: 500;
+				color: #222222;
+				line-height: 40rpx;
+				padding-bottom: 24rpx;
+			}
+			.top_item {
+				width: 100%;
+				height: 76rpx;
+				background: #F4F4F4;
+				border-radius: 16rpx;
+				margin-bottom: 20rpx;
+				box-sizing: border-box;
+				padding: 0 20rpx;
+				.item_label {
+					font-size: 24rpx;
+					font-weight: 500;
+					color: #777777;
+					line-height: 34rpx;
+					padding-right: 28rpx;
+				}
+				.text_red {
+					font-size: 28rpx;
+					font-weight: 400;
+					color: #FF3636;
+					line-height: 34rpx;
+				}
+			}
+			.img {
+				width: 220rpx;
+				height: 220rpx;
+				border-radius: 16rpx;
+				margin: 0 16rpx 24rpx 0;
+			}
+			.img:nth-child(3n+3) {
+				margin: 0 0 24rpx;
+			}
+		}
+		.list {
+			width: 100%;
+			margin-bottom: 186rpx;
+			box-sizing: border-box;
+			padding: 0 30rpx;
+			.item {
+				margin-top: 32rpx;
+				.message {
+					max-width: 480rpx;
+					background: #FFFFFF;
+					border-radius: 24rpx 4rpx 24rpx 24rpx;
+					box-sizing: border-box;
+					padding: 18rpx 20rpx;
+					font-size: 26rpx;
+					font-weight: 400;
+					color: #444444;
+					line-height: 36rpx;
+					margin: 0 20rpx 0 0;
+				}
+				.message_left {
+					margin: 0 0 0 20rpx;
+					border-radius: 4rpx 24rpx 24rpx 24rpx;
+				}
+				.headimg {
+					width: 68rpx;
+					height: 68rpx;
+					border-radius: 50%;
+				}
+			}
+		}
+		.bottom {
+			width: 100%;
+			height: 166rpx;
+			position: fixed;
+			bottom: 0;
+			z-index: 999;
+			box-sizing: border-box;
+			padding: 16rpx 30rpx 0;
+			background: #FFFFFF;
+			.bottom_left {
+				width: 490rpx;
+				height: 72rpx;
+				.u-input {
+					height: 100%;
+					background: #F4F4F4;
+					padding: 0 32rpx !important;
+				}
+			}
+			.bottom_btn {
+				width: 180rpx;
+				height: 72rpx;
+				background: #506DFF;
+				border-radius: 36rpx;
+				font-size: 28rpx;
+				font-weight: 500;
+				color: #FFFFFF;
+			}
+		}
+	}
+</style>

+ 187 - 5
page_mine/pages/order/repair.vue

@@ -10,8 +10,57 @@
 					<view class="tabs_item" :class="active == index + 1? 'active': ''" @click="changeTabs(index + 1)">{{item.text}}</view>
 				</block>
 			</view>
-			<view class="box">
-				<my-order @toDetail="toDetail" :active1="active" :list="pageList" order_type="5" @toEdit="toEdit"></my-order>
+			<view class="box_list" v-if="active1 == 1">
+				<block v-for="(item,index) in pageList" :key="index">
+					<view class="box_item">
+						<view class="box_top hflex acenter jbetween" @click="toDetail(item.order_no)">
+							<view class="order_no">订单号:{{item.order_no}}</view>
+							<view class="type" v-if="item.status == 1">未报价</view>
+							<view class="type1" v-if="item.status == 2">已报价</view>
+							<view class="type1" v-if="item.status == 3">已匹配</view>
+						</view>
+						<view class="box">
+							<view class="text_style1" >
+								<span class="urgent1" v-if="item.quick == '2'">快修</span>
+								<span class="urgent" v-else>普修</span>
+								{{item.describe}}
+							</view>
+							<view class="box_cell text_style2">维修时间:{{item.start_time}}~{{item.end_time}}</view>
+							<view class="box_cell text_style2">维修地点:{{item.address}}</view>
+						</view>
+						<view class="bottom1 hflex jend">
+							<view class="btn1" v-if="item.status !== 3" @click="deleteId(item.id)">删除</view>
+							<view class="btn1" v-if="item.status !== 3" @click="toEdit(item)">编辑</view>
+							<view class="btn1" @click="toDetail(item.id,active1)">查看详情</view>
+						</view>
+					</view>
+				</block>
+				<!-- <my-order @toDetail="toDetail" :active1="active" :list="pageList" order_type="5" @toEdit="toEdit"></my-order> -->
+			</view>
+			<view class="box_list" v-if="active1 == 2">
+				<block v-for="(item,index) in pageList" :key="index">
+					<view class="box_item">
+						<view class="box_top hflex acenter jbetween" @click="toDetail(item.repair.order_no)">
+							<view class="order_no">订单号:{{item.repair.order_no}}</view>
+							<view class="type" v-if="item.repair.status == 1">未报价</view>
+							<view class="type1" v-if="item.repair.status == 2">已报价</view>
+							<view class="type1" v-if="item.repair.status == 3">已匹配</view>
+						</view>
+						<view class="box">
+							<view class="text_style1" >
+								<span class="urgent1" v-if="item.repair.quick == '2'">快修</span>
+								<span class="urgent" v-else>普修</span>
+								{{item.repair.describe}}
+							</view>
+							<view class="box_cell text_style2">维修时间:{{item.repair.start_time}}~{{item.repair.end_time}}</view>
+							<view class="box_cell text_style2">维修地点:{{item.repair.address}}</view>
+						</view>
+						<view class="bottom1 hflex jend">
+							<view class="btn1" @click="toDetail2(item.id,active1)">查看详情</view>
+						</view>
+					</view>
+				</block>
+				<!-- <my-order @toDetail="toDetail" :active1="active" :list="pageList" order_type="5" @toEdit="toEdit"></my-order> -->
 			</view>
 			<view class="add vflex acenter jcenter" v-show="active1 == 1" @click="toPublish">
 				<u-icon name="plus" color='#fff' size="16"></u-icon>
@@ -52,6 +101,8 @@
 		},
 		onLoad() {
 			that = this
+		},
+		onShow() {
 			that.getList()
 		},
 		methods: {
@@ -91,15 +142,32 @@
 				that.pageList = []
 				that.getList()
 			},
-			toDetail(e) {
+			toDetail(e,type) {
 				console.log(e);
 				$api.jump('/page_mine/pages/order/repairDetail?id=' + e + '&type=' + that.active1)
 			},
+			toDetail2(e,type) {
+				$api.jump('/page_mine/pages/order/repairDetail2?id=' + e + '&type=' + that.active1)
+			},
 			toPublish() {
 				$api.jump('/page_index/pages/repair/repairOrder')
 			},
 			toEdit(e) {
-				$api.jump('/page_index/pages/repair/repairOrder?data=' + e)
+				$api.jump('/page_index/pages/repair/repairOrder?data=' + JSON.stringify(e))
+			},
+			deleteId(id) {
+				$api.req({
+					url: '/data/api.auth.Center/repairdel',
+					method: 'POST',
+					data: {
+						id: id
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						$api.info(res.info)
+						that.getList()
+					}
+				})
 			}
 		},
 	}
@@ -161,8 +229,122 @@
 			}
 			
 		}
-		.box {
+		.box_list {
+			
 			padding: 0 30rpx;
+			
+			.box_item {
+				margin: 20rpx 0 0;
+				width: 100%;
+				box-sizing: border-box;
+				padding: 26rpx 20rpx;
+				margin-top: 20rpx;
+				border-radius: 20rpx;
+				background-color: #fff;
+			}
+			.box_top {
+				padding-bottom: 24rpx;
+				width: 100%;
+				.order_no {
+					font-size: 24rpx;
+					color: #444;
+				}
+				.type {
+					width: 96rpx;
+					height: 40rpx;
+					background-color: #fff4e8;
+					border-radius: 4rpx;
+					font-size: 22rpx;
+					color: #fba94e;
+					text-align: center;
+					line-height: 40rpx;
+				}
+				.type1 {
+					width: 96rpx;
+					height: 40rpx;
+					background-color: #e7ebf7;
+					border-radius: 4rpx;
+					font-size: 22rpx;
+					color: #506dff;
+					text-align: center;
+					line-height: 40rpx;
+				}
+			}
+			.box {
+				width: 100%;
+				padding-top: 14rpx;
+				border-top: 1rpx solid #f4f4f4;
+				.text_style1 {
+					font-size: 28rpx;
+					color: #222;
+					line-height: 40rpx;
+					display: inline-block;
+				}
+				.urgent1 {
+					width: 72rpx;
+					height: 32rpx;
+					background-color: #ff762C;
+					border-radius: 4rpx;
+					color: #fff;
+					font-size: 24rpx;
+					text-align: center;
+					line-height: 32rpx;
+					display: inline-block;
+					margin-right: 8rpx;
+				}
+				.urgent {
+					width: 72rpx;
+					height: 32rpx;
+					background-color: #5571ff;
+					border-radius: 4rpx;
+					color: #fff;
+					font-size: 24rpx;
+					text-align: center;
+					line-height: 32rpx;
+					display: inline-block;
+					margin-right: 8rpx;
+				}
+				.box_norm {
+					width: auto;
+					background-color: #f4f4f4;
+					border-radius: 8rpx;
+					box-sizing: border-box;
+					padding: 6rpx 20rpx;
+					margin: 16rpx 0 24rpx;
+				}
+				.box_cell {
+					margin: 16rpx 0 24rpx;
+				}
+				.text_style2 {
+					font-size: 24rpx;
+					color: #888;
+					padding-right: 20rpx;
+				}
+				.text {
+					width: 100%;
+					padding-bottom: 20rpx;
+					font-size: 26rpx;
+					color: #888;
+					line-height: 36rpx;
+				}
+			}
+			.bottom1 {
+				width: 100%;
+				padding-top: 20rpx;
+				border-top: 1rpx solid #f4f4f4;
+			}
+			.btn1 {
+				width: 152rpx;
+				height: 52rpx;
+				// background-color: #eaf4ff;
+				border-radius: 28rpx;
+				border: 1rpx solid #e5e5e5;
+				font-size: 26rpx;
+				color: #2f2f2f;
+				text-align: center;
+				line-height: 52rpx;
+				margin-left: 24rpx;
+			}
 		}
 		.add {
 			width: 96rpx;

+ 79 - 99
page_mine/pages/order/repairDetail.vue

@@ -2,69 +2,74 @@
 	<view class="content">
 		<view class="top">
 			<u-navbar :title="title" @leftClick="leftClick" bgColor="rgba(0,0,0,0)" :placeholder="true"></u-navbar>
-			<view class="state">{{state}}</view>
-			<view class="top_box" v-if="state_id == '2'">
-				<view class="hflex acenter ">
-					<image :src="worker.headimg" class="headimg"></image>
-					<view class="img_right">
-						<view class="hflex acenter ">
-							<view class="name">{{worker.name}}</view>
-							<view class="blue_bg">维修工</view>
-						</view>
-						<view class="hflex acenter ">
-							<view class="text_style1">{{worker.is_renz?'已认证':'未认证'}}</view>
-							<view class="text_style1">| {{worker.wxc}}</view>
+			<view class="state" v-if="pageData.status == 1">暂未收到报价,请耐心等待</view>
+			<view class="state" v-if="pageData.status == 2">收到报价,请尽快确认</view>
+			<view class="state" v-if="pageData.status == 3">已匹配成功</view>
+			<view class="top_box" v-if="pageData.status == 3">
+				<view class="hflex jbetween">
+					<view class="hflex acenter">
+						<image :src="pageData.success.headimg" class="headimg"></image>
+						<view class="img_right">
+							<view class="hflex acenter ">
+								<view class="name">{{pageData.success.nickname}}</view>
+								<view class="blue_bg">维修工</view>
+							</view>
+							<view class="hflex acenter ">
+								<view class="text_style1">已认证</view>
+								<!-- <view class="text_style1">| {{worker.wxc}}</view> -->
+							</view>
 						</view>
 					</view>
+					<view class="text_red">报价:<span style="font-size: 36rpx;">¥{{pageData.success_price}}</span></view>
 				</view>
 				<view class="hflex acenter jbetween" style="padding-top: 32rpx;">
 					<view class="hflex acenter">
 						<view class="text_style1">联系电话:</view>
-						<view class="text_style1">{{worker.phone}}</view>
-						<view class="phone hflex acenter jcenter">
+						<view class="text_style1">{{pageData.success.phone}}</view>
+						<view class="phone hflex acenter jcenter" @click.stop="makeCell(pageData.success.phone)">
 							<u-icon name="phone-fill" color="#506DFF" size="9"></u-icon>
 						</view>
 					</view>
-					<view class="btn hflex acenter jcenter">查看详情</view>
+					<view class="btn hflex acenter jcenter" @click.stop="toChat(pageData.success.id)">查看详情</view>
 				</view>
 			</view>
 		</view>
 		<view class="box">
 			<view class="hflex acenter" style="padding-top: 28rpx;">
-				<image :src="boss.headimg" class="headimg"></image>
+				<image :src="pageData.user.headimg" class="headimg"></image>
 				<view class="img_right">
 					<view class="hflex acenter ">
-						<view class="name">{{boss.name}}</view>
+						<view class="name">{{pageData.user.nickname}}</view>
 					</view>
 					<view class="hflex acenter ">
-						<view class="text_style1">{{boss.addr}}</view>
-						<view class="text_style1">| {{boss.date}}发布</view>
+						<view class="text_style1">{{pageData.province}}{{pageData.city}}</view>
+						<view class="text_style1">| {{pageData.create_at}}发布</view>
 					</view>
 				</view>
 			</view>
-			<view class="box_contetn">{{boss.content}}</view>
+			<view class="box_contetn">{{pageData.describe}}</view>
 			<view class="imgs hflex acenter fwrap">
-				<block v-for="(item,index) in boss.imgs" :key="index">
+				<block v-for="(item,index) in pageData.imgs" :key="index">
 					<image :src="item" class="img" mode="aspectFill"></image>
 				</block>
 			</view>
 			<view class="hflex acenter jbetween cell">
 				<view class="left_text">联系方式</view>
-				<view class="right_text">{{boss.phone}}</view>
+				<view class="right_text">{{pageData.user.phone}}</view>
 			</view>
 			<view class="hflex acenter jbetween cell">
 				<view class="left_text">维修时间</view>
-				<view class="right_text">{{boss.time}}</view>
+				<view class="right_text">{{pageData.start_time}}至{{pageData.end_time}}</view>
 			</view>
 			<view class="hflex acenter jbetween cell" style="padding-bottom: 28rpx;">
 				<view class="left_text">维修地点</view>
-				<view class="right_text">{{boss.address}}</view>
+				<view class="right_text">{{pageData.address}}</view>
 			</view>
 			<view class="hflex acenter jbetween type">
 				<view class="right_text">订单类型</view>
-				<view class="text_blue">{{boss.type}}</view>
+				<view class="text_blue">{{pageData.quick==2?'快修':'普修'}}</view>
 			</view>
-			<view class="offer hflex acenter jbetween">
+			<view class="offer hflex acenter jbetween" v-if="pageData.type == 2">
 				<view class="hflex acenter">
 					<view class="offer_label">订单报价:</view>
 					<view class="offer_text">¥{{boss.offest}}</view>
@@ -72,54 +77,54 @@
 				<view class="btn hflex acenter jcenter">查看详情</view>
 			</view>
 		</view>
-		<view class="box" style="margin-bottom: 186rpx;" v-if="state_id == '2'">
+		<view class="box" style="margin-bottom: 186rpx;" v-if="pageData.status == 3">
 			<view class="hflex acenter jbetween cell">
 				<view class="left_text">订单编号</view>
-				<view class="right_text">{{order_no}}</view>
+				<view class="right_text">{{pageData.order_no}}</view>
 			</view>
 			<view class="hflex acenter jbetween cell">
 				<view class="left_text">创建时间</view>
-				<view class="right_text">{{create_date}}</view>
+				<view class="right_text">{{pageData.success_at}}</view>
 			</view>
 		</view>
-		<view class="box" style="margin-bottom: 186rpx;" v-if="state_id == '1'">
-			<block v-for="(item,index) in works" :key="index">
-				<view class="item_bg" :class="active == index ? 'active' : ''" @click="selectItem(index)">
+		<view class="box" style="margin-bottom: 186rpx;" v-if="pageData.status == 2">
+			<block v-for="(item,index) in pageData.offer" :key="index">
+				<view class="item_bg" :class="active == index ? 'active' : ''" @click="selectItem(index,item.id)">
 					<view class="hflex jbetween">
 						<view class="hflex acenter">
-							<image :src="item.headimg" class="headimg"></image>
+							<image :src="item.user.headimg" class="headimg"></image>
 							<view class="img_right">
 								<view class="hflex acenter ">
-									<view class="name">{{item.name}}</view>
+									<view class="name">{{item.user.name}}</view>
 									<view class="blue_bg">维修工</view>
 								</view>
 								<view class="hflex acenter text_hide" style="width: 270rpx;">
-									<view class="text_style1">{{item.is_renz?'已认证':'未认证'}} | {{item.wxc}}</view>
+									<view class="text_style1">已认证</view>
 								</view>
 							</view>
 						</view>
-						<view class="text_red">报价:<span style="font-size: 36rpx;">¥{{item.offest}}</span></view>
+						<view class="text_red">报价:<span style="font-size: 36rpx;">¥{{item.price !== '0'?item.price: '暂无'}}</span></view>
 					</view>
 					<view class="hflex acenter jbetween">
 						<view class="hflex acenter">
 							<view class="text_style1">联系电话:</view>
-							<view class="text_style1">{{item.phone}}</view>
-							<view class="phone hflex acenter jcenter">
+							<view class="text_style1">{{item.user.phone}}</view>
+							<view class="phone hflex acenter jcenter" @click.stop="makeCell(item.user.phone)">
 								<u-icon name="phone-fill" color="#506DFF" size="9"></u-icon>
 							</view>
 						</view>
-						<view class="btn hflex acenter jcenter">查看详情</view>
+						<view class="btn hflex acenter jcenter" @click.stop="toChat(item.offer_id)">查看详情</view>
 					</view>
 				</view>
 			</block>
 		</view>
-		<view class="bottom">
-			<view class="btn hflex acenter jcenter" v-if="is_boss == '1' && state_id == '2'">
+		<view class="bottom" v-if="pageData.status !== 1">
+			<view class="btn hflex acenter jcenter" v-if="type == 1 && pageData.status == 3">
 				<image src="/static/images/comment/down-fff.png" style="width: 33rpx; height: 33rpx;"></image>
 				<view>下载文件</view>
 			</view>
-			<view class="btn hflex acenter jcenter" :class="active == -1 ? 'btn1' : ''" v-if="is_boss == '1' && state_id == '1'" @click="match">匹配维修工</view>
-			<view class="hflex acenter jcenter" v-if="is_boss == '0'">
+			<view class="btn hflex acenter jcenter" :class="active == -1 ? 'btn1' : ''" v-if="type == 1 && pageData.status == 2" @click="match">匹配维修工</view>
+			<view class="hflex acenter jcenter" v-if="type == 2">
 				<view class="left_btn hflex acenter jcenter">
 					<image src="/static/images/comment/down-blue.png" style="width: 33rpx; height: 33rpx;"></image>
 					<view>下载文件</view>
@@ -146,61 +151,13 @@
 		data() {
 			return {
 				title: '',
-				state_id: '1',		//未报价,已报价,已确认
-				state: '订单已匹配成功',
-				worker: {
-					headimg: '/static/images/mine/avatar2.jpg',
-					name: '张琪',
-					is_renz: true,
-					wxc: '博锐船舶器械维修厂',
-					phone: '18978652376',
-				},
-				boss: {
-					headimg: '/static/images/mine/avatar1.jpg',
-					name: 'NANA的微笑',
-					addr: '江苏南京市',
-					date: '2022-08-08 12:34',
-					phone: '18978652376',
-					time: '2022-08-03至08-04',
-					type: '快修',
-					address: '上海市浦东区滨河路18号江东造船厂',
-					offest: '19999.89',
-					content: '请详细描述故障情况及原因,方便师傅带齐工具,并为您提供准确合理的维修请详细描述故障情况及原因,方便师傅带齐工具,并为提供准确合理的维修请详细描述故障情况及',
-					imgs: ['/static/images/index/class_img3.png','/static/images/index/class_img4.png','/static/images/index/class_img5.png'],
-				},
-				works: [
-					{
-						headimg: '/static/images/mine/avatar2.jpg',
-						name: '张琪',
-						is_renz: true,
-						wxc: '博锐船舶器械维修厂',
-						phone: '18978652376',
-						offest: '199',
-					},
-					{
-						headimg: '/static/images/mine/avatar2.jpg',
-						name: '张琪',
-						is_renz: true,
-						wxc: '博锐船舶器械维修厂',
-						phone: '18978652376',
-						offest: '299',
-					},
-					{
-						headimg: '/static/images/mine/avatar2.jpg',
-						name: '张琪',
-						is_renz: true,
-						wxc: '博锐船舶器械维修厂',
-						phone: '18978652376',
-						offest: '799',
-					},
-				],
-				order_no: 'Cbz20221238993932',
-				create_date: '2022-08-11 20:34:34',
 				active: -1,
-				type: '0',
+				type: '',
 				show: false,
 				content: '确定要匹配当前维修工吗?',
 				id: '',
+				pageData: {},
+				offer_id: ''
 			}
 		},
 		onLoad(options) {
@@ -230,19 +187,19 @@
 					}
 				}, function(res) {
 					if(res.code == 1) {
-						console.log(res);
+						that.pageData = res.data
 					}
 				})
 			},
-			selectItem(index) {
+			selectItem(index,id) {
 				that.active = index
+				that.offer_id = id
 			},
 			match() {
 				if(that.active == -1) {
 					$api.info('请选择维修工')
 					return
 				} else {
-					
 					that.show = true
 				}
 			},
@@ -250,9 +207,26 @@
 				that.show = false
 			},
 			sure() {
-				that.state_id = '2'
-				that.state = '订单已匹配成功'
+				$api.req({
+					url: '/data/api.auth.Center/repairoffer',
+					method: 'POST',
+					data: {
+						id: that.pageData.id,
+						offer_id: that.offer_id
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						$api.info(res.info)
+					}
+				})
 				that.close()
+				that.getData()
+			},
+			makeCell(mobile) {
+				$api.makeCall(mobile) 
+			},
+			toChat(offer_id) {
+				$api.jump('/page_mine/pages/order/chat?id=' + that.pageData.id + '&offer_id=' + offer_id + '&type=' + that.type)
 			}
 		},
 	}
@@ -306,6 +280,12 @@
 						text-align: center;
 					}
 				}
+				.text_red {
+					font-size: 24rpx;
+					font-weight: 400;
+					color: #FF4646;
+					line-height: 34rpx;
+				}
 				.text_style1 {
 					font-size: 24rpx;
 					font-weight: 400;

+ 490 - 0
page_mine/pages/order/repairDetail2.vue

@@ -0,0 +1,490 @@
+<template>
+	<view class="content">
+		<view class="top">
+			<u-navbar :title="title" @leftClick="leftClick" bgColor="rgba(0,0,0,0)" :placeholder="true"></u-navbar>
+			<view class="state" v-if="pageData.repair.status == 1">暂未填写报价,请及时报价</view>
+			<view class="state" v-if="pageData.repair.status == 2">已报价,等待匹配</view>
+			<view class="state" v-if="pageData.repair.status == 3">已匹配成功</view>
+			<view class="top_box">
+				<view class="hflex jbetween">
+					<view class="hflex acenter">
+						<image :src="pageData.user.headimg" class="headimg"></image>
+						<view class="img_right">
+							<view class="hflex acenter ">
+								<view class="name">{{pageData.user.nickname}}</view>
+								<view class="blue_bg">维修工</view>
+							</view>
+							<view class="hflex acenter ">
+								<view class="text_style1">已认证</view>
+								<!-- <view class="text_style1">| {{worker.wxc}}</view> -->
+							</view>
+						</view>
+					</view>
+					<!-- <view class="text_red">报价:<span style="font-size: 36rpx;">¥{{pageData.price?pageData.price:'暂无'}}</span></view> -->
+				</view>
+				<view class="hflex acenter jbetween" style="padding-top: 32rpx;">
+					<view class="hflex acenter">
+						<view class="text_style1">联系电话:</view>
+						<view class="text_style1">{{pageData.user.phone}}</view>
+						<view class="phone hflex acenter jcenter" @click.stop="makeCell(pageData.user.phone)">
+							<u-icon name="phone-fill" color="#506DFF" size="9"></u-icon>
+						</view>
+					</view>
+					<view class="btn hflex acenter jcenter" @click.stop="toChat(pageData.id)">查看详情</view>
+				</view>
+			</view>
+		</view>
+		<view class="box">
+			<view class="hflex acenter" style="padding-top: 28rpx;">
+				<image :src="pageData.repair.user.headimg" class="headimg"></image>
+				<view class="img_right">
+					<view class="hflex acenter ">
+						<view class="name">{{pageData.repair.user.nickname}}</view>
+					</view>
+					<view class="hflex acenter ">
+						<view class="text_style1">{{pageData.repair.province}}{{pageData.repair.city}}</view>
+						<view class="text_style1">| {{pageData.repair.create_at}}发布</view>
+					</view>
+				</view>
+			</view>
+			<view class="box_contetn">{{pageData.repair.describe}}</view>
+			<view class="imgs hflex acenter fwrap">
+				<block v-for="(item,index) in pageData.repair.imgs" :key="index">
+					<image :src="item" class="img" mode="aspectFill"></image>
+				</block>
+			</view>
+			<view class="hflex acenter jbetween cell">
+				<view class="left_text">联系方式</view>
+				<view class="right_text">{{pageData.repair.user.phone}}</view>
+			</view>
+			<view class="hflex acenter jbetween cell">
+				<view class="left_text">维修时间</view>
+				<view class="right_text">{{pageData.repair.start_time}}至{{pageData.repair.end_time}}</view>
+			</view>
+			<view class="hflex acenter jbetween cell" style="padding-bottom: 28rpx;">
+				<view class="left_text">维修地点</view>
+				<view class="right_text">{{pageData.repair.address}}</view>
+			</view>
+			<view class="hflex acenter jbetween type">
+				<view class="right_text">订单类型</view>
+				<view class="text_blue">{{pageData.repair.quick==2?'快修':'普修'}}</view>
+			</view>
+			<view class="offer hflex acenter jbetween">
+				<view class="hflex acenter">
+					<view class="offer_label">订单报价:</view>
+					<view class="offer_text">¥{{pageData.price}}</view>
+				</view>
+				<view class="btn hflex acenter jcenter">查看详情</view>
+			</view>
+		</view>
+		<view class="box" style="margin-bottom: 186rpx;" v-if="pageData.repair.status == 3">
+			<view class="hflex acenter jbetween cell">
+				<view class="left_text">订单编号</view>
+				<view class="right_text">{{pageData.repair.order_no}}</view>
+			</view>
+			<view class="hflex acenter jbetween cell">
+				<view class="left_text">创建时间</view>
+				<view class="right_text">{{pageData.repair.success_at}}</view>
+			</view>
+		</view>
+		<view class="bottom">
+			<view class="hflex acenter jcenter" v-if="pageData.repair.status == 3">
+				<view class="left_btn hflex acenter jcenter">
+					<image src="/static/images/comment/down-blue.png" style="width: 33rpx; height: 33rpx;"></image>
+					<view>下载文件</view>
+				</view>
+				<view class="right_btn hflex acenter jcenter" @click="toChat(pageData.repair.id)">查看回复</view>
+			</view>
+			<view class="btn hflex acenter jcenter" v-else>
+				<view @click="toChat(pageData.repair.id)">查看回复</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import $api from '@/static/js/api.js'
+	var that = ''
+	export default {
+		data() {
+			return {
+				title: '',
+				active: -1,
+				type: '',
+				id: '',
+				pageData: {},
+				offer_id: ''
+			}
+		},
+		onLoad(options) {
+			that = this
+			that.id = options.id
+			that.type = options.type
+			that.getData()
+		},
+		onReady() {
+			if(true) {
+				uni.setNavigationBarTitle({
+					title: '订单详情'
+				})
+			}
+		},
+		methods: {
+			leftClick() {
+				$api.jump(-1)
+			},
+			getData() {
+				$api.req({
+					url: '/data/api.auth.Center/repairdetail',
+					method: 'POST',
+					data: {
+						type: that.type,
+						id: that.id
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						that.pageData = res.data
+					}
+				})
+			},
+			selectItem(index,id) {
+				that.active = index
+				that.offer_id = id
+			},
+			match() {
+				if(that.active == -1) {
+					$api.info('请选择维修工')
+					return
+				} else {
+					that.show = true
+				}
+			},
+			close() {
+				that.show = false
+			},
+			sure() {
+				$api.req({
+					url: '/data/api.auth.Center/repairoffer',
+					method: 'POST',
+					data: {
+						id: that.pageData.id,
+						offer_id: that.offer_id
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						$api.info(res.info)
+					}
+				})
+				that.close()
+				that.getData()
+			},
+			makeCell(mobile) {
+				$api.makeCall(mobile) 
+			},
+			toChat(id) {
+				$api.jump('/page_mine/pages/order/chat2?id=' + id)
+			}
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.content {
+		background: #F4F4F4;
+		.top {
+			box-sizing: border-box;
+			width: 100%;
+			padding: 0 30rpx;
+			background: linear-gradient(180deg, #506DFF 0%, #F3F3F3 100%);
+			.state {
+				font-size: 44rpx;
+				font-weight: 500;
+				color: #FFFFFF;
+				line-height: 60rpx;
+				padding: 28rpx 0;
+			}
+			.top_box {
+				width: 100%;
+				box-sizing: border-box;
+				padding: 28rpx 20rpx 20rpx;
+				background: #FFFFFF;
+				border-radius: 10px;
+				
+				.headimg {
+					width: 72rpx;
+					height: 72rpx;
+					border-radius: 50%;
+				}
+				.img_right {
+					margin-left: 12rpx;
+					.name {
+						font-size: 30rpx;
+						font-weight: 400;
+						color: #222222;
+						line-height: 42rpx;
+					}
+					.blue_bg {
+						margin-left: 8rpx;
+						width: 72rpx;
+						height: 28rpx;
+						background: #506DFF;
+						border-radius: 4rpx;
+						font-size: 20rpx;
+						font-weight: 400;
+						color: #FFFFFF;
+						line-height: 28rpx;
+						text-align: center;
+					}
+				}
+				.text_red {
+					font-size: 24rpx;
+					font-weight: 400;
+					color: #FF4646;
+					line-height: 34rpx;
+				}
+				.text_style1 {
+					font-size: 24rpx;
+					font-weight: 400;
+					color: #666666;
+					line-height: 34rpx;
+					padding-right: 12rpx;
+				}
+				.phone {
+					width: 32rpx;
+					height: 32rpx;
+					background: #E1E6FF;
+					border-radius: 8rpx;
+				}
+				.btn {
+					width: 132rpx;
+					height: 48rpx;
+					border-radius: 24rpx;
+					border: 2rpx solid #506DFF;
+					font-size: 24rpx;
+					font-weight: 400;
+					color: #506DFF;
+					line-height: 48rpx;
+				}
+				
+			}
+		}
+		.box {
+			width: 690rpx;
+			margin: 20rpx auto 0;
+			box-sizing: border-box;
+			padding: 0 20rpx 20rpx;
+			background: #FFFFFF;
+			border-radius: 10px;
+			.box_contetn {
+				font-size: 28rpx;
+				font-weight: 400;
+				color: #444444;
+				line-height: 44rpx;
+				padding: 24rpx 0 0;
+			}
+			.imgs{
+				width: 100%;
+				.img {
+					width: 208rpx;
+					height: 208rpx;
+					border-radius: 6px;
+					margin: 20rpx 14rpx 0 0;
+				}
+				.img:nth-child(3n+3) {
+					margin: 20rpx 0 0;
+				}
+			}
+			.cell {
+				padding: 24rpx 0 0;
+				.left_text {
+					font-size: 26rpx;
+					font-weight: 400;
+					color: #777777;
+					line-height: 36rpx;
+				}
+				.right_text {
+					font-size: 26rpx;
+					font-weight: 500;
+					color: #222222;
+					line-height: 32rpx;
+				}
+			}
+			.type {
+				padding: 24rpx 0;
+				border-top: 1rpx solid #F4F4F4;
+				.text_blue {
+					font-size: 28rpx;
+					font-weight: 500;
+					color: #506DFF;
+					line-height: 40rpx;
+				}
+			}
+			.offer {
+				width: 100%;
+				height: 76rpx;
+				background: #EAF4FF;
+				border-radius: 12rpx;
+				box-sizing: border-box;
+				padding: 16rpx 20rpx;
+				.offer_label {
+					font-size: 24rpx;
+					font-weight: 400;
+					color: #506DFF;
+					line-height: 34rpx;
+				}
+				.offer_text {
+					font-size: 32rpx;
+					font-weight: 400;
+					color: #222222;
+					line-height: 40rpx;
+				}
+				.btn {
+					width: 132rpx;
+					height: 48rpx;
+					border-radius: 24rpx;
+					border: 2rpx solid #506DFF;
+					font-size: 24rpx;
+					font-weight: 400;
+					color: #506DFF;
+					line-height: 48rpx;
+				}
+				
+			}
+			.headimg {
+				width: 72rpx;
+				height: 72rpx;
+				border-radius: 50%;
+			}
+			.img_right {
+				margin-left: 12rpx;
+				.name {
+					font-size: 30rpx;
+					font-weight: 400;
+					color: #222222;
+					line-height: 42rpx;
+				}
+				.blue_bg {
+					margin-left: 8rpx;
+					width: 72rpx;
+					height: 28rpx;
+					background: #506DFF;
+					border-radius: 4rpx;
+					font-size: 20rpx;
+					font-weight: 400;
+					color: #FFFFFF;
+					line-height: 28rpx;
+					text-align: center;
+				}
+			}
+			.text_style1 {
+				font-size: 24rpx;
+				font-weight: 400;
+				color: #666666;
+				line-height: 34rpx;
+				padding-right: 12rpx;
+			}
+			.phone {
+				width: 32rpx;
+				height: 32rpx;
+				background: #E1E6FF;
+				border-radius: 8rpx;
+			}
+			.active {
+				background: #F0F3FF !important;
+				border-radius: 8px;
+				border: 1px solid #506DFF;
+			}
+			.item_bg {
+				background: #F4F4F4;
+				border-radius: 8px;
+				margin-top: 20rpx;
+				box-sizing: border-box;
+				padding: 20rpx;
+				.text_red {
+					font-size: 24rpx;
+					font-weight: 400;
+					color: #FF4646;
+					line-height: 34rpx;
+				}
+				.btn {
+					width: 132rpx;
+					height: 48rpx;
+					border-radius: 24rpx;
+					border: 2rpx solid #506DFF;
+					font-size: 24rpx;
+					font-weight: 400;
+					color: #506DFF;
+					line-height: 48rpx;
+				}
+			}
+		}
+		.bottom {
+			width: 100%;
+			height: 166rpx;
+			background: #FFFFFF;
+			position: fixed;
+			bottom: 0;
+			z-index: 99;
+			box-sizing: border-box;
+			padding: 10rpx 30rpx 0;
+			.btn {
+				width: 100%;
+				height: 88rpx;
+				background: #506DFF;
+				border-radius: 44rpx;
+				font-size: 36rpx;
+				font-weight: 500;
+				color: #FFFFFF;
+				line-height: 50rpx;
+			}
+			.btn1 {
+				background: rgba(80,109,255,0.3) !important;
+			}
+			.left_btn {
+				width: 300rpx;
+				height: 88rpx;
+				background: #ECEFFE;
+				border-radius: 44rpx;
+				font-size: 36rpx;
+				font-weight: 500;
+				color: #506DFF;
+				margin-right: 20rpx;
+			}
+			.right_btn {
+				width: 370rpx;
+				height: 88rpx;
+				background: #506DFF;
+				border-radius: 44rpx;
+				font-size: 36rpx;
+				font-weight: 500;
+				color: #fff;
+			}
+			
+		}
+		.modeal_content {
+			font-size: 36rpx;
+			font-weight: 500;
+			color: #222222;
+			line-height: 50rpx;
+		}
+		.left {
+			width: 230rpx;
+			height: 84rpx;
+			background: #ECEFFF;
+			border-radius: 42rpx;
+			font-size: 32rpx;
+			font-weight: 400;
+			color: #506DFF;
+			margin-right: 50rpx;
+		}
+		.right {
+			width: 230rpx;
+			height: 84rpx;
+			background: #506DFF;
+			border-radius: 42rpx;
+			font-size: 32rpx;
+			font-weight: 400;
+			color: #FFFFFF;
+		}
+	}
+</style>

+ 1 - 1
page_mine/pages/service/applyMaintenance.vue

@@ -25,7 +25,7 @@
 				<picker mode="region" @change="changeAddress" :value="index" >
 					<view class="hflex acenter jbetween cell">
 						<view class="left">所在地区</view>
-						<u-input border="none" inputAlign="right" v-model="userInfo.region" placeholder="请选择省市区" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7"></u-input>
+						<u-input border="none" inputAlign="right" disabled disabledColor="#fff" v-model="userInfo.region" placeholder="请选择省市区" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7"></u-input>
 					</view>
 				</picker>
 				<view class="hflex acenter jbetween cell">

+ 51 - 6
page_mine/pages/service/demand.vue

@@ -28,20 +28,20 @@
 					<view class="title">需求说明</view>
 					<u--textarea v-model="purchase.description" placeholder="请详细描述你的采购需求" border="none"></u--textarea>
 					<view class="title">上传营业执照或者身份证件照</view>
-					<u-upload :fileList="fileList1" @afterRead="afterRead1" @delete="deletePic1" name="1" multiple :maxCount="1" width="200rpx" height="200rpx"></u-upload>
+					<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="1" width="200rpx" height="200rpx"></u-upload>
 				</view>
 				<view class="box1">
 					<view class="title">上传图片以及资质证件照片</view>
-					<u-upload :fileList="fileList2" @afterRead="afterRead1" @delete="deletePic1" name="2" multiple :maxCount="1" width="200rpx" height="200rpx"></u-upload>
+					<u-upload :fileList="fileList2" @afterRead="afterRead" @delete="deletePic" name="2" multiple :maxCount="9" width="200rpx" height="200rpx"></u-upload>
 				</view>
-				<view class="box1 hflex acenter jbetween" style="padding: 0 20rpx;">
+				<view class="box1 hflex acenter jbetween" style="margin-bottom: 186rpx;padding: 0 20rpx;">
 					<view class="title">是否隐藏需求</view>
-					<u-switch v-model="purchase.is_hide" @change="changeHide1"></u-switch>
+					<u-switch v-model="purchase.hidden" @change="changeHide1"></u-switch>
 				</view>
 			</view>
 			<view class="bottom">
-				<view class="btn" v-if="JSON.stringify(purchase) == '{}'">立即发布</view>
-				<view class="btn" v-else>立即修改</view>
+				<view class="btn" v-if="purchase.id !== ''" @click="publish">立即发布</view>
+				<view class="btn" v-else @click="publish">立即修改</view>
 			</view>
 		</block>
 		<block v-if="tab_active == 1 && is_write2 == 1">
@@ -156,6 +156,19 @@
 						} 
 						if(JSON.stringify(res.data) !== "[]" &&that.tab_active == 0) {
 							that.is_write1 = 1
+							that.purchase = res.data
+							that.fileList1.push({
+								url:res.data.business_img
+							})
+							var imgs = res.data.imgs
+							let obj = {}
+							for(let key in imgs) {
+								obj[key] = imgs[key]
+							}
+							var fileList2 = Object.keys(obj).map(item => ({
+								url: obj[item]
+							}))
+							that.fileList2 = fileList2
 						}
 						if(JSON.stringify(res.data) == "[]" &&that.tab_active == 1) {
 							that.is_write2 = 0
@@ -275,6 +288,38 @@
 						$api.info(res.info)
 					}
 				})	 
+			},
+			publish() {
+				var imgs = ''
+				if(that.fileList2.length == 1) {
+					imgs = that.fileList2[0].url
+				} else if (that.fileList2.length > 1) {
+					for(var i=0;i<that.fileList2.length;i++) {
+						if(i == that.fileList2.length - 1) {
+							imgs += that.fileList2[i].url
+						} else {
+							imgs += that.fileList2[i].url + ','
+						}
+					}
+				} 
+				$api.req({
+					url: '/data/api.auth.Center/subpurchaseacceptance',
+					method: 'POST',
+					data: {
+						description	: that.purchase.description,
+						business_img: that.fileList1[0].url,
+						imgs: imgs,
+						hidden: that.purchase.hidden?2:1,
+						province: uni.getStorageSync('location').province,
+						city: uni.getStorageSync('location').city,
+						area: uni.getStorageSync('location').district,
+						id: that.purchase.id?that.purchase.id:''
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						$api.info(res.info)
+					}
+				})
 			}
 		},
 	}

+ 3 - 3
page_mine/pages/service/joinPerson.vue

@@ -14,13 +14,13 @@
 				<picker @change="bindSexChange" :value="index" :range="sexList">
 					<view class="hflex acenter jbetween cell">
 						<view class="left">性别</view>
-						<u-input border="none" v-model="userInfo.sex" placeholder="请选择您的性别" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
+						<u-input border="none" v-model="userInfo.sex" disabled disabledColor="#fff" placeholder="请选择您的性别" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
 					</view>
 				</picker>
 				<picker @change="bindAgeChange" :value="index" :range="ageList">
 					<view class="hflex acenter jbetween cell">
 						<view class="left">年龄</view>
-						<u-input border="none" v-model="userInfo.age" placeholder="请选择您的年龄" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
+						<u-input border="none" v-model="userInfo.age" disabled disabledColor="#fff" placeholder="请选择您的年龄" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
 					</view>
 				</picker>
 				<view class="hflex acenter jbetween cell">
@@ -48,7 +48,7 @@
 				<picker @change="bindEduChange" :value="index" :range="educationList">
 					<view class="hflex acenter jbetween cell">
 						<view class="left">学历</view>
-						<u-input border="none" v-model="userInfo.education" placeholder="请选择您的学历" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
+						<u-input border="none" v-model="userInfo.education" disabled disabledColor="#fff" placeholder="请选择您的学历" suffixIcon="arrow-right" suffixIconStyle="color: #b7b7b7" inputAlign="right"></u-input>
 					</view>
 				</picker>
 				<view class="hflex acenter jbetween cell">

+ 1 - 1
page_shop/pages/address/add.vue

@@ -12,7 +12,7 @@
 			<picker @change="bindPickerChange" mode="region">
 				<view class="hflex acenter jbetween item">
 					<view class="left">所在地区</view>
-					<u-input v-model="areas" border="none" placeholder="请选择所在地区"></u-input>
+					<u-input v-model="areas" border="none" disabled disabledColor="#fff" placeholder="请选择所在地区"></u-input>
 					<u-icon name="map-fill" color="#506DFF" size="13"></u-icon>
 				</view>
 			</picker>

+ 6 - 3
page_shop/pages/order/apply.vue

@@ -32,11 +32,11 @@
 				<view class="title">退款信息</view>
 				<view class="hflex acenter jbetween cell" @click="selectState" v-if="active_type == 0">
 					<view class="left">货物状态</view>
-					<u-input v-model="state" inputAlign="right" placeholder="请选择货物状态>" border="none"></u-input>
+					<u-input v-model="state" inputAlign="right" disabled disabledColor="#fff" placeholder="请选择货物状态>" border="none"></u-input>
 				</view>
 				<view class="hflex acenter jbetween cell" @click="selectReason">
 					<view class="left">退款原因</view>
-					<u-input v-model="reason" inputAlign="right" placeholder="请选择退款原因>" border="none"></u-input>
+					<u-input v-model="reason" inputAlign="right" disabled disabledColor="#fff" placeholder="请选择退款原因>" border="none"></u-input>
 				</view>
 				<view class="hflex acenter jbetween cell">
 					<view class="left">退款金额</view>
@@ -74,7 +74,7 @@
 				</view>
 			</u-popup>
 		</view>
-		<view class="btn">申请退款</view>
+		<view class="btn" @click="applyRefund">申请退款</view>
 		<u-popup :show="state_show" :round="20" :closeable="true" mode="bottom" @close="close">
 			<view class="popu">
 				<view class="popu_title">货物状态</view>
@@ -195,6 +195,9 @@
 				}
 				
 			},
+			applyRefund() {
+				$api.jump('/page_shop/pages/order/refundDetail')
+			},
 			// 删除图片
 			deletePic(event) {
 				this[`fileList${event.name}`].splice(event.index, 1)

+ 53 - 3
page_shop/pages/order/refundDetail.vue

@@ -1,5 +1,55 @@
 <template>
 	<view class="content">
+		<view class="box" v-if="pageData.status == 1">
+			<view class="text_red">申请已提交,等待商家审核</view>
+			<view class="box_bg">
+				<view class=" hflex acenter">
+					<u-icon name="map-fill" color="#aaaaaa" size="16"></u-icon>
+					<view class="vflex">
+						<view class="bg_text">收件人: {{name}} {{phone}}</view>
+						<view class="bg_text">{{address}}</view>
+					</view>
+				</view>
+				<view class="hflex jend">
+					<view class="box_btn1">撤销申请</view>
+				</view>
+			</view>
+		</view>
+		<view class="box" v-if="pageData.status == 2">
+			<view class="text_red">商家已同意退货退款申请,请尽快发货</view>
+			<view class="box_bg">
+				<view class=" hflex acenter">
+					<u-icon name="map-fill" color="#aaaaaa" size="16"></u-icon>
+					<view class="vflex">
+						<view class="bg_text">收件人: {{name}} {{phone}}</view>
+						<view class="bg_text">{{address}}</view>
+					</view>
+				</view>
+				<view class="hflex jend">
+					<view class="box_btn1">撤销申请</view>
+					<view class="box_btn1">填写快递信息</view>
+				</view>
+			</view>
+		</view>
+		<view class="box" v-if="pageData.status == 2">
+			<view class="text_red">快递已寄出</view>
+			<view class="box_bg">
+				<view class=" hflex acenter">
+					<u-icon name="map-fill" color="#aaaaaa" size="16"></u-icon>
+					<view class="vflex">
+						<view class="bg_text">收件人: {{name}} {{phone}}</view>
+						<view class="bg_text">{{address}}</view>
+					</view>
+				</view>
+				<view class="hflex jend">
+					<view class="box_btn1">撤销申请</view>
+					<view class="box_btn1 box_btn2">填写快递信息</view>
+				</view>
+			</view>
+		</view>
+		<view class="box" v-if="pageData.status == 2">
+			<view class="text_red">退款成功</view>
+		</view>
 		<view class="box">
 			<view class="title">退款信息</view>
 			<view class="hflex acenter jbetween">
@@ -34,7 +84,7 @@
 				<view class="hflex acenter">
 					<view class="right">{{pageData.after_id}}</view>
 					<view style="margin: 0 8rpx;">|</view>
-					<view class="text_red" @click="copy">复制</view>
+					<view class="text_red" @click="copy(pageData.after_id)">复制</view>
 				</view>
 			</view>
 		</view>
@@ -66,9 +116,9 @@
 		},
 		methods: {
 			// 复制订单号
-			copy() {
+			copy(value) {
 				uni.setClipboardData({
-					data: that.pageData.order_no,
+					data: value,
 					success: function () {
 						$api.info('复制成功')
 					}

+ 21 - 0
pages.json

@@ -437,6 +437,13 @@
 					}
 				},
 				{
+					"path": "pages/order/repairDetail2",
+					"style": {
+						"navigationBarTitleText": "维修订单",
+						"navigationStyle": "custom" // 隐藏系统导航栏
+					}
+				},
+				{
 					"path": "pages/order/detail",
 					"style": {
 						"navigationBarTitleText": "订单详情",
@@ -451,6 +458,20 @@
 					}
 				},
 				{
+					"path": "pages/order/chat",
+					"style": {
+						"navigationBarTitleText": "报价详情",
+						"navigationBarBackgroundColor": "#fff"
+					}
+				},
+				{
+					"path": "pages/order/chat2",
+					"style": {
+						"navigationBarTitleText": "",
+						"navigationBarBackgroundColor": "#fff"
+					}
+				},
+				{
 					"path": "pages/service/joinPerson",
 					"style": {
 						"navigationBarTitleText": "船用人才注册",

+ 46 - 46
pages/tabbar/index/index.vue

@@ -86,45 +86,19 @@
 				class_img3: '/static/images/index/class_img3.png',
 				class_img4: '/static/images/index/class_img4.png',
 				class_img5: '/static/images/index/class_img5.png',
-				tabs: [
-					{
-						name: '推荐',
-					},
-					{
-						name: '发现',
-					},
-					{
-						name: '资讯',
-					},
-					{
-						name: '实时',
-					},
-					{
-						name: '娱乐',
-					},
-					{
-						name: '美食',
-					}
-				],
+				tabs: [],
 				pageList: [
-					{
-						title: '2022年上半年十部好剧,《开端》第7名,《人世间》第4名,值得观看',
-						imgs: [
-							"/static/images/index/class_img1.png",
-							"/static/images/index/class_img1.png",
-							"/static/images/index/class_img1.png"
-						],
-						type: '资讯',
-						client: '澎湃新闻客户端',
-						comment: 77
-					}
 				],
 				bgColor: 'rgb(255,255,255,0)',
+				exad: '',
+				page: 1,
+				total: 1,
 			}
 		},
 		async onLoad() {
 			that = this
 			await this.getCity()
+			that.getCate()
 			// that.HXlogin()
 		},
 		onShow() {
@@ -164,7 +138,7 @@
 			},
 			// 获取当前城市天气
 			getWeather() {
-				/* uni.request({
+				uni.request({
 					url: 'https://geoapi.qweather.com/v2/city/lookup',
 					data: {
 						key: '682de67f4b8d4a5e97bc63ed722ae3cf',
@@ -192,8 +166,8 @@
 							}
 						})
 					}
-				}) */
-				$api.req({
+				})
+				/* $api.req({
 					url: '/data/api.Weather/area',
 					data: {
 						name: that.city
@@ -204,7 +178,7 @@
 						min: res.data.daily[0].tempMin,
 						max: res.data.daily[0].tempMax
 					}
-				})
+				}) */
 			},
 			// 点击天气
 			toWeather() {
@@ -248,19 +222,45 @@
 			// 切换tabs
 			changeTaaba(e) {
 				console.log(e);
+				that.getList(e.id)
 			},
-			HXlogin() {
-				var HXtoken = uni.getStorageSync('HXtoken')
-				if(HXtoken) {
-					var userId = uni.getStorageSync('id')
-					var options = {
-						user: userId,
-						accessToken: HXtoken,
-						appKey: uni.WebIM.config.appKey,
+			getCate() {
+				$api.req({
+					url: '/data/api.Xw/category'
+				}, function(res) {
+					if(res.code == 1) {
+						that.tabs = res.data
+						that.getList(that.tabs[0].id)
 					}
-					uni.WebIM.conn.open(options);
-				}
-				
+				})
+			},
+			getList(cid) {
+				$api.req({
+					url: '/data/api.Xw/index',
+					data: {
+						page: that.page,
+						cid: cid,
+						exad: that.exad
+					}
+				}, function(res) {
+					if(res.code == 1) {
+						for(var i=0;i<res.data.news.length;i++) {
+							for(var j=0;j<res.data.news[i].xw.length;j++) {
+								if(res.data.news[i].xw[j].images == "") {
+									that.$set(res.data.news[i].xw[j],'has_img',true)
+									console.log('没有图片');
+								}else {
+									res.data.news[i].xw[j].images = res.data.news[i].xw[j].images.split('|')
+									console.log('长度',res.data.news[i].xw[j].images.length);
+								}
+								
+							}
+						}
+						that.pageList = res.data.news
+						that.exad = res.data.exad.join(',')
+						
+					}
+				})
 			}
 		}
 	}

+ 7 - 1
pages/tabbar/mine/mine.vue

@@ -170,7 +170,7 @@
 						img: '/static/images/mine/service8.png',
 						text: '意见反馈',
 					},
-				]
+				],
 			}
 		},
 		onLoad() {
@@ -200,6 +200,12 @@
 				}, function(res) {
 					if(res.code == 1) {
 						that.user = res.data
+						if(that.user.maintenance.audit == 2) {
+							var maintenance = uni.getStorageSync('maintenance')
+							if(!maintenance) {
+								uni.setStorageSync('maintenance', true)
+							}
+						}
 					} else {
 						that.user = {}
 					}

+ 5 - 7
static/js/api.js

@@ -1779,11 +1779,9 @@ module.exports = {
 	 * @param mobile
 	 */
 	makeCall: function(mobile) {
-		this.modal('确定拨打' + mobile, function() {
-			uni.makePhoneCall({
-				phoneNumber: mobile
-			});
-		}, true);
+		uni.makePhoneCall({
+			phoneNumber: mobile
+		});
 	},
 
 	/**
@@ -1986,7 +1984,7 @@ module.exports = {
 	 * @param send_id 被购买的用户id
 	 * @param send_name 被购买的名字
 	 */
-	makeCall(price, mobile, work_id, type, buy_type, send_id, send_name = '') {
+	/* makeCall(price, mobile, work_id, type, buy_type, send_id, send_name = '') {
 		var that = this
 		that.modal('将自动使用会员次数或东豆进行抵扣', function(params) {
 			that.req({
@@ -2015,7 +2013,7 @@ module.exports = {
 				}
 			})
 		}, true)
-	},
+	}, */
 	/**
 	 * 微信小程序防抖
 	 * @param func 防抖事件

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/evils-el-poster/evils-el-poster.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/menuList/menuList.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/my-canvas/my-canvas.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/my-order/my-order.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/news-module/news-module.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/order-top/order-top.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/share-model/share-model.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-avatar/u-avatar.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-badge/u-badge.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-checkbox-group/u-checkbox-group.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-checkbox/u-checkbox.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-code/u-code.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-column-notice/u-column-notice.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-count-down/u-count-down.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-datetime-picker/u-datetime-picker.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-grid-item/u-grid-item.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-grid/u-grid.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-icon/u-icon.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-index-anchor/u-index-anchor.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-index-item/u-index-item.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-index-list/u-index-list.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-input/u-input.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-line/u-line.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-link/u-link.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-loading-icon/u-loading-icon.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-modal/u-modal.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-navbar/u-navbar.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-notice-bar/u-notice-bar.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-number-box/u-number-box.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-overlay/u-overlay.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-parse/node/node.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-parse/u-parse.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-picker/u-picker.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-popup/u-popup.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-radio-group/u-radio-group.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-radio/u-radio.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-read-more/u-read-more.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-row-notice/u-row-notice.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-safe-bottom/u-safe-bottom.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-search/u-search.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-status-bar/u-status-bar.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-steps-item/u-steps-item.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-steps/u-steps.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-swipe-action-item/u-swipe-action-item.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-swiper-indicator/u-swiper-indicator.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-swiper/u-swiper.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-switch/u-switch.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-tabs/u-tabs.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-text/u-text.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-textarea/u-textarea.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-toolbar/u-toolbar.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-transition/u-transition.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/node-modules/uview-ui/components/u-upload/u-upload.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/bidding/bidDetail.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/bidding/bidding.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/demand/collect.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/demand/delivery.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/demand/demand.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/demand/perfect.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/demand/publish.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/demand/recruitDetail.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/demand/wantedDetail.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/index/changeCity.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/index/newDetail.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/index/noticeDetail.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/index/noticeList.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/index/search.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/index/weather.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/purchase/orderDetail.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/purchase/purchase.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/purchase/receivingDetail.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/purchase/release.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/repair/orderDetail.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/repair/receivingOrder.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/repair/repair.js.map


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/page_index/pages/repair/repairDetail.js.map


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است