liujq 3 lat temu
rodzic
commit
bb7f831681

Plik diff jest za duży
+ 0 - 0
dist/index.html


Plik diff jest za duży
+ 0 - 0
dist/static/css/chunk-3a243e4a.db306c69.css


Plik diff jest za duży
+ 0 - 0
dist/static/css/chunk-470bed2b.ab0cdaed.css


Plik diff jest za duży
+ 0 - 0
dist/static/js/app.5495772c.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-07fc91a6.33015e42.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-07fc91a6.cd914780.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-3a243e4a.8ef83c4f.js


Plik diff jest za duży
+ 0 - 0
dist/static/js/chunk-470bed2b.cdb2c8d3.js


+ 130 - 0
src/views/cust/components/popup/LineUpRecordEdit.vue

@@ -0,0 +1,130 @@
+<template>
+  <div>
+    <el-dialog
+      v-loading="loading"
+      :show-close="false"
+      :close-on-click-modal="false"
+      :visible.sync="isShow"
+      :title="curObj.id ? '编辑成交价' : '新增成交价'"
+      :fullscreen="false"
+      width="800px"
+      custom-class="xl-dialog"
+      center
+    >
+      <base-form ref="ruleForm" class="lib-edit" :data="formData" :is-inline="false" label-width="80px">
+      </base-form>
+      <div class="xl-form">
+        <div class="xl-form-footer">
+          <el-button class="xl-form-btn t2" @click="close">关 闭</el-button>
+          <el-button class="xl-form-btn t1" @click="close('confirm')">确定</el-button>
+        </div>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import { arrToObj } from '@/utils'
+export default {
+  components: { },
+  mixins,
+  props: {
+    isShow: Boolean,
+    curObj: Object
+  },
+  inject: ['parentData'],
+  data() {
+    return {
+      loading: false,
+      formData: [],
+    }
+  },
+  watch: {
+    isShow: function(val) {
+      if (val) {
+        this.getDef()
+      }
+    },
+  },
+  methods: {
+    getDef (str) {
+      let params = { ...this.curObj }
+      if (str === 'price') {
+        params = {...this.$refs.ruleForm.baseForm}
+        if (params.area && params.unit_price) {
+          params.price = (params.area * params.unit_price / 10000).toFixed(1)
+          if (params.price.charAt(params.price.length - 1) === '0') {
+            params.price = parseInt(params.price)
+          }
+        }
+      }
+      // if (!params.company) params.company = '贝壳'
+      this.formData = [
+        { label: '面积', key: 'area', class: 'c-3', type: 'inputFont', appendFont: '㎡', changeHandle: this.priceChange, rules: 1},
+        { label: '层数', class: 'c-3', key: 'cur_layer', rules: [
+          { validator: (rule, value, callback) => {
+            if (Number(value) < 0 || isNaN(Number(value))) {
+              callback(new Error('请输入数字'))
+            } else {
+              callback()
+            }
+          }, trigger: 'blur' },
+          { required: true, message: '请输入层数', trigger: 'blur' },
+        ] },
+        { label: '总层数', class: 'c-3', key: 'layer', rules: [
+          { validator: (rule, value, callback) => {
+            if (Number(value) < 0 || isNaN(Number(value))) {
+              callback(new Error('请输入数字'))
+            } else {
+              callback()
+            }
+          }, trigger: 'blur' },
+          { required: true, message: '请输入总层数', trigger: 'blur' },
+        ] },
+        { label: '签约中介', key: 'company', class: 'c-3', type: 'select', options: this.$dictData.zjjg, rules: 1}, 
+        { label: '签约日期', key: 'sign_at', type: 'datePicker', type2: 'date', class: 'c-3', rules: 1},
+        { label: '单价', key: 'unit_price', class: 'c-3', type: 'inputFont', appendFont: '元', changeHandle: this.priceChange, rules: 1},
+        { label: '总价', key: 'price', class: 'c-3', type: 'inputFont', appendFont: '万元', rules: 1},
+      ]
+      this.setDefaultValue(params)
+    },
+    priceChange () {
+      this.getDef('price')
+    },
+    close (str) {
+      if (str === 'confirm') {
+        this.$refs['ruleForm'].$refs['baseForm'].validate((valid) => {
+          if (valid) {
+            const oldform = this.$refs.ruleForm.baseForm
+            const newForm = { ...oldform }
+            if (this.curObj.id) newForm.id = this.curObj.id
+            newForm.estate_id = this.parentData.searchForm.estate_id
+            if (this.imagesArr && this.imagesArr.length > 0) newForm.images = this.imagesArr.join(',')
+            let apiStr = 'admpriceadd'
+            if (this.curObj.id) apiStr = 'admpriceedit'
+            this.$api.house[apiStr](newForm).then(data => {
+              this.$msgs(newForm.estate_id ? '编辑成功' : '新增成功')
+              this.$emit('close', newForm)
+            })
+          }
+        })
+      } else {
+        this.$emit('close')
+        this.setDefaultValue()
+      }
+    },
+  }
+}
+</script>
+<style lang="scss" scoped>
+@import '../../../../styles/libEdit.scss';
+.lib-edit {
+  padding-top: 0;
+  width: 700px;
+  ::v-deep .el-date-editor.el-input {
+    width: 100%;
+  }
+  ::v-deep .el-textarea__inner {
+    height: 300px;
+  }
+}
+</style>

+ 80 - 0
src/views/cust/components/searchForm/LineUpRecord.vue

@@ -0,0 +1,80 @@
+<template>
+  <base-form slot="content" ref="ruleForm" :data="searchData">
+    <div slot="footer">
+      <el-button :loading="listLoading" icon="el-icon-search" class="xl-form-btn bgc1" @click="searchHandle">查询:{{name}}</el-button>
+      <!-- <el-button :loading="listLoading" icon="el-icon-plus" class="xl-form-btn bgc2" @click="addHandle">添加成交价</el-button>
+      <el-button v-if="!isHidePut" :loading="listLoading" icon="el-icon-document" class="xl-form-btn bgc4" @click="pushToUser">推送给关注{{name}}的用户</el-button> -->
+      <!-- <el-button :loading="listLoading" icon="el-icon-document" class="xl-form-btn bgc2" @click="toExportExcel">导出{{ this.$route.meta.title }}信息</el-button> -->
+    </div>
+  </base-form>
+</template>
+<script>
+export default {
+  props: {
+    listLoading: Boolean
+  },
+  inject: ['parentData'],
+  mixins,
+  data() {
+    return {
+      searchData: [],
+      isHidePut: false,
+    }
+  },
+  computed: {
+    name () {
+      return this.parentData.$route.query.name || ''
+    }
+  },
+  mounted () {
+    this.getDef()
+  },
+  methods: {
+    addHandle () {
+      this.parentData.isDtlShow = true
+      this.parentData.curObj = {}
+    },
+    pushToUser () {
+      this.$msg(`您确定要推送给关注的用户吗?`, 'confirm', () => {
+        this.$api.user.admestatepricepush({
+          estate_id: this.parentData.$route.query.id
+        }).then(() => {
+          this.$msgs('推送成功~')
+          this.isHidePut = true
+        })
+      }, null, true)
+    },
+    getDef (str) {
+      let params = { ...this.$refs.ruleForm.baseForm }
+      const query = this.$route.query
+      let estateName = query.name || ''
+      params.estate_id = query.id ? Number(query.id) : ''
+      this.searchData = [
+        { label: '选择楼盘', key: 'estate_id', type: 'selectRemote', changeHandle: this.estateChange,
+          remoteParams: { skey: 'estate_name', api: `house.admestatelist`, opKey: 'estate_name', opVal: 'id' },
+          remoteOptions: [{ keyRO: estateName, valRO: params.estate_id }]
+        },
+        { label: '签约中介', key: 'company' },
+        { label: '签约日期', label2: '开始时间', label3: '结束时间', key: 'startEndTime', type: 'datePicker', rules: 1},
+      ]
+      this.setDefaultValue(params, 'searchData')
+    },
+    estateChange (val, options, curItem) {
+      this.$router.push(`/house/price?id=${val}&name=${curItem.estate_name}`)
+      // this.$router.go(0)
+      this.searchHandle()
+    },
+    searchHandle() {
+      const oldform = this.$refs.ruleForm.baseForm
+      const newForm = { ...oldform }
+      if (newForm.startEndTime) {
+        newForm.start_at = newForm.startEndTime[0]
+        newForm.end_at = newForm.startEndTime[1]
+        delete newForm.startEndTime
+      }
+      // newForm.estate_id = this.parentData.searchForm.estate_id
+      this.$emit('change', newForm)
+    }
+  }
+}
+</script>

+ 4 - 6
src/views/cust/components/searchForm/Lineup.vue

@@ -2,7 +2,7 @@
   <base-form slot="content" ref="ruleForm" :data="searchData">
     <div slot="footer">
       <el-button :loading="listLoading" icon="el-icon-search" class="xl-form-btn bgc1" @click="searchHandle">查询</el-button>
-      <el-button :loading="listLoading" icon="el-icon-plus" class="xl-form-btn bgc2" @click="addHandle">添加</el-button>
+      <!-- <el-button :loading="listLoading" icon="el-icon-document" class="xl-form-btn bgc2" @click="toExportExcel">导出{{ this.$route.meta.title }}信息</el-button> -->
     </div>
   </base-form>
 </template>
@@ -16,15 +16,13 @@ export default {
   data() {
     return {
       searchData: [
-        { label: '姓名', key: 'name' },
+        { label: '置业经理名称', key: 'sale_name' },
+        { label: '置业联系电话', key: 'sale_phone' },
+        { label: '分类', key: 'sale_type', type: 'select', options: this.$dictData.sale_type},
       ]
     }
   },
   methods: {
-    addHandle () {
-      this.parentData.isDtlShow = true
-      this.parentData.curObj = {}
-    },
     searchHandle() {
       const oldform = this.$refs.ruleForm.baseForm
       const newForm = { ...oldform }

+ 1 - 1
src/views/cust/index.vue

@@ -80,7 +80,7 @@ export default {
         { label: '后续备注', prop: 'purchased', fullShow: true },
         { label: '创建时间', prop: 'create_at' },
         { label: '创建人', prop: 'create_by' },
-        { label: '操作', width: 200, type: 'handle2', operations:
+        { label: '操作', width: 190, type: 'handle2', operations:
           [
             { label: '跟进记录', func: this.openQPopup, btnType: 'success' },
             { label: '编辑', func: this.openPopup, btnType: 'primary' },

+ 109 - 0
src/views/cust/lineUpRecord.vue

@@ -0,0 +1,109 @@
+<template>
+  <div class="app-container">
+    <search-form
+      :list-loading="listLoading"
+      @change="searchHandle"
+    />
+    <table-list
+      :list-loading="listLoading"
+      :data="tableData2"
+      :columns="listConfig"
+      :current-page="currentPage"
+      :page-size="pageSize"
+      :total-records="totalRecords"
+      @currentChange="pageHandle"
+      :isAdd="true"
+      @add="openPopup"
+    />
+    <popup-edit
+      :isShow="isDtlShow"
+      :curObj="curObj"
+      @close="closePopup"
+    />
+  </div>
+</template>
+<script>
+import { arrToObj } from '@/utils'
+import SearchForm from './components/searchForm/LineUpRecord'
+import PopupEdit from './components/popup/LineUpRecordEdit'
+import baseTable from '_m/baseTable.js'
+export default {
+  name: 'price',
+  components: {
+    SearchForm,
+    PopupEdit,
+  },
+  provide() {
+    return {
+      parentData: this
+    }
+  },
+  mixins: [baseTable],
+  data() {
+    return {
+      apiStr: 'house.admpricelist',
+      searchForm: {},
+      isDtlShow: false,
+      // noCreated: true,
+      curObj: {},
+    }
+  },
+  computed: {
+    tableData2() {
+      const arr = [...this.tableData]
+      arr.map(item => {
+        item.floor = `${item.cur_layer}/${item.layer}`
+      })
+      return arr
+    }
+  },
+  created() {
+    const query = this.$route.query
+    this.searchForm.estate_id = query.id || ''
+  },
+  mounted() {
+    this.listConfig = {
+      rows: [
+        { label: '轮值时间', prop: 'aaaaaaaaaaaa'},
+        { label: '关联客户名称', prop: 'aaaaaaaaaaaa'},
+        { label: '购房需求(从客户表带出来)', prop: 'aaaaaaaaaaaa'},
+        { label: '客户后续(从客户表带出来)', prop: 'aaaaaaaaaaaa'},
+        { label: '更新人', prop: 'update_by' },
+        { label: '更新时间', prop: 'update_at' },
+        { label: '操作', width: 120, type: 'handle2', operations:
+          [
+            { label: '编辑', func: this.openPopup, btnType: 'primary' },
+            { label: '删除', func: this.delHandle, btnType: 'danger' },
+          ]
+        }
+      ]
+    }
+  },
+  methods: {
+    delHandle(row) {
+      this.$msg(`您确定要删除该楼盘吗?`, 'confirm', () => {
+        this.$api.house.admpricedel({
+          id: row.id,
+        }).then(data => {
+          this.$msgs(`已删除!`)
+          this.fetchData()
+        })
+      }, null, true)
+    },
+    openPopup(row) {
+      if (row && row.id) {
+        this.curObj = row
+      } else {
+        this.curObj = {}
+      }
+      this.isDtlShow = true
+    },
+    closePopup(obj) {
+      this.isDtlShow = false
+      if (obj) {
+        this.fetchData()
+      }
+    }
+  }
+}
+</script>

+ 22 - 11
src/views/cust/lineup.vue

@@ -12,8 +12,6 @@
       :page-size="pageSize"
       :total-records="totalRecords"
       @currentChange="pageHandle"
-      :isAdd="true"
-      @add="openPopup"
       :operationsDefaultLength="6"
     />
     <popup-edit
@@ -42,7 +40,7 @@ export default {
   mixins: [baseTable],
   data() {
     return {
-      apiStr: 'other.admqalist2',
+      apiStr: 'user.admsaleuserlist',
       searchForm: null,
       isDtlShow: false,
       curObj: {},
@@ -51,7 +49,8 @@ export default {
   computed: {
     tableData2() {
       const arr = [...this.tableData]
-      arr.map(item => {})
+      arr.map(item => {
+      })
       return arr
     }
   },
@@ -59,12 +58,21 @@ export default {
   mounted() {
     this.listConfig = {
       rows: [
-        { label: '标签', prop: 'question_tag', type: 'flag', flags: arrToObj(this.$dictData.question_tag), width: 120 },
-        { label: '问题', prop: 'question_cont', fullShow: true, minWidth: 200, align: 'left' },
-        { label: '答案', prop: 'answer_cont', fullShow: true, minWidth: 200, align: 'left' },
-        { label: '创建时间', prop: 'create_at' },
-        { label: '操作', width: 120, type: 'handle2', operations:
+        { label: '分类', prop: 'sale_type', type: 'flag', flags: arrToObj(this.$dictData.sale_type	) },
+        { label: '置业经理', prop: 'sale_name' },
+        { label: '头像', prop: 'sale_avatar', type: 'img' },
+        { label: '最新轮值', prop: 'aaaaaaaaaaa' },
+        { label: '轮值总次数', prop: 'aaaaaaaaaaa' },
+        { label: '门店', prop: 'aaaaaaaaaaa' },
+        { label: '联系电话', prop: 'sale_phone' },
+        { label: '销售标签', prop: 'custom_tag'},
+        { label: '微信昵称', prop: 'nickname'},
+        { label: '微信头像', prop: 'avatar', type: 'img' },
+        { label: '微信电话', prop: 'phone' },
+        { label: '更新时间', prop: 'update_at' },
+        { label: '操作', width: 190, type: 'handle2', operations:
           [
+            { label: '轮值记录', func: this.linkRecord, btnType: 'success' },
             { label: '编辑', func: this.openPopup, btnType: 'primary' },
             { label: '删除', func: this.delHandle, btnType: 'danger' },
           ]
@@ -73,9 +81,12 @@ export default {
     }
   },
   methods: {
+    linkRecord (row) {
+      this.$router.push(`/cust/lineUpRecord?id=${row.id}&name=${row.nickname}`)
+    },
     delHandle(row) {
-      this.$msg(`您确定要删除该问题吗?`, 'confirm', () => {
-        this.$api.other.admqadel({
+      this.$msg(`您确定要删除该规则吗?`, 'confirm', () => {
+        this.$api.user.admsaleuserdel({
           id: row.id
         }).then(data => {
           this.$msgs(`已删除!`)

+ 3 - 0
src/views/user/components/searchForm/Index.vue

@@ -18,6 +18,9 @@ export default {
       searchData: [
         { label: '手机号', key: 'phone' },
         { label: '昵称', key: 'nickname' },
+        { label: '角色', key: 'role_id', type: 'selectRemote',
+          remoteParams: { skey: 'name', api: `base.admroleslist`, opKey: 'name', opVal: 'id' },
+        },
       ]
     }
   },

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików