renkang
2024-12-03 4829f8e73d0c17bb87baec9637e3455daca78311
Merge remote-tracking branch 'origin/master'
已添加1个文件
已删除1个文件
已修改11个文件
140 ■■■■ 文件已修改
admin/.env 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/.env.development 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/.gitignore 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/babel.config.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/customer.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/router/index.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/client/components/OperaYwCustomerWindow.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/client/components/staffEdit.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/contract/components/config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/contract/components/contractEdit.vue 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/contract/components/terminateLease.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/login.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/vue.config.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/.env
@@ -4,7 +4,7 @@
VUE_APP_ROUTER_MODE = 'hash'
# é¡¹ç›®ä¸Šä¸‹æ–‡è·¯å¾„
VUE_APP_CONTEXT_PATH = '/'
VUE_APP_CONTEXT_PATH = '/fn_admin/#/'
# æŽ¥å£å‰ç¼€
VUE_APP_API_PREFIX = '/gateway_interface'
admin/.env.development
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
# å¼€å‘环境配置
NODE_ENV = 'development'
# é¡¹ç›®ä¸Šä¸‹æ–‡è·¯å¾„
VUE_APP_CONTEXT_PATH = './'
#VUE_APP_API_URL  = 'http://localhost:10010'
VUE_APP_API_URL  = 'http://192.168.0.163:10010'
# VUE_APP_API_URL  = 'https://dmtest.ahapp.net/fn_admin'
#  VUE_APP_API_URL  = 'http://10.50.250.253:8088/gateway_interface'
admin/.gitignore
@@ -1,7 +1,7 @@
.DS_Store
coderd.json
node_modules
.env.development
# .env.development
/dist
@@ -10,6 +10,7 @@
.env.*.local
unpackage
admin
fn_admin
# Log files
npm-debug.log*
yarn-debug.log*
admin/babel.config.js
ÎļþÒÑɾ³ý
admin/src/api/customer.js
@@ -11,3 +11,9 @@
export function list (data) {
  return request.post('/visitsAdmin/cloudService/business/ywCustomer/list', data)
}
// é˜œå®è¿ç»´ - æŸ¥è¯¢è”系人列表
export function ywList (data) {
  return request.post('/visitsAdmin/cloudService/business/member/ywList', data)
}
admin/src/router/index.js
@@ -10,7 +10,7 @@
const router = new VueRouter({
  // + (process.env.VUE_APP_ROUTER_MODE === 'hash' ? '#' : '')
  // base: process.env.VUE_APP_CONTEXT_PATH,
  base: '/',
  mode: 'hash',
  routes: [
    // ç™»å½•
admin/src/views/client/components/OperaYwCustomerWindow.vue
@@ -45,7 +45,9 @@
          <el-form-item label="证件号码" prop="member.idcardNo">
            <el-input v-model="form.member.idcardNo" placeholder="请输入" v-trim />
          </el-form-item>
          <el-form-item label="邮箱" prop="email">
          <el-form-item label="邮箱" prop="member.email" :rules="[
            { required: false, type: 'email', message: '请输入正确的邮箱格式'}
          ]">
            <el-input v-model="form.member.email" placeholder="请输入邮箱" v-trim />
          </el-form-item>
        </template>
admin/src/views/client/components/staffEdit.vue
@@ -32,7 +32,9 @@
        <el-form-item label="证件号码" prop="member.idcardNo">
          <el-input v-model="form.idcardNo" placeholder="请输入" v-trim />
        </el-form-item>
        <el-form-item label="邮箱" prop="email">
        <el-form-item label="邮箱" prop="email" :rules="[
          { required: false, type: 'email', message: '请输入正确的邮箱格式'}
        ]">
          <el-input v-model="form.email" placeholder="请输入邮箱" v-trim />
        </el-form-item>
        <el-form-item label="性别">
admin/src/views/contract/components/config.js
@@ -9,7 +9,7 @@
  roundedUp: [{ required: true, message: '请选择' }],
  companyId: [{ required: true, message: '请选择' }],
  renterName: [{ required: true, message: '请选择' }],
  memberName: [{ required: true, message: '请选择' }],
  memberId: [{ required: true, message: '请选择' }],
  zlDeposit: [{ required: true, message: '请输入' }],
  zlPayType: [{ required: true, message: '请选择' }],
  wyDeposit: [{ required: true, message: '请输入' }],
admin/src/views/contract/components/contractEdit.vue
@@ -1,6 +1,4 @@
<template>
<!--  :text="activeTabs === 0 ? '下一步' : '提交'"-->
<!--  :backText="activeTabs === 0 ? '返回' : '上一步'"-->
  <GlobalWindow
    width="100%"
    :title="title"
@@ -42,7 +40,7 @@
                <el-date-picker type="date" v-model="form.endDate" @change="getHouseData" :clearable="false" value-format="yyyy-MM-dd" placeholder="请选择" />
              </el-form-item>
              <el-form-item label="归属项目" prop="projectId">
                <el-select v-model="form.projectId" placeholder="请选择">
                <el-select v-model="form.projectId" @change="getHouseTree" placeholder="请选择">
                  <el-option v-for="(item, index) in projectList" :key="index" :value="item.id" :label="item.name"></el-option>
                </el-select>
              </el-form-item>
@@ -65,8 +63,11 @@
                  <el-input v-model="form.renterName" readonly placeholder="请点击选择租客" />
                </div>
              </el-form-item>
              <el-form-item label="联系人" prop="memberName">
                <el-input v-model="form.memberName" readonly placeholder="请点击选择租客" />
              <el-form-item label="联系人" prop="memberId">
                <el-select v-model="form.memberId" placeholder="请选择">
                  <el-option v-for="(item, index) in contactsList" :key="index" :value="item.id" :label="item.name"></el-option>
                </el-select>
<!--                <el-input v-model="form.memberName" readonly placeholder="请点击选择租客" />-->
              </el-form-item>
            </div>
          </el-form>
@@ -134,7 +135,7 @@
                <el-button type="text" size="medium" @click="addZl">增加</el-button>
              </div>
              <div class="list">
                <div v-for="(item, index) in form.zlDetailList" :key="index">
                <div style="width: 100%; display: flex; flex-wrap: wrap;" v-for="(item, index) in form.zlDetailList" :key="index">
                  <el-form-item label="起始日期" prop="time">
                    <el-date-picker type="daterange" v-model="item.time" @change="getDate1($event, index)" value-format="yyyy-MM-dd" placeholder="请选择" />
                  </el-form-item>
@@ -217,7 +218,7 @@
                <el-button type="text" size="medium" @click="addWy">增加</el-button>
              </div>
              <div class="list">
                <div v-for="(item, index) in form.wyDetailList" :key="index">
                <div style="width: 100%; display: flex; flex-wrap: wrap;" v-for="(item, index) in form.wyDetailList" :key="index">
                  <el-form-item label="起始日期" prop="time">
                    <el-date-picker type="daterange" v-model="item.time" @change="getDate2($event, index)" value-format="yyyy-MM-dd" placeholder="请选择" />
                  </el-form-item>
@@ -294,6 +295,7 @@
import MemberSearch from '@/components/common/MemberSearch'
import { rules } from './config'
import { create, getBillList } from '@/api/contract'
import { ywList } from '@/api/customer'
import { getUserList } from '@/api/system/user'
import { getProjectList, tree } from '@/api/project/ywProject'
import { companyList } from '@/api/company'
@@ -335,6 +337,7 @@
        zlDate: [],
        zlDetailList: [
          {
            circleType: 0,
            startDate: '',
            endDate: '',
            time: [],
@@ -350,6 +353,7 @@
        wyDate: [],
        wyDetailList: [
          {
            circleType: 0,
            startDate: '',
            endDate: '',
            time: [],
@@ -367,6 +371,8 @@
      wyList: [],
      
      rules,
      contactsList: [],
      loadingInstance: null,
      uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch',
@@ -388,7 +394,7 @@
        { name: '一次性付款', value: 0 },
        { name: '3个月一付', value: 1 },
        { name: '6个月一付', value: 2 },
        { name: '1年一付', value: 2 },
        { name: '1年一付', value: 3 },
      ],
      unitOps: [
        { name: '元/m²·天', value: 0 },
@@ -407,6 +413,7 @@
    open (title, target) {
      this.title = title
      this.ids = []
      this.houseList = []
      this.getUser()
      this.getProject()
      this.getCompany()
@@ -422,18 +429,20 @@
        }
        this.form.zlDetailList = [
          {
            startDate: '',
            endDate: '',
            time: [],
            circleType: 0,
            startDate: this.form.startDate,
            endDate: this.form.endDate,
            time: [this.form.startDate, this.form.endDate],
            price: '',
            advanceDays: ''
          }
        ]
        this.form.wyDetailList = [
          {
            startDate: '',
            endDate: '',
            time: [],
            circleType: 0,
            startDate: this.form.startDate,
            endDate: this.form.endDate,
            time: [this.form.startDate, this.form.endDate],
            price: '',
            advanceDays: ''
          }
@@ -444,7 +453,15 @@
        this.form.signDate = this.getDayTime()
        this.form.startDate = this.getDayTime()
        this.form.endDate = this.getDayTime(1)
        this.getHouseTree()
        // this.getHouseTree()
      })
    },
    // èŽ·å–è”ç³»äºº
    getYwList () {
      ywList({
        customerId: this.form.renterId
      }).then(res => {
        this.contactsList = res
      })
    },
    getHouseData () {
@@ -470,10 +487,34 @@
        return `${year + 1}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`;
      }
    },
    clearData () {
      this.form.zlDetailList = [
        {
          circleType: 0,
          startDate: this.form.startDate,
          endDate: this.form.endDate,
          time: [this.form.startDate, this.form.endDate],
          price: '',
          advanceDays: ''
        }
      ]
      this.form.wyDetailList = [
        {
          circleType: 0,
          startDate: this.form.startDate,
          endDate: this.form.endDate,
          time: [this.form.startDate, this.form.endDate],
          price: '',
          advanceDays: ''
        }
      ]
    },
    confirm () {
      if (this.activeTabs === 0) {
        this.$refs.form.validate((valid) => {
          if (!valid) return
          if (this.form.roomIds.length === 0) return this.$message.warning('请选择房源!')
          this.clearData()
          this.activeTabs = 1
        })
      } else if (this.activeTabs === 1) {
@@ -539,7 +580,8 @@
    getHouseTree () {
      tree({
        startDate: this.form.startDate,
        endDate: this.form.endDate
        endDate: this.form.endDate,
        projectId: this.form.projectId
      })
        .then(res => {
          res.forEach(item => {
@@ -590,18 +632,20 @@
    },
    addZl () {
      this.form.zlDetailList.push({
        startDate: '',
        endDate: '',
        time: [],
        circleType: 0,
        startDate: this.form.startDate,
        endDate: this.form.endDate,
        time: [this.form.startDate, this.form.endDate],
        price: '',
        advanceDays: ''
      })
    },
    addWy () {
      this.form.wyDetailList.push({
        startDate: '',
        endDate: '',
        time: [],
        circleType: 0,
        startDate: this.form.startDate,
        endDate: this.form.endDate,
        time: [this.form.startDate, this.form.endDate],
        price: '',
        advanceDays: ''
      })
@@ -625,8 +669,9 @@
    getTenant (row) {
      this.form.renterId = row.id
      this.form.renterName = row.name
      this.form.memberId = row.memberId
      this.form.memberName = row.memberName
      this.form.memberId = ''
      this.form.memberName = ''
      this.getYwList()
    },
    dele (imgaddr) {
      this.form.fileList.forEach((item, index) => {
@@ -718,6 +763,7 @@
  position: sticky;
  top: 0;
  left: 0;
  z-index: 999;
}
.tabs {
  border-bottom: 1px solid #DFE2E8;
admin/src/views/contract/components/terminateLease.vue
@@ -179,7 +179,7 @@
                </el-table-column>
            </el-table>
            <div class="footer">
                åˆè®¡åº”收:<span>{{receivable}}</span>元, åˆè®¡åº”付:<span>{{meet}}</span>元
                åˆè®¡åº”收:<span>{{receivable.toFixed(2)}}</span>元, åˆè®¡åº”付:<span>{{meet.toFixed(2)}}</span>元
            </div>
        </div>
        <!--    åˆ›å»ºæ”¶æ¬¾è´¦å•    -->
admin/src/views/login.vue
@@ -138,6 +138,7 @@
            }
            Cookies.set('dm_user_token', res)
            window.location.href = process.env.VUE_APP_CONTEXT_PATH
            // this.$router.push('')
          })
          .catch(e => {
            this.refreshCaptcha()
admin/vue.config.js
@@ -1,13 +1,12 @@
// è¯¦ç»†é…ç½®è¯·å‚考https://cli.vuejs.org/zh/config/#vue-config-js
// const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length - 1)
const path = require('path')
function resolve (dir) {
  return path.join(__dirname, dir)
}
module.exports = {
  publicPath: process.env.VUE_APP_CONTEXT_PATH,
  outputDir: 'admin',
  publicPath: './',
  outputDir: 'fn_admin',
  assetsDir: 'static',
  lintOnSave: false,
  devServer: {