Selaa lähdekoodia

feat:提测准备

徐志豪 5 vuotta sitten
vanhempi
commit
b89f830b8e

+ 1 - 1
admin/src/api/company.js

@@ -30,7 +30,7 @@ export function fetchAllScene (data) {
     searchKey: '',
     token: getToken()
   }
-  return request.post('house/getAllScene', Object.assign(defaultParams, data))
+  return request.post('company/getAllScene', Object.assign(defaultParams, data))
 }
 
 export function getIndustry (params) {

+ 1 - 1
admin/src/components/tables/tables.vue

@@ -230,7 +230,7 @@ export default {
     async handleRowBtn(param) {
       if (param.action === 'toDel') {
         // 获取对应的id字段得值
-        await this.deleteApi([param.row[this.deleteIdKey] || param.row[Object.keys(param.row).find(item => item.indexOf('_id') > -1)] || param.row])
+        await this.deleteApi([param.row[this.deleteIdKey] || param.row])
         this.handleTableData()
         return
       }

+ 9 - 3
admin/src/views/activity/enterpriseList.vue

@@ -2,7 +2,7 @@
   <div class="enterprise-list">
     <tables
       :data-api="getCompanyList"
-      :delete-api="deleteApi"
+      :delete-api="deleteCompany"
       :columns="columns"
       @toCheck="check"
       deleteIdKey="agency_user_id"
@@ -14,12 +14,11 @@
 
 <script>
 import tables from 'components/tables'
-import { getCompanyList } from '@/api/company'
+import { getCompanyList, updateCompany } from '@/api/company'
 export default {
   data () {
     return {
       getCompanyList,
-      deleteApi: getCompanyList,
       columns: [
         {
           type: 'index',
@@ -77,6 +76,13 @@ export default {
           companyId: item.companyId
         }
       })
+    },
+    async deleteCompany(row) {
+      row[0].enable = 0
+      await updateCompany(row[0])
+      this.$Message.success({
+        content: '删除成功'
+      })
     }
   }
 }

+ 22 - 2
admin/src/views/activity/homeAdmin.vue

@@ -88,13 +88,31 @@ export default {
   components: {
     picUpload
   },
-  mounted () {
-    this.getCompanyList()
+  watch: {
+    banner1HasUploads (val) {
+      if (!val[0]) {
+        this.form.firstPageContent[0] = {}
+      }
+    },
+    banner2HasUploads (val) {
+      if (!val[0]) {
+        this.form.firstPageContent[1] = {}
+      }
+    },
+    banner3HasUploads (val) {
+      if (!val[0]) {
+        this.form.firstPageContent[2] = {}
+      }
+    },
+  },
+  async mounted () {
+    await this.getCompanyList()
     this.getActivityDetail()
   },
   methods: {
     upadteActivity () {
       let form = Object.assign({}, this.form)
+      form.firstPageContent = form.firstPageContent.filter(item => item.img)
       form.firstPageContent = JSON.stringify(form.firstPageContent)
       upadteActivity(form).then(() => {
         this.$Message.success('更新成功')
@@ -103,6 +121,7 @@ export default {
     getCompanyList () {
       getCompanyList({pageSize: 9999}).then(res => {
         this.companyList = res.data.list
+        
       })
     },
     submit () {
@@ -136,6 +155,7 @@ export default {
         this.form.firstPageContent.forEach((item, index) => {
           this[`banner${index+1}HasUploads`] = [{ img: item.img }]
           this[`banner${index+1}`] = item.link
+          console.log(item.link)
         })
       })
     }

+ 18 - 8
admin/src/views/enterprise/components/baseForm.vue

@@ -17,8 +17,8 @@
             </FormItem>
           </i-col>
           <i-col :span="12" class="">
-            <FormItem label="成立时间" prop="companyRegisterTime">
-              <Date-picker v-model="form.companyRegisterTime" type="year" size="large" placeholder=""  :disabled="isDetail" @on-change="changeDate"></Date-picker>
+            <FormItem label="成立时间" prop="registerDate">
+              <Date-picker v-model="form.registerDate" type="year" size="large" placeholder=""  :disabled="isDetail" @on-change="changeDate"></Date-picker>
             </FormItem>
           </i-col>
           <i-col :span="12" class="">
@@ -94,7 +94,7 @@
     <cModal :show="modalShow"  class="scene-modal" :width="960" title="添加/选择场景" @close="modalShow=false" @submit="changeScene">
       <template>
         <tables 
-          :data-api="dataApi"
+          :data-api="fetchAllScene"
           :columns="tableColumns"
           placeholder="场景名称"
         />
@@ -138,7 +138,7 @@ export default {
       rules: {
         name: [{ required: true, message: '请填写公司名', trigger: 'blur' }],
         companyType: [{ required: true, message: '请选择所属行业', trigger: 'change'}],
-        companyRegisterTime: [{ required: true, message: '请填写成立时间', trigger: 'change'}],
+        registerDate: [{ required: true, message: '请填写成立时间', trigger: 'blur'}],
         staffNum: [{ required: true, message: '请填写员工人数', trigger: 'blur' }],
         registerFund: [{ required: true, message: '请填写注册资金', trigger: 'blur' }],
         mainProduct: [{ required: true, message: '请填写主要产品描述', trigger: 'blur' }],
@@ -229,7 +229,6 @@ export default {
         }
       ],
       industryList: [],
-      dataApi: CompanyApi.fetchAllScene,
       getGuideList,
       modalShow: false,
       guideModalShow: false,
@@ -272,6 +271,8 @@ export default {
     },
     changeGuide () {
       this.select_guide = this.$refs['guideTable'].tableData.find(item => item.viewerId === this.select_guide_id)
+      this.form.guideId = this.select_guide.viewerId
+      this.guideModalShow = false
     },
     getIndustryList () {
       CompanyApi.getIndustry({pageSize: 9999}).then(res => {
@@ -297,9 +298,18 @@ export default {
       this.form.longitude = value.location.lng
     },
     changeDate (date) {
-      console.log(date)
-      this.form.companyRegisterTime = date
-    }
+      this.form.registerDate = date
+    },
+    fetchAllScene (data) {
+      console.log(data)
+      return CompanyApi.fetchAllScene(data).then(res => {
+        return {
+          data: {
+            list: [...res.data.myScene, ...res.data.cooperationScene]
+          }
+        }
+      })
+    },
   }
 }
 </script>

+ 5 - 1
admin/src/views/enterprise/index.vue

@@ -31,7 +31,8 @@ export default {
         companyName: '111',
         companyType: '',
         sceneNum: 't-jpLXfXA',
-        vrLink: 'http%3A%2F%2F192.168.0.98%3A8080%2Fkanzhan.html%3Fm%3Dt-jpLXfXA'
+        vrLink: 'http%3A%2F%2F192.168.0.98%3A8080%2Fkanzhan.html%3Fm%3Dt-jpLXfXA',
+        registerDate: new Date()
       },
       
     }
@@ -77,7 +78,10 @@ export default {
       if (!this.companyId) return
       CompanyApi.getCompanyDetail(this.companyId).then(res => {
         this.isDetail = true
+        res.data.company.registerDate = new Date(res.data.company.registerDate)
+        
         this.form = res.data.company
+        console.log(this.form)
       })
     }
   }

+ 8 - 2
admin/src/views/industry/list.vue

@@ -3,11 +3,10 @@
     <tables
       :buttonList="buttonList"
       :data-api="getIndustry"
-      :delete-api="deleteApi"
+      :delete-api="updateIndustry"
       :columns="columns"
       @create="create"
       @toEdit="toEdit"
-      deleteIdKey="agency_user_id"
       placeholder="输入行业名称"
       ref="table"
     />
@@ -112,6 +111,13 @@ export default {
       let res = await api(this.form)
       this.$refs['table'].handleTableData()
       this.modalShow = false
+    },
+    async updateIndustry(row) {
+      row[0].enable = 0
+      await updateIndustry(row[0])
+      this.$Message.success({
+        content: '删除成功'
+      })
     }
   }
 }

+ 1 - 1
admin/vue.config.js

@@ -29,7 +29,7 @@ module.exports = {
         target: 'http://120.25.146.52:8075'    // 测试环境
       },
       '/node-upload': {
-        target: 'http://39.108.220.65:1935',
+        target: 'http://vrhouse2.4dkankan.com',
       },
     }
     // before: require('./mock/mock-server.js')

+ 3 - 0
miniprogram/apis/company.js

@@ -19,5 +19,8 @@ export default {
   },
   getCompanyDetail (companyId) {
     return request.get('company/getCompanyDetail', { companyId })
+  },
+  getCompanyDetailByScene (sceneNum) {
+    return request.get('company/getCompanyByScene', { sceneNum })
   }
 }

+ 3 - 2
miniprogram/apis/index.js

@@ -29,8 +29,9 @@ export default {
     console.log(data, 'data')
     let app = getApp()
     let defaultData = {
-      userId: app.globalData.userinfo ? app.globalData.userinfo.userId : ''
+      userId: app.globalData.userinfo ? app.globalData.userinfo.viewerId || '' : '',
+      guideId: ''
     }
-    return request.post('company/sendData', Object.assign(defaultData, data))
+    return request.get('company/sendData', Object.assign(defaultData, data))
   }
 }

+ 1 - 1
miniprogram/app.json

@@ -16,7 +16,7 @@
     "pages/goods-detail/goods-detail",
     "pages/login/login",
     "pages/find/find",
-    "pages/scene/scene",
+    "pages/web/web",
     "pages/business-card/detail/business-card-detail",
     "pages/logout/logout",
     "pages/business-card/scan/scan",

+ 1 - 1
miniprogram/components/business-card/index.wxml

@@ -2,7 +2,7 @@
     <image class="card-bg" src="https://4d-tjw.oss-cn-shenzhen.aliyuncs.com/domain/exhibition/demo/img_cardbg%402x.png"  mode="widthFix"></image>
     <view class="card-content">
       <view class="card-header">
-      <image class="avatar" src="{{info.avatar}}"></image>
+      <image class="avatar" src="{{info.avatar || 'https://4d-tjw.oss-cn-shenzhen.aliyuncs.com/domain/exhibition/demo/avatar_default%402x.png'}}"></image>
       <view class="card-header-info">
         <view class="card-name">{{info.name}}<text>{{info.companyPosition}}</text></view>
         <view class="company">{{info.companyName}}</view>

+ 2 - 1
miniprogram/components/search-bar/search-bar.js

@@ -3,7 +3,8 @@ import { VantComponent } from '../vant-ui/common/component'
 VantComponent({
   props: {
     placeholder: String,
-    disabled: Boolean
+    disabled: Boolean,
+    value: String
   },
   methods: {
     bindconfirm (e) {

+ 1 - 1
miniprogram/components/search-bar/search-bar.wxml

@@ -1,4 +1,4 @@
 <view class="search-bar">
   <icon icon="home_search" class="icon"   />
-  <input disabled="{{ disabled }}" bindinput="bindinput" placeholder="{{ placeholder || '请输入关键字' }}" confirm-type="search" bindconfirm="bindconfirm"></input>
+  <input disabled="{{ disabled }}" bindinput="bindinput" value="{{value}}" placeholder="{{ placeholder || '请输入关键字' }}" confirm-type="search" bindconfirm="bindconfirm"></input>
 </view>

+ 1 - 2
miniprogram/components/tab-bar/tab-bar.js

@@ -109,10 +109,9 @@ Component({
     },
     init () {
       this.fn = (msg) => {
-        
         const { tabItems } = this.data
         app.globalData.unViewMsg = app.globalData.unViewMsg ? app.globalData.unViewMsg+1 : 1
-        tabItems[3].info = app.globalData.unViewMsg
+        tabItems[2].info = app.globalData.unViewMsg
         this.setData({
           tabItems
         })

+ 2 - 2
miniprogram/config/config.js

@@ -1,5 +1,5 @@
-export const IM_HOST = 'ws://120.25.146.52:8075'
-export const API_BASE_URL = 'http://120.25.146.52:8075'
+export const IM_HOST = 'ws://haowantest.4dkankan.com'
+export const API_BASE_URL = 'http://haowantest.4dkankan.com'
 
 
 // export const IM_HOST = 'ws://192.168.0.83:8075'

+ 5 - 2
miniprogram/pages/business-card/scan-result/scan-result.js

@@ -1,6 +1,7 @@
 import { VueLikePage } from '../../../utils/page'
 import UserApi from '../../../apis/user'
 import Router from '../../../utils/routes'
+import { API_BASE_URL } from '../../../config/config'
 VueLikePage([], {
   data: {
     isLoading: true,
@@ -23,11 +24,13 @@ VueLikePage([], {
       wx.uploadFile({
         filePath: filePath,
         name: 'file',
-        url: `http://39.108.220.65:8075/app/viewer/recognizeBusinessCard`,
+        url: `${API_BASE_URL}/app/viewer/recognizeBusinessCard`,
         formData: {
-          viewerId: getApp().globalData.userinfo.viewerId
+          viewerId: getApp().globalData.userinfo.viewerId,
+          token:  getApp().globalData.token
         },
         success: (res) => {
+          console.log(res)
           const data = JSON.parse(res.data)
           const aliyunRsp = data.data.aliyunRsp
           const detail = {

+ 6 - 6
miniprogram/pages/goods-detail/goods-detail.js

@@ -10,15 +10,15 @@ VueLikePage([], {
   },
   methods: {
     async onLoad (options) {
-      const { goods_id } = options
+      const { goods_id, companyId } = options
       this.goods_id = goods_id
       const goodsDetail = await this.getGoodsDetail()
-      this.getGuide()
+      // this.getGuide()
       this.getGoodsCollectStatus()
       this.setData({
         detail: goodsDetail
       })
-      const companyRes = await CompanyApi.getCompanyDetail(res.data.companyId)
+      const companyRes = await CompanyApi.getCompanyDetail(companyId)
       this.company = companyRes.data
     },
     async getGoodsDetail () {
@@ -51,7 +51,7 @@ VueLikePage([], {
       })
     },
     toChat () {
-      if (!this.guide) return
+      // if (!this.guide) return
       if (!getApp().globalData.token) {
         Router.push('login')
         return
@@ -60,11 +60,11 @@ VueLikePage([], {
         goodsId: this.goods_id,
         sceneNum: this.company.sceneNum
       })
-      ImSend.sendMsg({content:'你好', msgType:'text', toId:this.guide.viewerId}).then(() => {
+      ImSend.sendMsg({content:'你好', msgType:'text', toId:this.company.guideId}).then(() => {
         Router.push({
           url: 'chat',
           query: {
-            toId: this.guide.viewerId
+            toId: this.company.guideId
           }
         })
       })

+ 5 - 4
miniprogram/pages/goods-detail/goods-detail.wxml

@@ -8,11 +8,12 @@
 	<view class="container">
 		<view class="goods-name-w">
 			<view class="goods-name">{{ detail.info.name }}</view>
-			<view class="goods-price">¥{{ detail.price }}</view>
+			<view class="goods-price">¥{{ detail.info.retail_price || '' }}</view>
 		</view>
 
-		<view class="goods-info-w">
-			<view class="info-item">
+		<view class="goods-info-w" >
+			<rich-text nodes="{{ detail.info.goods_desc }}"></rich-text>
+			<!-- <view class="info-item">
 				<text class="label">型号:</text>
 				<text class="value">{{ detail.typeNum }}</text>
 			</view>
@@ -23,7 +24,7 @@
 			<view class="info-item">
 				<text class="label">规格:</text>
 				<text class="value">{{ detail.specifications }}</text>
-			</view>
+			</view> -->
 		</view>
     <view class="goods-detail-img">
       <image src="{{detail.detailPicUrl}}" mode="widthFix"></image>

+ 6 - 5
miniprogram/pages/search/search.js

@@ -48,12 +48,13 @@ VueLikePage([], {
       })
     },
     searchHistory (e) {
-      e.detail.value = e.currentTarget.dataset.keyword
+      e.detail = e.currentTarget.dataset.keyword
       this.search(e)
     },
     search (e) {
+      console.log(e)
       const { activeIndex, searchTypes } = this.data
-      const { value } = e.detail
+      const value = e.detail
       if (!value) {
         this.setData({
           showResult: false
@@ -63,7 +64,7 @@ VueLikePage([], {
       saveSearchHistory(value)
       const params = {
         type: searchTypes[activeIndex].value,
-        keyword: e.detail.value
+        keyword: value
       }
       GoodsApi.searchGoodsOrCompany(params).then(res => {
         const name_key = params.type === 'company' ? 'companyName' : 'name'
@@ -74,8 +75,8 @@ VueLikePage([], {
           showResult: true,
           resultList: res.data.list.map(item => {
             console.log(item[img_key], 'item[img_key]')
-        let img = JSON.parse(item[img_key])
-        console.log(img)
+          let img = JSON.parse(item[img_key])
+          console.log(img)
             item.name = item[name_key]
             item.id = item[id_key]
             item.img = img[0].img

+ 2 - 1
miniprogram/pages/search/search.json

@@ -1,5 +1,6 @@
 {
   "usingComponents": {
-    "no-more-bar": "/components/no-more-bar/no-more-bar"
+    "no-more-bar": "/components/no-more-bar/no-more-bar",
+    "search-bar": "/components/search-bar/search-bar"
   }
 }

+ 6 - 7
miniprogram/pages/search/search.wxml

@@ -1,22 +1,21 @@
 <view class="page">
-	<view class="search-w">
+	<!-- <view class="search-w">
 		<view class="search-left" bindtap="showSelect">
 			<text>{{ searchTypes[activeIndex].text }}</text>
-			<!-- <icon class="icon" icon="scene_tit_arrow" size="12" /> -->
-      <!-- 选择框 -->
-      <!-- <view class="select-w" catchtap="hideSelect" wx:if="{{ selectShowStatus }}">
+			<icon class="icon" icon="scene_tit_arrow" size="12" />
+      <view class="select-w" catchtap="hideSelect" wx:if="{{ selectShowStatus }}">
         <view class="mask"></view>
         <view class="select">
           <view class="options {{ activeIndex === index ? 'active' : ''}}" wx:for="{{searchTypes}}" wx:key="{{index}}" data-index="{{ index }}" bindtap="changeSearchType">{{ item.text }}</view>
         </view>
-      </view> -->
+      </view>
 		</view>
 		<view class="search-right">
 			<icon icon="home_search" size="15" />
 			<input placeholder="请输入关键字" value="{{ keyword }}" confirm-type="search" bindconfirm="search" ></input>
 		</view>
-	</view>
-
+	</view> -->
+	<search-bar bindsearch="search" value="{{ keyword }}" />
 	<view class="search-history" wx:if="{{!showResult}}">
 		<view class="history-header">
 			<text>历史搜索</text>

+ 13 - 12
miniprogram/pages/scene/scene.js

@@ -2,6 +2,7 @@ import * as SocketHandle from '../../utils/socket-handle'
 import { getQueryString } from './../../utils/tools'
 import ImSend from './../../utils/imSend'
 import ImApi from './../../apis/im'
+import CompanyApi from './../../apis/company'
 // pages/web/web.js
 const app = getApp()
 
@@ -33,16 +34,15 @@ Page({
     let { vr_link } = options
     vr_link = decodeURIComponent(vr_link)
     this.vrLink = vr_link
-    let room_id = 'test'
     let opts = {
-      roomId: room_id || options.room_id || getQueryString(vr_link, 'room_id') || randomString(18),
+      roomId: options.room_id || getQueryString(vr_link, 'room_id') || randomString(18),
       userId: getApp().globalData.userinfo.viewerId,
       role: 'customer',
       scene_num: getQueryString(vr_link, 'm')
     }
     this.setData({
       socketOpts: opts,
-      url: `${vr_link}&room_id=${room_id || opts.roomId}${options.is_auto? `&vr=1` : ''}`,
+      url: `${vr_link}&room_id=${opts.roomId}${options.is_auto? `&vr=1` : ''}`,
       room_id: opts.roomId,
       house_id: options.house_id || '',
       vr_link: vr_link
@@ -104,18 +104,19 @@ Page({
   },
   sendVrCard () {
     ImApi.addFriend('1000fe7fc7dfd202f9c1594690399935').finally(() => {
-      ImSend.sendVrMsg({title: '带看', detail_images: ['https://houseoss.4dkankan.com/4dHouse/admin/upload/20200721936_406.jpg'], vrLink: encodeURIComponent(this.vrLink)}, this.data.room_id, '1000fe7fc7dfd202f9c1594690399935', true)
+      ImSend.sendVrMsg({title: '带看', detail_images: [this.companyDetail.vrImg], vrLink: encodeURIComponent(this.vrLink)}, this.data.room_id, this.companyDetail.guideId, true)
     })
   },
   getHouseDetail (scene) {
-    // return HouseApi.getHouseByScene(scene).then(res => {
-    //   let house = res.data
-    //   house.detail_images = JSON.parse(house.detail_images)
-    //   this.setData({
-    //     house
-    //   })
-    //   return res
-    // })
+    return CompanyApi.getCompanyDetailByScene(scene).then(res => {
+      res.data.vrImg = JSON.parse(res.data.introduceImage)[0].img
+      this.companyDetail = res.data
+      // house.detail_images = JSON.parse(house.detail_images)
+      // this.setData({
+      //   house
+      // })
+      // return res
+    })
   },
   onShareAppMessage: function (res) {
     var path =`/pages/web/web?house_id=${this.data.house_id}&vr_link=${encodeURIComponent(this.data.vr_link)}`;

miniprogram/pages/scene/scene.json → miniprogram/pages/web/web.json


miniprogram/pages/scene/scene.wxml → miniprogram/pages/web/web.wxml


miniprogram/pages/scene/scene.wxss → miniprogram/pages/web/web.wxss


+ 1 - 1
miniprogram/project.config.json

@@ -378,7 +378,7 @@
 					"id": 45,
 					"name": "商圈商品详情",
 					"pathName": "pages/goods-detail/goods-detail",
-					"query": "goods_id=1181276",
+					"query": "goods_id=1181276&companyId=10403753716a99e763b1594344521495",
 					"scene": null
 				},
 				{

+ 4 - 1
miniprogram/utils/routes.js

@@ -1,3 +1,5 @@
+import { autoSubcrebe } from './utils'
+
 const tabRoutes = {
   home: "/pages/index/index",
   my: "/pages/my/my",
@@ -19,7 +21,7 @@ const routes = {
   goodsDetail: "/pages/goods-detail/goods-detail",
   dataReport: "/dataReport/pages/data-report/data-report",
   find: '/pages/find/find',
-  scene: '/pages/scene/scene',
+  scene: '/pages/web/web',
   login: '/pages/login/login',
   chat: "/pages/chat/chat",
   logout: "/pages/logout/logout",
@@ -47,6 +49,7 @@ function toUrl (url, query) {
 export default {
   tabRoutes,
   push (options) {
+    autoSubcrebe()
     if (typeof options === 'string') {
       return toUrl(options)
     }

+ 1 - 0
miniprogram/utils/utils.js

@@ -15,6 +15,7 @@ export function subcribe() {
       tmplIds: [subId],
       success(res) {
         res.subId = subId
+        console.log('订阅成功')
         resolve(res)
       },
       fail(err) {