Merge remote-tracking branch 'origin/master'
| | |
| | | VUE_APP_ROUTER_MODE = 'hash' |
| | | |
| | | # 项ç®ä¸ä¸æè·¯å¾ |
| | | VUE_APP_CONTEXT_PATH = '/' |
| | | VUE_APP_CONTEXT_PATH = '/fn_admin/#/' |
| | | |
| | | # æ¥å£åç¼ |
| | | VUE_APP_API_PREFIX = '/gateway_interface' |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # å¼åç¯å¢é
ç½® |
| | | 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' |
| | | |
| | |
| | | .DS_Store |
| | | coderd.json |
| | | node_modules |
| | | .env.development |
| | | # .env.development |
| | | /dist |
| | | |
| | | |
| | |
| | | .env.*.local |
| | | unpackage |
| | | admin |
| | | fn_admin |
| | | # Log files |
| | | npm-debug.log* |
| | | yarn-debug.log* |
| | |
| | | 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) |
| | | } |
| | | |
| | |
| | | |
| | | const router = new VueRouter({ |
| | | // + (process.env.VUE_APP_ROUTER_MODE === 'hash' ? '#' : '') |
| | | // base: process.env.VUE_APP_CONTEXT_PATH, |
| | | base: '/', |
| | | mode: 'hash', |
| | | routes: [ |
| | | // ç»å½ |
| | |
| | | <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> |
| | |
| | | <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="æ§å«"> |
| | |
| | | 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: '请è¾å
¥' }], |
| | |
| | | <template> |
| | | <!-- :text="activeTabs === 0 ? 'ä¸ä¸æ¥' : 'æäº¤'"--> |
| | | <!-- :backText="activeTabs === 0 ? 'è¿å' : 'ä¸ä¸æ¥'"--> |
| | | <GlobalWindow |
| | | width="100%" |
| | | :title="title" |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | 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' |
| | |
| | | zlDate: [], |
| | | zlDetailList: [ |
| | | { |
| | | circleType: 0, |
| | | startDate: '', |
| | | endDate: '', |
| | | time: [], |
| | |
| | | wyDate: [], |
| | | wyDetailList: [ |
| | | { |
| | | circleType: 0, |
| | | startDate: '', |
| | | endDate: '', |
| | | time: [], |
| | |
| | | wyList: [], |
| | | |
| | | rules, |
| | | |
| | | contactsList: [], |
| | | |
| | | loadingInstance: null, |
| | | uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch', |
| | |
| | | { name: '䏿¬¡æ§ä»æ¬¾', value: 0 }, |
| | | { name: '3个æä¸ä»', value: 1 }, |
| | | { name: '6个æä¸ä»', value: 2 }, |
| | | { name: '1å¹´ä¸ä»', value: 2 }, |
| | | { name: '1å¹´ä¸ä»', value: 3 }, |
| | | ], |
| | | unitOps: [ |
| | | { name: 'å
/m²·天', value: 0 }, |
| | |
| | | open (title, target) { |
| | | this.title = title |
| | | this.ids = [] |
| | | this.houseList = [] |
| | | this.getUser() |
| | | this.getProject() |
| | | this.getCompany() |
| | |
| | | } |
| | | 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: '' |
| | | } |
| | |
| | | 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 () { |
| | |
| | | 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) { |
| | |
| | | getHouseTree () { |
| | | tree({ |
| | | startDate: this.form.startDate, |
| | | endDate: this.form.endDate |
| | | endDate: this.form.endDate, |
| | | projectId: this.form.projectId |
| | | }) |
| | | .then(res => { |
| | | res.forEach(item => { |
| | |
| | | }, |
| | | 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: '' |
| | | }) |
| | |
| | | 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) => { |
| | |
| | | position: sticky; |
| | | top: 0; |
| | | left: 0; |
| | | z-index: 999; |
| | | } |
| | | .tabs { |
| | | border-bottom: 1px solid #DFE2E8; |
| | |
| | | </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> |
| | | <!-- åå»ºæ¶æ¬¾è´¦å --> |
| | |
| | | } |
| | | Cookies.set('dm_user_token', res) |
| | | window.location.href = process.env.VUE_APP_CONTEXT_PATH |
| | | // this.$router.push('') |
| | | }) |
| | | .catch(e => { |
| | | this.refreshCaptcha() |
| | |
| | | // 详ç»é
置请åè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: { |