Merge branch 'master' of http://139.186.142.91:10010/r/productDev/funingyunwei
已添加2个文件
已删除52个文件
已修改42个文件
| | |
| | | export function companyList (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/company/list', data) |
| | | } |
| | | // å表 |
| | | export function companyListConstract (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/company/listForConstract', data) |
| | | } |
| | |
| | | <el-form-item :label="form.type==1?'å¸åç§°':'å¿åºåç§°'" prop="name"> |
| | | <el-input v-model="form.name" :placeholder="form.type==1?'è¾å
¥å¸åç§°':'è¾å
¥å¿åºåç§°'" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | <el-form-item label="è¡æ¿åºä»£ç " prop="code"> |
| | | <el-input v-model="form.code" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item>--> |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| | | </template> |
| | |
| | | id: null, |
| | | parentId: null, |
| | | name: null, |
| | | code:null, |
| | | sortnum: '0', |
| | | type: null |
| | | }, |
| | |
| | | <template> |
| | | <GlobalWindow title="å·¡æ£ä»»å¡è¯¦æ
" :showConfirm="false" :visible.sync="isShowModal"> |
| | | <GlobalWindow title="å·¡æ£ä»»å¡è¯¦æ
" width="800px" :showConfirm="false" :visible.sync="isShowModal"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getDetail(1)" @clear="clear" /> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="pointName" label="å·¡æ£ç¹åç§°" min-width="100" show-overflow-tooltip /> |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="realname" label="å·¡æ£äºº" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="editDate" label="å·¡æ£æ¶é´" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="å·¡æ£ç»æ" min-width="100" show-overflow-tooltip> |
| | | <el-table-column prop="files" label="å·¡æ£ç»æ" min-width="100" show-overflow-tooltip > |
| | | <template v-slot="{ row }"> |
| | | <span class="gray" v-if="row.dealStatus == 0">æ£å¸¸</span> |
| | | <span class="red" v-if="row.dealStatus == 1">å¼å¸¸</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="" label="å·¡æ£éä»¶" min-width="100" show-overflow-tooltip> |
| | | <template v-slot="{ row }"> |
| | | <div class="value" v-if="row.multifileList != null && row.multifileList.length"> |
| | | <div v-for="item in row.multifileList" :key="item.id" style="display: inline;margin-right: 20px"> |
| | | <video v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')" ref="videoRef" controls preload="auto" |
| | | style="width: 60px;height: 60px;object-fit: contain;" :src="item.fileurlFull" /> |
| | | <el-image v-else-if="item.fileurlFull" style="width:60px; height: 60px" :src="item.fileurlFull" |
| | | :preview-src-list="[item.fileurlFull]"> |
| | | </el-image> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="dealInfo" label="å·¡æ£è¯´æ" min-width="100" show-overflow-tooltip /> |
| | | </el-table> |
| | | <div class="mt20"> |
| | |
| | | <TableLayout :permissions="['business:ywpatrolscheme:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="å¼å§æ¥æ" prop="selDate"> |
| | | <el-date-picker type="daterange" v-model="searchForm.selDate" @change="changeSelDate" clearable value-format="yyyy-MM-dd" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¥æ" prop="selDateSec"> |
| | | <el-date-picker type="daterange" v-model="searchForm.selDateSec" @change="changeSelDateSec" clearable value-format="yyyy-MM-dd" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="计ååç§°" prop="title"> |
| | | <el-input v-model="searchForm.title" placeholder="请è¾å
¥è®¡ååç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="è®¡åæ¥æ" prop="selDate"> |
| | | <el-date-picker type="daterange" v-model="searchForm.selDate" clearable value-format="yyyy-MM-dd" |
| | | @change="changeDate" /> |
| | | </el-form-item> |
| | | |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | title: '' |
| | | title: '', |
| | | selDate:[], |
| | | selDateSec:[] |
| | | } |
| | | } |
| | | }, |
| | |
| | | this.search() |
| | | }) |
| | | }, |
| | | changeDate(e) { |
| | | if (e && e.length > 0) { |
| | | this.$set(this.searchForm, 'startDate', e[0]) |
| | | this.$set(this.searchForm, 'endDate', e[1]) |
| | | } else { |
| | | this.$set(this.searchForm, 'startDate', '') |
| | | this.$set(this.searchForm, 'endDate', '') |
| | | } |
| | | |
| | | }, |
| | | reset() { |
| | | this.searchForm = {} |
| | | this.search() |
| | |
| | | this.$refs.operaYwPatrolSchemeWindow.initData() |
| | | |
| | | }, |
| | | changeSelDate(e) { |
| | | if (e && e.length > 0) { |
| | | this.$set(this.searchForm, 'startDate', e[0] ) |
| | | this.$set(this.searchForm, 'endDate', e[1] ) |
| | | } else { |
| | | this.$set(this.searchForm, 'startDate', '') |
| | | this.$set(this.searchForm, 'endDate', '') |
| | | } |
| | | }, |
| | | changeSelDateSec(e) { |
| | | if (e && e.length > 0) { |
| | | this.$set(this.searchForm, 'startDateSec', e[0] ) |
| | | this.$set(this.searchForm, 'endDateSec', e[1] ) |
| | | } else { |
| | | this.$set(this.searchForm, 'startDateSec', '') |
| | | this.$set(this.searchForm, 'endDateSec', '') |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <el-form-item label="计ååç§°" prop="planTitle"> |
| | | <el-input v-model="searchForm.planTitle" placeholder="请è¾å
¥è®¡ååç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ä»»å¡ç¶æ"> |
| | | <el-form-item label="ä»»å¡ç¶æ" prop="status"> |
| | | <el-select v-model="searchForm.status" label="ä»»å¡ç¶æ" filterable clearable> |
| | | <el-option value="0" label="å¾
å¼å§"></el-option> |
| | | <el-option value="1" label="è¿è¡ä¸"></el-option> |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column prop="name" label="å°åºåç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="code" label="è¡æ¿åºä»£ç " align="center" min-width="140px"></el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" align="center" min-width="140px"></el-table-column> |
| | | <!-- |
| | | <el-table-column prop="sortnum" label="æåºç " align="center" min-width="140px"></el-table-column> |
| | | --> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:areas:update', 'business:areas:create', 'business:areas:delete'])" |
| | | label="æä½" |
| | |
| | | label="è´¦åæ¥æº"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.type === 0">ååè´¦å</span> |
| | | <span v-if="row.type === 1">èªå»ºè´¦å</span> |
| | | <span v-else>èªå»ºè´¦å</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | page: 1, |
| | | total: 0, |
| | | tableData: [], |
| | | |
| | | |
| | | loading: false |
| | | } |
| | | }, |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | width="100%" |
| | | :title="title" |
| | | :withFooter="false" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | @close="close"> |
| | | <GlobalWindow width="100%" :title="title" :withFooter="false" :visible.sync="visible" :confirm-working="isWorking" |
| | | @confirm="confirm" @close="close"> |
| | | <div class="tabs fixed"> |
| | | <div class="tab" :class="{ active: activeTabs === 0 }">1ãåºæ¬ä¿¡æ¯</div> |
| | | <div class="tab" :class="{ active: activeTabs === 1 }">2ãè´¹ç¨æ¡æ¬¾</div> |
| | |
| | | <div class="list"> |
| | | <el-form-item label="ååç±»å" prop="type"> |
| | | <el-select v-model="form.type" placeholder="è¯·éæ©" @change="changeType"> |
| | | <el-option v-for="(item, index) in types" :key="index" :value="item.value" :label="item.name"></el-option> |
| | | <el-option v-for="(item, index) in types" :key="index" :value="item.value" |
| | | :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ååç¼å·" prop="code"> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="ç»å人" prop="userId"> |
| | | <el-select v-model="form.userId" filterable placeholder="è¯·éæ©"> |
| | | <el-option v-for="(item, index) in agentList" :key="index" :value="item.id" :label="item.realname"></el-option> |
| | | <el-option v-for="(item, index) in agentList" :key="index" :value="item.id" |
| | | :label="item.realname"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ååç¾è®¢æ¥æ" prop="signDate"> |
| | | <el-date-picker type="date" v-model="form.signDate" value-format="yyyy-MM-dd" :clearable="false" placeholder="è¯·éæ©" /> |
| | | <el-date-picker type="date" v-model="form.signDate" value-format="yyyy-MM-dd" :clearable="false" |
| | | placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="ååå¼å§æ¥æ" prop="startDate"> |
| | | <el-date-picker type="date" v-model="form.startDate" @change="getHouseData" :clearable="false" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | <el-date-picker type="date" v-model="form.startDate" @change="getHouseData" :clearable="false" |
| | | value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="ååç»ææ¥æ" prop="endDate"> |
| | | <el-date-picker type="date" v-model="form.endDate" @change="getHouseData" :clearable="false" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | <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" @change="getHouseTree" placeholder="è¯·éæ©"> |
| | | <el-option v-for="(item, index) in projectList" :key="index" :value="item.id" :label="item.name"></el-option> |
| | | <el-option v-for="(item, index) in projectList" :key="index" :value="item.id" |
| | | :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç»æåæ´(åèäºå
¥)" prop="roundedUp"> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="æå±å
¬å¸" prop="companyId"> |
| | | <el-select v-model="form.companyId" placeholder="è¯·éæ©"> |
| | | <el-option v-for="(item, index) in comparyList" :key="index" :value="item.id" :label="item.name"></el-option> |
| | | <el-option v-for="(item, index) in comparyList" :key="index" :value="item.id" |
| | | :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | |
| | | </el-form-item> |
| | | <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-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-input v-model="form.memberName" readonly placeholder="请ç¹å»éæ©ç§å®¢" />--> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | <div class="main_house"> |
| | | <div class="title">è¯·éæ©æ¿æº</div> |
| | | <el-tree |
| | | :data="houseList" |
| | | show-checkbox |
| | | node-key="idd" |
| | | @check="checkHouseRoom" |
| | | :default-expanded-keys="ids" |
| | | :default-checked-keys="ids" |
| | | :props="{ children: 'projectDataVOList', label: 'name' }"> |
| | | <span class="custom-tree-node" style="width: 100%; display: flex; align-items: center; justify-content: space-between;" slot-scope="{ node, data }"> |
| | | <el-tree :data="houseList" show-checkbox node-key="idd" @check="checkHouseRoom" :default-expanded-keys="ids" |
| | | :default-checked-keys="ids" :props="{ children: 'projectDataVOList', label: 'name' }"> |
| | | <span class="custom-tree-node" |
| | | style="width: 100%; display: flex; align-items: center; justify-content: space-between;" |
| | | slot-scope="{ node, data }"> |
| | | <span>{{ data.name }}</span> |
| | | <span style="color: #2080f7;" v-if="data.lv === 3"> |
| | | {{ data.area }}ã¡ |
| | |
| | | </div> |
| | | <div v-show="activeTabs === 1"> |
| | | <div class="tabs cost_tabs"> |
| | | <div class="tab" :class="{ active: cactiveTabs === 0 }" @click="ctabsClick(0)" v-if="[0,2].includes(form.type)">ç§èµæ¡æ¬¾</div> |
| | | <div class="tab" :class="{ active: cactiveTabs === 1 }" @click="ctabsClick(1)" v-if="[0,1].includes(form.type)">ç©ä¸æ¡æ¬¾</div> |
| | | <div class="tab" :class="{ active: cactiveTabs === 0 }" @click="ctabsClick(0)" v-if="[0, 2].includes(form.type)"> |
| | | ç§èµæ¡æ¬¾ |
| | | </div> |
| | | <div class="tab" :class="{ active: cactiveTabs === 1 }" @click="ctabsClick(1)" v-if="[0, 1].includes(form.type)"> |
| | | ç©ä¸æ¡æ¬¾ |
| | | </div> |
| | | </div> |
| | | <!-- ç§èµæ¡æ¬¾ --> |
| | | <div v-show="cactiveTabs === 0"> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="仿¬¾æ¹å¼" prop="zlPayType"> |
| | | <el-select v-model="form.zlPayType" @change="changePayType" placeholder="è¯·éæ©"> |
| | | <el-option v-for="(item, index) in payMethods" :key="index" :value="item.value" :label="item.name"></el-option> |
| | | <el-option v-for="(item, index) in payMethods" :key="index" :value="item.value" |
| | | :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å
ç§æ" prop="zlDate"> |
| | |
| | | <el-button type="text" size="medium" @click="addZl">å¢å </el-button> |
| | | </div> |
| | | <div class="list"> |
| | | <div style="width: 100%; display: flex; flex-wrap: wrap;" v-for="(zlDetailList, index) in form.zlDetailList" :key="index"> |
| | | <div style="width: 100%; display: flex; flex-wrap: wrap;" |
| | | v-for="(zlDetailList, index) in form.zlDetailList" :key="index"> |
| | | <el-form-item label="èµ·å§æ¥æ" :prop="'zlDetailList.' + index + '.time'" :rules="{ |
| | | required: true, message: 'è¯·éæ©', trigger: 'blur' |
| | | }"> |
| | | <el-date-picker type="daterange" v-model="zlDetailList.time" @change="getDate1($event, index)" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | <el-date-picker type="daterange" v-model="zlDetailList.time" @change="getDate1($event, index)" |
| | | value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="åååä»·" :prop="'zlDetailList.' + index + '.price'" :rules="{ |
| | | required: true, message: '请è¾å
¥', trigger: 'blur' |
| | | }"> |
| | | <el-input placeholder="请è¾å
¥" v-model="zlDetailList.price" @input="clearzl" class="input-with-select"> |
| | | <el-select v-model="zlDetailList.circleType" @change="clearzl" style="width: 150px;" slot="append" placeholder="è¯·éæ©"> |
| | | <el-option v-for="(item, index) in unitOps" :key="index" :value="item.value" :label="item.name"></el-option> |
| | | <el-select v-model="zlDetailList.circleType" @change="clearzl" style="width: 150px;" slot="append" |
| | | placeholder="è¯·éæ©"> |
| | | <el-option v-for="(item, index) in unitOps" :key="index" :value="item.value" |
| | | :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-input> |
| | | </el-form-item> |
| | |
| | | }"> |
| | | <div style="display: flex; align-items: center; justify-content: space-between;"> |
| | | <el-input v-model="zlDetailList.advanceDays" @input="clearzl" placeholder="请è¾å
¥" v-trim /> |
| | | <el-link :underline="false" type="danger" @click="deleZl(index)" style="margin-left: 20px; flex-shrink: 0;">å é¤</el-link> |
| | | <el-link :underline="false" type="danger" @click="deleZl(index)" |
| | | style="margin-left: 20px; flex-shrink: 0;">å é¤</el-link> |
| | | </div> |
| | | </el-form-item> |
| | | </div> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="ææ°" align="center" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | <el-tag type="success" v-if="row.sortnum > 0">{{row.sortnum}}</el-tag> |
| | | <el-tag type="success" v-if="row.sortnum > 0">{{ row.sortnum }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="åºé´" align="center" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | {{row.startDate}} ~ {{row.endDate}} |
| | | {{ row.startDate }} ~ {{ row.endDate }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="planPayDate" label="仿¬¾æ¥" align="center" show-overflow-tooltip /> |
| | | <el-table-column label="åºæ¶" align="center" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | {{row.receivableFee}}å
|
| | | {{ row.receivableFee }}å
|
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="total"> |
| | | <span>æ»è®¡</span> |
| | | <div>è´¹ç¨åºæ¶æ»è®¡ï¼{{zlPrice}}å
ï¼æ¼éåºæ¶æ»è®¡ï¼{{form.zlDeposit}}å
</div> |
| | | <div>è´¹ç¨åºæ¶æ»è®¡ï¼{{ zlPrice }}å
ï¼æ¼éåºæ¶æ»è®¡ï¼{{ form.zlDeposit }}å
</div> |
| | | </div> |
| | | </div> |
| | | <!-- ç©ä¸æ¡æ¬¾ --> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="仿¬¾æ¹å¼" prop="wyPayType"> |
| | | <el-select v-model="form.wyPayType" @change="changePayType1" placeholder="è¯·éæ©"> |
| | | <el-option v-for="(item, index) in payMethods" :key="index" :value="item.value" :label="item.name"></el-option> |
| | | <el-option v-for="(item, index) in payMethods" :key="index" :value="item.value" |
| | | :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å
ç§æ" prop="wyDate"> |
| | |
| | | <el-button type="text" size="medium" @click="addWy">å¢å </el-button> |
| | | </div> |
| | | <div class="list"> |
| | | <div style="width: 100%; display: flex; flex-wrap: wrap;" v-for="(wyDetailList, index) in form.wyDetailList" :key="index"> |
| | | <div style="width: 100%; display: flex; flex-wrap: wrap;" |
| | | v-for="(wyDetailList, index) in form.wyDetailList" :key="index"> |
| | | <el-form-item label="èµ·å§æ¥æ" :prop="'wyDetailList.' + index + '.time'" :rules="{ |
| | | required: true, message: '请è¾å
¥', trigger: 'blur' |
| | | }"> |
| | | <el-date-picker type="daterange" v-model="wyDetailList.time" @change="getDate2($event, index)" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | <el-date-picker type="daterange" v-model="wyDetailList.time" @change="getDate2($event, index)" |
| | | value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="åååä»·" :prop="'wyDetailList.' + index + '.price'" :rules="{ |
| | | required: true, message: '请è¾å
¥', trigger: 'blur' |
| | | }"> |
| | | <el-input placeholder="请è¾å
¥" @input="clearwy" v-model="wyDetailList.price"> |
| | | <el-select v-model="wyDetailList.circleType" @change="clearwy" style="width: 150px;" slot="append" placeholder="è¯·éæ©"> |
| | | <el-option v-for="(item, index) in unitOps1" :key="index" :value="item.value" :label="item.name"></el-option> |
| | | <el-select v-model="wyDetailList.circleType" @change="clearwy" style="width: 150px;" slot="append" |
| | | placeholder="è¯·éæ©"> |
| | | <el-option v-for="(item, index) in unitOps1" :key="index" :value="item.value" |
| | | :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-input> |
| | | </el-form-item> |
| | |
| | | }"> |
| | | <div style="display: flex; align-items: center; justify-content: space-between;"> |
| | | <el-input v-model="wyDetailList.advanceDays" @input="clearwy" placeholder="请è¾å
¥" v-trim /> |
| | | <el-link :underline="false" type="danger" @click="deleWy(index)" style="margin-left: 20px; flex-shrink: 0;">å é¤</el-link> |
| | | <el-link :underline="false" type="danger" @click="deleWy(index)" |
| | | style="margin-left: 20px; flex-shrink: 0;">å é¤</el-link> |
| | | </div> |
| | | </el-form-item> |
| | | </div> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="ææ°" align="center" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | <el-tag type="success" v-if="row.sortnum > 0">{{row.sortnum}}</el-tag> |
| | | <el-tag type="success" v-if="row.sortnum > 0">{{ row.sortnum }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="åºé´" align="center" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | {{row.startDate}} ~ {{row.endDate}} |
| | | {{ row.startDate }} ~ {{ row.endDate }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="planPayDate" label="仿¬¾æ¥" align="center" show-overflow-tooltip /> |
| | | <el-table-column prop="receivableFee" label="åºæ¶" align="center" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | {{row.receivableFee}}å
|
| | | {{ row.receivableFee }}å
|
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="total"> |
| | | <span>æ»è®¡</span> |
| | | <div>è´¹ç¨åºæ¶æ»è®¡ï¼{{wyPrice}}å
ï¼æ¼éåºæ¶æ»è®¡ï¼{{form.wyDeposit}}å
</div> |
| | | <div>è´¹ç¨åºæ¶æ»è®¡ï¼{{ wyPrice }}å
ï¼æ¼éåºæ¶æ»è®¡ï¼{{ form.wyDeposit }}å
</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="window__footer"> |
| | | <slot name="footer"> |
| | | <el-button @click="confirm" :loading="confirmWorking" type="primary">{{activeTabs === 0 ? 'ä¸ä¸æ¥' : 'æäº¤'}}</el-button> |
| | | <el-button @click="confirm" :loading="confirmWorking" type="primary">{{ activeTabs === 0 ? 'ä¸ä¸æ¥' : |
| | | 'æäº¤'}}</el-button> |
| | | <slot name="btns" /> |
| | | <el-button @click="close">{{activeTabs === 0 ? 'è¿å' : 'ä¸ä¸æ¥'}}</el-button> |
| | | <el-button @click="close">{{ activeTabs === 0 ? 'è¿å' : 'ä¸ä¸æ¥' }}</el-button> |
| | | </slot> |
| | | </div> |
| | | <!-- éæ©ç§å®¢ --> |
| | |
| | | import { ywList } from '@/api/customer' |
| | | import { getUserList } from '@/api/system/user' |
| | | import { getProjectList, tree } from '@/api/project/ywProject' |
| | | import { companyList } from '@/api/company' |
| | | import {companyListConstract as companyList } from '@/api/company' |
| | | import { Message, Loading } from 'element-ui' |
| | | import { mapState } from 'vuex' |
| | | export default { |
| | |
| | | computed: { |
| | | ...mapState(['userInfo']) |
| | | }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | title: 'å建åå', |
| | | activeTabs: 0, |
| | |
| | | memberId: '', |
| | | memberName: '', |
| | | fileList: [], |
| | | |
| | | |
| | | zlDeposit: '', |
| | | zlPayType: '', |
| | | zlFreeStartDate: '', |
| | |
| | | advanceDays: '' |
| | | } |
| | | ], |
| | | |
| | | |
| | | |
| | | wyDeposit: '', |
| | | wyPayType: '', |
| | | wyFreeStartDate: '', |
| | |
| | | advanceDays: '' |
| | | } |
| | | ], |
| | | |
| | | |
| | | roomIds: [] |
| | | }, |
| | | |
| | | |
| | | ids: [], |
| | | |
| | | |
| | | zlList: [], |
| | | wyList: [], |
| | | |
| | | |
| | | rules, |
| | | |
| | | |
| | | contactsList: [], |
| | | |
| | | loadingInstance: null, |
| | |
| | | { name: 'å
/m²·年', value: 2 }, |
| | | { name: 'å
/åº', value: 6 }, |
| | | ], |
| | | |
| | | |
| | | |
| | | houseLvThree: [] |
| | | } |
| | | }, |
| | | methods: { |
| | | open (title, target) { |
| | | open(title, target) { |
| | | this.title = title |
| | | this.ids = [] |
| | | this.houseList = [] |
| | |
| | | // this.getHouseTree() |
| | | }) |
| | | }, |
| | | changePayType (e) { |
| | | changePayType(e) { |
| | | if (e === 0) { |
| | | this.unitOps = [ |
| | | { name: 'å
/m²·天', value: 0 }, |
| | |
| | | } |
| | | this.clearzl() |
| | | }, |
| | | changePayType1 (e) { |
| | | changePayType1(e) { |
| | | if (e === 0) { |
| | | this.unitOps1 = [ |
| | | { name: 'å
/m²·天', value: 0 }, |
| | |
| | | this.clearwy() |
| | | }, |
| | | // è·åè系人 |
| | | getYwList () { |
| | | getYwList() { |
| | | ywList({ |
| | | customerId: this.form.renterId |
| | | }).then(res => { |
| | | this.contactsList = res |
| | | }) |
| | | }, |
| | | getHouseData () { |
| | | getHouseData() { |
| | | if (this.form.startDate && this.form.endDate) { |
| | | this.getHouseTree() |
| | | if (this.form.zlDetailList.length === 1) { |
| | |
| | | } |
| | | } |
| | | }, |
| | | changeType (e) { |
| | | changeType(e) { |
| | | if (e === 0 || e === 2) { |
| | | this.cactiveTabs = 0 |
| | | } else if (e === 0 || e === 1) { |
| | | this.cactiveTabs = 1 |
| | | } |
| | | }, |
| | | getDayTime (num) { |
| | | const today = new Date(); |
| | | const year = today.getFullYear(); |
| | | const month = today.getMonth() + 1; |
| | | const day = today.getDate(); |
| | | getDayTime(num) { |
| | | const today = new Date() |
| | | const year = today.getFullYear() |
| | | const month = today.getMonth() + 1 |
| | | const day = today.getDate() |
| | | if (!num) { |
| | | return `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`; |
| | | return `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}` |
| | | } else { |
| | | return `${year + 1}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day - 1 : day - 1}`; |
| | | return `${year + 1}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day - 1 : day - 1}` |
| | | } |
| | | }, |
| | | clearzl () { |
| | | clearzl() { |
| | | this.zlList = [] |
| | | this.zlPrice = '' |
| | | }, |
| | | clearwy () { |
| | | clearwy() { |
| | | this.wyList = [] |
| | | this.wyPrice = '' |
| | | }, |
| | | confirm () { |
| | | confirm() { |
| | | var that = this |
| | | if (this.activeTabs === 0) { |
| | | this.$refs.form.validate((valid) => { |
| | |
| | | } |
| | | } |
| | | }, |
| | | submit () { |
| | | submit() { |
| | | // è°ç¨æ°å»ºæ¥å£ |
| | | this.isWorking = true |
| | | create({ ...this.form }) |
| | |
| | | this.isWorking = false |
| | | }) |
| | | }, |
| | | getDate1 (e, index) { |
| | | getDate1(e, index) { |
| | | this.form.zlDetailList[index].startDate = e[0] |
| | | this.form.zlDetailList[index].endDate = e[1] |
| | | this.clearzl() |
| | | }, |
| | | getDate2 (e, index) { |
| | | getDate2(e, index) { |
| | | this.form.wyDetailList[index].startDate = e[0] |
| | | this.form.wyDetailList[index].endDate = e[1] |
| | | this.clearwy() |
| | | }, |
| | | checkHouseRoom (a, b) { |
| | | checkHouseRoom(a, b) { |
| | | this.ids = b.checkedKeys |
| | | let arr = b.checkedKeys.map(item => { |
| | | if (item.split('-')[0] == 3) { |
| | | return Number(item.split('-')[1]) |
| | | } |
| | | }) |
| | | this.form.roomIds = arr.filter(item => item !== undefined); |
| | | this.form.roomIds = arr.filter(item => item !== undefined) |
| | | }, |
| | | getHouseTree () { |
| | | getHouseTree() { |
| | | tree({ |
| | | startDate: this.form.startDate, |
| | | endDate: this.form.endDate, |
| | |
| | | }, |
| | | addParamToArray(arr) { |
| | | for (let i = 0; i < arr.length; i++) { |
| | | const currentItem = arr[i].projectDataVOList; |
| | | const currentItem = arr[i].projectDataVOList |
| | | arr[i].idd = arr[i].lv + '-' + arr[i].id |
| | | if (currentItem.length > 0) { |
| | | this.addParamToArray(currentItem); |
| | | this.addParamToArray(currentItem) |
| | | } |
| | | } |
| | | }, |
| | | generateZL () { |
| | | generateZL() { |
| | | getBillList({ ...this.form, billType: 0 }) |
| | | .then(res => { |
| | | let zlPrice = 0 |
| | |
| | | this.zlList = arr |
| | | }) |
| | | }, |
| | | generateWY () { |
| | | generateWY() { |
| | | getBillList({ ...this.form, billType: 1 }) |
| | | .then(res => { |
| | | this.wy = true |
| | |
| | | this.wyList = arr |
| | | }) |
| | | }, |
| | | addZl () { |
| | | addZl() { |
| | | this.form.zlDetailList.push({ |
| | | circleType: 0, |
| | | startDate: this.form.startDate, |
| | |
| | | advanceDays: '' |
| | | }) |
| | | }, |
| | | addWy () { |
| | | addWy() { |
| | | this.form.wyDetailList.push({ |
| | | circleType: 0, |
| | | startDate: this.form.startDate, |
| | |
| | | this.form.wyDetailList.splice(index, 1) |
| | | this.clearwy() |
| | | }, |
| | | getZLDate (e) { |
| | | getZLDate(e) { |
| | | this.form.zlFreeStartDate = e[0] |
| | | this.form.zlFreeEndDate = e[1] |
| | | this.clearzl() |
| | | }, |
| | | getWYDate (e) { |
| | | getWYDate(e) { |
| | | this.form.wyFreeStartDate = e[0] |
| | | this.form.wyFreeEndDate = e[1] |
| | | this.clearwy() |
| | | }, |
| | | getTenant (row) { |
| | | getTenant(row) { |
| | | this.form.renterId = row.id |
| | | this.form.renterName = row.name |
| | | this.form.memberId = '' |
| | | this.form.memberName = '' |
| | | this.getYwList() |
| | | }, |
| | | dele (imgaddr) { |
| | | dele(imgaddr) { |
| | | this.form.fileList.forEach((item, index) => { |
| | | if (imgaddr === item.imgaddr) { |
| | | this.form.fileList.splice(index, 1) |
| | | } |
| | | }) |
| | | }, |
| | | getUser () { |
| | | getUser() { |
| | | getUserList({}) |
| | | .then(res => { |
| | | this.agentList = res |
| | | }) |
| | | }, |
| | | getProject () { |
| | | getProject() { |
| | | getProjectList({}) |
| | | .then(res => { |
| | | this.projectList = res |
| | | this.projectList = res || [] |
| | | if (this.projectList.length > 0) { |
| | | this.$set(this.form, 'projectId', this.projectList[0].id) |
| | | this.getHouseTree() |
| | | } |
| | | }) |
| | | }, |
| | | getCompany () { |
| | | getCompany() { |
| | | companyList({ type: 2 }) |
| | | .then(res => { |
| | | this.comparyList = res |
| | | this.form.companyId = res[0].id |
| | | }) |
| | | }, |
| | | tabsClick (val) { |
| | | tabsClick(val) { |
| | | this.activeTabs = val |
| | | }, |
| | | ctabsClick (val) { |
| | | ctabsClick(val) { |
| | | this.cactiveTabs = val |
| | | }, |
| | | handleRent () { |
| | | handleRent() { |
| | | this.$refs.MemberSearchRef.open() |
| | | }, |
| | | houseChange (e) { |
| | | houseChange(e) { |
| | | console.log(e) |
| | | }, |
| | | beforeUpload (file) { |
| | | beforeUpload(file) { |
| | | this.loadingInstance = Loading.service({ |
| | | lock: true, |
| | | text: 'Loading', |
| | |
| | | background: 'rgba(0, 0, 0, 0.7)' |
| | | }) |
| | | }, |
| | | uploadError () { |
| | | uploadError() { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | if (this.loadingInstance) { |
| | | this.loadingInstance.close() |
| | | } |
| | | }) |
| | | }, |
| | | getDay () { |
| | | getDay() { |
| | | const now = new Date() |
| | | const year = now.getFullYear() |
| | | const month = now.getMonth() + 1 // å 1使å
¶ä»1å¼å§ |
| | |
| | | const hours = now.getHours() |
| | | const minutes = now.getMinutes() |
| | | const seconds = now.getSeconds() |
| | | return `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')} ${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`; |
| | | return `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')} ${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}` |
| | | }, |
| | | uploadAvatarSuccess (file) { |
| | | uploadAvatarSuccess(file) { |
| | | this.$nextTick(() => { |
| | | if (this.loadingInstance) { |
| | | this.loadingInstance.close() |
| | |
| | | const item = file.data[0] |
| | | this.form.fileList.push({ ...item, fileurl: item.imgaddr, name: item.originname, userName: this.userInfo.realname, createTime: this.getDay() }) |
| | | }, |
| | | close () { |
| | | close() { |
| | | if (this.activeTabs === 0) { |
| | | this.$emit('close') |
| | | this.visible = false |
| | |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '@/assets/style/variables.scss'; |
| | | |
| | | .fixed { |
| | | background: #ffffff; |
| | | position: sticky; |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | span { |
| | | font-weight: 500; |
| | | font-size: 14px; |
| | |
| | | }) |
| | | }, |
| | | methods: { |
| | | open (title, target,type) { |
| | | open(title, target, type) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.getProject() |
| | |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | this.form.type=type |
| | | this.form.type = type |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | console.log('----'); |
| | | |
| | | console.log('----') |
| | | |
| | | this.getDetail(target.id) |
| | | }) |
| | | }, |
| | |
| | | getProject() { |
| | | getProjectList({}).then(res => { |
| | | this.projectList = res || [] |
| | | if (this.projectList.length > 0) { |
| | | this.$set(this.form, 'projectId', this.projectList[0].id) |
| | | // this.changeProject(this.projectList[0].id) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | |
| | | this.title = title |
| | | this.visible = true |
| | | this.getProject() |
| | | this.buildList = [] |
| | | this.floorList = [] |
| | | // æ°å»ºç»ç» |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | |
| | | this.getDetail(target.id) |
| | | }) |
| | | }, |
| | | confirm () { |
| | | if(!this.form.feeArea){ |
| | | confirm() { |
| | | if (!this.form.feeArea) { |
| | | this.form.feeArea = this.form.rentArea |
| | | } |
| | | if (this.form.id == null || this.form.id === '') { |
| | |
| | | getProject() { |
| | | getProjectList({}).then(res => { |
| | | this.projectList = res || [] |
| | | if (this.projectList.length > 0) { |
| | | this.$set(this.form, 'projectId', this.projectList[0].id) |
| | | this.changeProject(this.projectList[0].id) |
| | | } |
| | | }) |
| | | |
| | | }, |
| | |
| | | this.form.buildingId = '' |
| | | getBuildList({ projectId: e }).then(res => { |
| | | this.buildList = res || [] |
| | | // if(this.buildList.length > 0){ |
| | | // this.form.buildingId = this.buildList[0].id |
| | | // } |
| | | }) |
| | | }, |
| | | changeBuild(e) { |
| | |
| | | this.visible = true |
| | | this.getProject() |
| | | this.getCate() |
| | | // æ°å»º |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.form = { |
| | | id: null, |
| | |
| | | }, |
| | | getProject() { |
| | | getProjectList({}).then(res => { |
| | | this.projectList = res |
| | | this.projectList = res || [] |
| | | if(this.projectList.length > 0){ |
| | | this.$set(this.form, 'projectId', this.projectList[0].id) |
| | | this.getBuild(this.projectList[0].id) |
| | | } |
| | | }) |
| | | }, |
| | | getBuild(projectId) { |
| | |
| | | this.$set(this.form, 'floorId', '') |
| | | this.$set(this.form, 'roomId', '') |
| | | getBuildList({ projectId }).then(res => { |
| | | this.buildList = res |
| | | this.buildList = res || [] |
| | | // if(projectId && this.buildList.length > 0){ |
| | | // this.$set(this.form, 'buildingId', this.buildList[0].id) |
| | | // this.changeBuild(this.buildList[0].id) |
| | | // } |
| | | }) |
| | | }, |
| | | changeBuild(e) { |
| | |
| | | <div class="value" v-if="info.fileList == null || !info.fileList.length">æ </div> |
| | | <div class="value" v-if="info.fileList != null && info.fileList.length"> |
| | | <div v-for="item in info.fileList" :key="item.id" style="display: inline;margin-right: 20px"> |
| | | <video v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')" ref="videoRef" controls |
| | | preload="auto" style="width: 80px;height: 80px;object-fit: contain;" :src="item.fileurlFull" /> |
| | | <el-image v-else-if="item.fileurlFull" style="width:80px; height: 80px" :src="item.fileurlFull" |
| | | <!-- <video v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')" ref="videoRef" controls |
| | | preload="auto" style="width: 80px;height: 80px;object-fit: contain;" :src="item.fileurlFull" /> --> |
| | | <el-image v-if="item.type == 0" style="width:80px; height: 80px" :src="item.fileurlFull" |
| | | :preview-src-list="[item.fileurlFull]"> |
| | | </el-image> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div v-if="info.fileList && info.fileList.length > 0 && info.fileList.filter(i => i.type == 1).length > 0" |
| | | class="item max"> |
| | | <div class="la">é®é¢è§é¢</div> |
| | | <div class="value"> |
| | | <div v-for="item in info.fileList" :key="item.id" style="display: inline;margin-right: 20px"> |
| | | <video v-if="item.type == 1" ref="videoRef" controls preload="auto" |
| | | style="width: 240px;height: 160px;object-fit: contain;" :src="item.fileurlFull" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="side"> |
| | | <div class="title">å·¥åæµè½¬è®°å½</div> |
| | | <div class="flow_list"> |
| | | <div class="item" v-for="item,i in info.logList"> |
| | | <div class="item" v-for="item, i in info.logList"> |
| | | <div class="icon"> |
| | | <div class="dian"></div> |
| | | <div v-if="i < info.logList.length - 1" class="line"></div> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="title">{{ info.dealStatus == 0 || info.dealStatus == 1 ? 'å·¥åå¤ç' : 'å¤çç»æ' }}</div> |
| | | <div class="title" |
| | | v-if="info.dealStatus == 2 || info.dealStatus == 0 || (info.dealStatus == 1 && info.dealUserId === userInfo.id)"> |
| | | {{ info.dealStatus == 0 || info.dealStatus == 1 ? 'å·¥åå¤ç' : 'å¤çç»æ' }}</div> |
| | | <el-form :model="param" ref="form" :rules="rules"> |
| | | <template v-if="info.dealStatus == 0 || info.dealStatus == null"> |
| | | <el-form-item label="å¤çæ¹å¼" prop="dealType"> |
| | |
| | | <el-radio v-model="param.dealType" :label="0">ææ´¾</el-radio> |
| | | <el-radio v-model="param.dealType" :label="1">ç´æ¥åå¤</el-radio> |
| | | </div> |
| | | </el-form-item> |
| | | </el-form-item> |
| | | <el-form-item v-if="param.dealType == 0" label="ææ´¾ç»" prop="dealUserId"> |
| | | <el-select v-model="param.dealUserId" clearable filterable class="w400"> |
| | | <el-option v-for="item in staffList" :label="item.realname" :value="item.id"></el-option> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="ç°åºå¾ç"> |
| | | <div class="file_list"> |
| | | <el-upload class="avatar-uploader" :data="uploadData" :auto-upload="true" |
| | | :action="uploadImgUrl" :show-file-list="false" :on-success="uploadAvatarSuccess" :on-error="uploadError" |
| | | <el-upload class="avatar-uploader" :data="uploadData" :auto-upload="true" :action="uploadImgUrl" |
| | | :show-file-list="false" :on-success="uploadAvatarSuccess" :on-error="uploadError" |
| | | :before-upload="beforeUpload"> |
| | | <div class="upload_wrap"> |
| | | <i class="el-icon-plus avatar-uploader-icon"></i> |
| | |
| | | const { id } = this |
| | | detailById(id).then(res => { |
| | | this.info = res |
| | | if(this.info.dealStatus == 1){ |
| | | this.$set(this.param, 'getDate',dayjs().format('YYYY-MM-DD HH:mm:ss') ) |
| | | if (this.info.dealStatus == 1) { |
| | | this.$set(this.param, 'getDate', dayjs().format('YYYY-MM-DD HH:mm:ss')) |
| | | } |
| | | }) |
| | | }, |
| | |
| | | } |
| | | |
| | | .primaryColor { |
| | | border: 1px solid rgba(63, 126, 239,.2); |
| | | background-color: rgba(63, 126, 239,.2); |
| | | border: 1px solid rgba(63, 126, 239, .2); |
| | | background-color: rgba(63, 126, 239, .2); |
| | | } |
| | | .green{ |
| | | |
| | | .green { |
| | | background-color: rgba(83, 183, 148, .2); |
| | | border: 1px solid rgba(83, 183, 148, .2); |
| | | } |
| | | |
| | | .gray { |
| | | color: #333333; |
| | | background-color: rgba(128, 128, 128, .2); |
| | |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | .la{ |
| | | |
| | | .la { |
| | | margin-bottom: 0; |
| | | width: 72px; |
| | | } |
| | |
| | | width: 100%; |
| | | } |
| | | } |
| | | .main_content{ |
| | | |
| | | .main_content { |
| | | display: flex; |
| | | .side{ |
| | | |
| | | .side { |
| | | width: 370px; |
| | | .title{ |
| | | |
| | | .title { |
| | | font-size: 14px; |
| | | } |
| | | .flow_list{ |
| | | .item{ |
| | | |
| | | .flow_list { |
| | | .item { |
| | | display: flex; |
| | | .icon{ |
| | | |
| | | .icon { |
| | | width: 28px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | .dian{ |
| | | |
| | | .dian { |
| | | width: 12px; |
| | | height: 12px; |
| | | border-radius: 50%; |
| | | background-color: #e89e42; |
| | | } |
| | | .line{ |
| | | |
| | | .line { |
| | | width: 1px; |
| | | height: 100%; |
| | | background-color: #e89e42; |
| | | } |
| | | } |
| | | .content{ |
| | | |
| | | .content { |
| | | font-size: 12px; |
| | | color: #999999; |
| | | padding-bottom: 12px; |
| | | .name{ |
| | | |
| | | .name { |
| | | font-size: 13px; |
| | | color: #333333; |
| | | } |
| | |
| | | showDetail: false, |
| | | searchForm: { |
| | | selDate: [], |
| | | areaType: '', |
| | | areaIds: '', |
| | | projectId: '', |
| | | buildingId: '', |
| | |
| | | <template>
|
| | | <view class="main_app">
|
| | | <view class="hone_name title">{{ userInfo.realname }}ï¼æ¬¢è¿ç»å½</view>
|
| | | <view class="hone_name title">{{ userInfo.realname }}ï¼æ¬¢è¿ç»å½ï½</view>
|
| | | <view class="home_con">
|
| | | <image class="bg" src="@/static/home/home_bg.jpg" mode=""></image>
|
| | | <view class="h1">é宿ä½ä¸å¿</view>
|
| | |
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script> |
| | | import { logoutPost } from '@/api'
|
| | | <script>
|
| | | import {
|
| | | logoutPost
|
| | | } from '@/api'
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | userInfo: uni.getStorageSync('userInfo') || {},
|
| | | list1: [ |
| | | {
|
| | | list1: [{
|
| | | name: 'æ°å¢å·¥å',
|
| | | url: '/pages/workOrder/edit',
|
| | | img: require('@/static/home/ic_xinzenggongdan@2x.png'),
|
| | |
| | | url: item.url
|
| | | })
|
| | | },
|
| | | loginOut() { |
| | | logoutPost()
|
| | | this.$store.commit('empty')
|
| | | uni.redirectTo({
|
| | | url: '/pages/login'
|
| | | }) |
| | | loginOut() {
|
| | | logoutPost().then(res => {
|
| | | this.$store.commit('empty')
|
| | | setTimeout(() => { |
| | | uni.redirectTo({ |
| | | url: '/pages/login' |
| | | }) |
| | | }, 300)
|
| | | })
|
| | | // window.location.href= 'https://zhcg.fnwtzx.com/fn_h5'
|
| | | },
|
| | |
|
| | |
| | | code: ''
|
| | | },
|
| | | downTime: 0,
|
| | | code: '' |
| | | code: '111' |
| | | // code: ''
|
| | | }
|
| | | },
|
| | |
| | | import {
|
| | | uploadUrl,
|
| | | ywDevicePost,
|
| | | ywDeviceCreate
|
| | | ywDeviceCreate, |
| | | getPointRecordByCode
|
| | | } from '@/api'
|
| | | import dayjs from 'dayjs';
|
| | | import {
|
| | |
| | | },
|
| | | handleP() {
|
| | | const {
|
| | | param,
|
| | | param, |
| | | fileList
|
| | | } = this
|
| | | ywDeviceCreate({
|
| | |
| | | },
|
| | | (decodeText, decodeResult) => {
|
| | | if (decodeText) { //è¿édecodeTextå°±æ¯éè¿æ«æäºç»´ç å¾å°çå
容
|
| | | this.$set(this.param, 'deviceCode', decodeText)
|
| | | this.stopScan(); //å
³éæ«ç åè½
|
| | | this.$set(this.param, 'deviceCode', decodeText) |
| | | this.stopScan(); //å
³éæ«ç åè½ |
| | | getPointRecordByCode({ |
| | | // taskId: this.id, |
| | | pointCode: decodeText |
| | | }).then(ress => { |
| | | if (ress.data) { |
| | | console.log('ress', ress.data); |
| | | } else { |
| | | this.showToast('æªå¹é
å°å·¡æ£ç¹,è¯·éæ°æ«æ') |
| | | } |
| | | })
|
| | | |
| | | }
|
| | | },
|
| | | (err) => {
|
| | |
| | | <view class="content">
|
| | | <view class="head">
|
| | | <view>{{item.pointName}}</view>
|
| | | <view class="status" :class="{ gray: item.status == 1 }">{{ item.status == 1 ? '已巡æ£' : 'å¾
å·¡æ£' }}</view>
|
| | | <view class="status" :class="{ gray: item.status == 1 }"> |
| | | <image v-if="item.status == 1" src="@/static/plan_ic_finish@2x.png" class="icon" mode=""></image> |
| | | <text>{{ item.status == 1 ? '已巡æ£' : 'å¾
å·¡æ£' }}</text> |
| | | </view>
|
| | | </view>
|
| | | <template v-if="item.status == 1">
|
| | | <view class="line">
|
| | |
| | | </view>
|
| | | <view class="line">
|
| | | <view class="la">å·¡æ£æ¶é´ï¼</view>
|
| | | <view class="val">{{item.dealDate}}</view>
|
| | | <view class="val"> |
| | | <text>{{item.dealDate}}</text> |
| | | <text v-if="item.status == 1" class="detail">æ¥ç详æ
</text> |
| | | </view>
|
| | | </view>
|
| | | </template>
|
| | | <view class="desc" v-else>{{item.content}}</view>
|
| | |
| | | },
|
| | | onLoad(option) {
|
| | | this.id = option.id
|
| | | // this.getDetail()
|
| | | },
|
| | | onShow() {
|
| | | this.getDetail()
|
| | | },
|
| | | // onShow() {
|
| | | // this.getDetail()
|
| | | // },
|
| | | methods: {
|
| | | openSc() {
|
| | | this.isScaning = true;
|
| | |
| | | this.info = res.data
|
| | | let time = new Date(res.data.startDate).getTime()
|
| | | console.log('res.data.startDate', new Date().getTime());
|
| | | this.flag = new Date().getTime() > time
|
| | | this.flag = new Date().getTime() > time && (this.info.status == 0 || this.info.status == 1)
|
| | | })
|
| | | ywPatrolTaskRecord({
|
| | | capacity: 999,
|
| | |
| | | margin-bottom: 20rpx;
|
| | |
|
| | | .la {
|
| | | color: #666666;
|
| | | color: #666666; |
| | | |
| | | }
|
| | | }
|
| | |
|
| | | .list {
|
| | | height: calc(100vh - 720rpx);
|
| | | overflow: auto;
|
| | |
|
| | | height: calc(100vh - 490rpx);
|
| | | overflow: auto; |
| | | padding-bottom: 160rpx;
|
| | | .item {
|
| | | width: 690rpx;
|
| | | height: 188rpx;
|
| | |
| | | margin-bottom: 20rpx;
|
| | |
|
| | | .line {
|
| | | margin-bottom: 10rpx;
|
| | | margin-bottom: 10rpx; |
| | | width: 100%; |
| | | .val{ |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | flex: 1; |
| | | .detail{ |
| | | color: $primaryColor; |
| | | font-size: 26rpx; |
| | | } |
| | | }
|
| | | }
|
| | |
|
| | | .icon {
|
| | |
| | | margin-bottom: 16rpx;
|
| | |
|
| | | .status {
|
| | | offset-anchor: 28rpx;
|
| | | font-size: 28rpx;
|
| | | color: $primaryColor;
|
| | | font-weight: 400;
|
| | | font-weight: 400; |
| | | display: flex; |
| | | align-items: center; |
| | | .icon{ |
| | | width: 40rpx; |
| | | height: 40rpx; |
| | | // border-radius: 50%; |
| | | // overflow: hidden; |
| | | background: none; |
| | | } |
| | | |
| | | }
|
| | |
|
| | | .gray {
|
| | |
| | | <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
|
| | | </view>
|
| | | </view>
|
| | | <view class="desc">{{ info.dealInfo }}</view>
|
| | | <view v-if="info.dealInfo" class="desc">{{ info.dealInfo }}</view>
|
| | | <view class="line line_s">
|
| | | <view class="la">å·¡æ£äººï¼</view>
|
| | | <view class="val">{{ info.realname }}</view>
|
| | |
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="label">å¤ç说æ</view>
|
| | | <textarea v-model="handleParam.dealInfo" placeholder="请填åå¤ç说æ" placeholder-class="placeholder9" />
|
| | | <view class="label" style="margin-bottom: 10rpx;">å¤ç说æ</view>
|
| | | <textarea v-model="handleParam.dealInfo" :maxlength="-1" placeholder="请填åå¤ç说æ"
|
| | | placeholder-class="placeholder9" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="sub_btn" @click="onSubmit">确认巡æ£</view>
|
| | | <view v-if="info.status == 0" class="sub_btn" @click="onSubmit">确认巡æ£</view>
|
| | | <!-- -->
|
| | | <u-popup :show="showUpload" @close="showUpload = false" closeOnClickOverlay>
|
| | | <view class="sel_upload_wrap">
|
| | |
| | | fileList,
|
| | | id
|
| | | } = this
|
| | | if (handleParam.dealStatus == 1) {
|
| | | return uni.showModal({
|
| | | title: '温馨æç¤º',
|
| | | content: 'å·¡æ£ç»æå¼å¸¸ï¼æ¯å¦åå¾æäº¤å·¥åï¼',
|
| | | success: function(res) {
|
| | | if (res.confirm) {
|
| | | patrolData({
|
| | | ...handleParam,
|
| | | multifileList: fileList,
|
| | | id,
|
| | | }).then(res => {
|
| | | this.showToast('æä½æå')
|
| | | uni.navigateBack()
|
| | | })
|
| | | patrolData({
|
| | | ...handleParam,
|
| | | multifileList: fileList,
|
| | | id,
|
| | | }).then(res => {
|
| | | if (handleParam.dealStatus == 1) {
|
| | | return uni.showModal({
|
| | | title: '温馨æç¤º',
|
| | | content: 'å·¡æ£ç»æå¼å¸¸ï¼æ¯å¦åå¾æäº¤å·¥åï¼',
|
| | | success: (res) => {
|
| | | if (res.confirm) {
|
| | | this.showToast('æä½æå') |
| | | setTimeout(() => { |
| | | uni.redirectTo({ |
| | | url: '/pages/workOrder/edit' |
| | | }) |
| | | }, 300)
|
| | | }else{ |
| | | this.showToast('æä½æå') |
| | | setTimeout(() => { |
| | | uni.navigateBack() |
| | | }, 300) |
| | | }
|
| | | }
|
| | | }
|
| | | });
|
| | | } else {
|
| | | patrolData({
|
| | | ...handleParam,
|
| | | multifileList: fileList,
|
| | | id,
|
| | | }).then(res => {
|
| | | });
|
| | | } else {
|
| | | this.showToast('æä½æå')
|
| | | uni.navigateBack()
|
| | | })
|
| | | }
|
| | |
|
| | | setTimeout(() => { |
| | | uni.navigateBack() |
| | | }, 300)
|
| | | }
|
| | | })
|
| | | },
|
| | | getDetail() {
|
| | | const {
|
| | |
| | | }
|
| | |
|
| | | .sub_btn {
|
| | | position: fixed;
|
| | | bottom: 68rpx;
|
| | | left: 40rpx;
|
| | | // position: fixed;
|
| | | // bottom: 68rpx;
|
| | | // left: 40rpx;
|
| | | width: 670rpx;
|
| | | margin-top: 60rpx;
|
| | | height: 88rpx;
|
| | | background: $primaryColor;
|
| | | box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 104, 255, 0.3);
|
| | |
| | | textarea {
|
| | | box-sizing: border-box;
|
| | | width: 690rpx;
|
| | | min-height: 200rpx;
|
| | | min-height: 140rpx;
|
| | | background-color: #f7f7f7;
|
| | | font-size: 28rpx;
|
| | | color: #333333;
|
| | |
| | | <view class="line" @click="itemClick(item)">æ§è¡æ¶é´ï¼{{ item.startDate.slice(11, 16) }} è³ {{ item.endDate.slice(11, 16) }}</view>
|
| | | <view class="line">
|
| | | <view @click="itemClick(item)">宿æ
åµï¼{{item.finishNum || 0}}/{{item.patrolNum}}</view>
|
| | | <view v-if="param.queryStatus == '0,1'" class="btn" @click="openSc(item)">
|
| | | <view v-if="param.queryStatus == '0,1' && item.flag && (item.status == 0 || item.status == 1)" class="btn" @click="openSc(item)">
|
| | | <image src="@/static/side/ic_saoma@2x.png" class="saoma" mode=""></image>
|
| | | <view>æ«ç å·¡æ£</view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view v-if="list.length == 0" class="empty_wrap"> |
| | | <image src="@/static/empty.png" mode=""></image> |
| | | <view class="">ææ æ°æ®</view> |
| | | </view> |
| | | </view>
|
| | | </scroll-view>
|
| | |
|
| | |
| | | // activeItem: {}
|
| | | };
|
| | | },
|
| | | onLoad() {
|
| | | onShow() { |
| | | this.page = 1 |
| | | this.list = []
|
| | | this.getList()
|
| | | },
|
| | | methods: { |
| | |
| | | page,
|
| | | capacity: 10
|
| | | }).then(res => {
|
| | | this.list = [...this.list, ...res.data.records]
|
| | | this.list = [...this.list, ...res.data.records] |
| | | this.list.forEach(item => { |
| | | let time = new Date(item.startDate).getTime() |
| | | item.flag = new Date().getTime() > time |
| | | })
|
| | | this.total = res.data.total
|
| | | })
|
| | | }
|
| | |
| | | }
|
| | |
|
| | | .scroll_Y {
|
| | | height: calc(100vh - 230rpx);
|
| | | height: calc(100vh - 130rpx);
|
| | | }
|
| | |
|
| | | .list {
|
| | | .list { |
| | | |
| | | .item {
|
| | | display: flex;
|
| | | // height: 290rpx;
|
| | |
| | | <view class="file_list">
|
| | | <view class="file" v-for="(item,index) in info.fileList">
|
| | | <image v-if="item.type == 0" :src="item.fileurlFull" mode="aspectFill"></image>
|
| | | <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
|
| | | <!-- <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video> -->
|
| | | <view v-if="item.type == 1" @click="videoClick(item)" class="video_wrap">
|
| | | <video :src="item.fileurlFull" initial-time="0.01" :show-center-play-btn="false" :controls="false"
|
| | | class="video" :enable-progress-gesture="false" autoplay muted />
|
| | | <image src="@/static/play.png" class="play" mode=""></image>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="content">
|
| | |
| | | <view class="la">䏿¥äººï¼</view>
|
| | | <view class="val">{{ info.creatorName }}{{info.creatorCompany ? '-' + info.creatorCompany : ''}}</view>
|
| | | </view>
|
| | | <view class="line" v-if="info.creatorPhone || info.creatorMobile">
|
| | | <view class="line" v-if="info.creatorPhone || info.creatorMobile">
|
| | | <view class="la">èç³»çµè¯ï¼</view>
|
| | | <view class="val">{{ info.creatorMobile || info.creatorPhone }}</view>
|
| | | </view>
|
| | |
| | | <image src="@/static/side/phoneed.png" class="icon"></image>
|
| | | <text>䏿¥äºº</text>
|
| | | </view>
|
| | | <view class="btn active" @click="isShowHandle = true">å»å¤ç</view>
|
| | | <view class="btn active" @click="handleOpen">å»å¤ç</view>
|
| | | </view>
|
| | | <!-- -->
|
| | | <u-popup :show="showUpload" @close="showUpload = false" zIndex="10076" closeOnClickOverlay>
|
| | |
| | | </u-popup>
|
| | | <!-- -->
|
| | | <!-- å·¥åå¤ç -->
|
| | | <u-popup :show="isShowHandle" :round="10" :safeAreaInsetBottom="true" mode="bottom" closeable
|
| | | @close="isShowHandle = false">
|
| | | <u-popup :show="isShowHandle" :round="10" :safeAreaInsetTop="true" :safeAreaInsetBottom="true" mode="bottom"
|
| | | closeable @close="isShowHandle = false">
|
| | | <view class="appr_modal">
|
| | | <view class="title">å·¥åå¤ç</view>
|
| | | <view class="df_sb">
|
| | |
| | | <u-datetime-picker :minDate="new Date().getTime()" :show="isShowHandleDate" @confirm="confirmHandleDate"
|
| | | @cancel="isShowHandleDate = false" mode="datetime"></u-datetime-picker>
|
| | | <!-- -->
|
| | | <view v-if="videoPlay" class="video_app">
|
| | | <video controls autoplay muted x5-video-player-type="h5" x5-video-player-fullscreen="true" id="myvideo"
|
| | | :src="videoUrl" @fullscreenchange="screenChange"></video>
|
| | | <view class="bg" @click="closeVideo"></view>
|
| | | </view>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import {
|
| | | uploadUrl,
|
| | | ywWorkorderD, |
| | | ywWorkorderD,
|
| | | ywWorkorderDeal
|
| | | } from '@/api'
|
| | | import dayjs from 'dayjs';
|
| | |
| | | info: {},
|
| | | showUpload: false,
|
| | | isShowHandle: false,
|
| | | isShowHandleDate: false, |
| | | isShowHandleDate: false,
|
| | | userInfo: uni.getStorageSync('userInfo') || {},
|
| | | handleParam: {},
|
| | | dealFileList: []
|
| | | dealFileList: [],
|
| | |
|
| | | videoPlay: false,
|
| | | videoContext: null,
|
| | | videoUrl: ''
|
| | | };
|
| | | },
|
| | | onLoad(option) {
|
| | |
| | | this.getDetail()
|
| | | },
|
| | | methods: {
|
| | | onSubmit() { |
| | | const { handleParam, dealFileList, id } = this |
| | | if (!handleParam.dealTime) return this.showToast('å¤çæ¶é´ä¸è½ä¸ºç©º')
|
| | | ywWorkorderDeal({ |
| | | ...handleParam, |
| | | id, |
| | | dealFileList |
| | | }).then(res => { |
| | | if(res.code == 200){ |
| | | this.showToast('æä½æå') |
| | | uni.navigateBack() |
| | | } |
| | | handleOpen() {
|
| | | this.isShowHandle = true
|
| | | this.$set(this.handleParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
|
| | | },
|
| | | videoClick(item) {
|
| | | this.videoPlay = true;
|
| | | this.videoContext = uni.createVideoContext("myvideo", this); // thisè¿ä¸ªæ¯å®ä¾å¯¹è±¡ å¿
ä¼
|
| | | this.videoUrl = item.fileurlFull;
|
| | | this.videoContext.requestFullScreen();
|
| | | this.$nextTick(() => {
|
| | | this.videoContext.play();
|
| | | })
|
| | | }, |
| | | handleCall() { |
| | | const { info } = this |
| | | uni.makePhoneCall({ |
| | | phoneNumber: info.creatorMobile |
| | | }); |
| | | },
|
| | | screenChange(e) {
|
| | | let fullScreen = e.detail.fullScreen // å¼true为è¿å
¥å
¨å±ï¼false为éåºå
¨å±
|
| | | if (!fullScreen) {
|
| | | //éåºå
¨å±
|
| | | this.videoPlay = false // éèææ¾çå
|
| | | }
|
| | | },
|
| | | closeVideo() {
|
| | | this.videoPlay = false
|
| | | this.videoContext = null
|
| | | },
|
| | | onSubmit() {
|
| | | const {
|
| | | handleParam,
|
| | | dealFileList,
|
| | | id
|
| | | } = this
|
| | | if (!handleParam.dealTime) return this.showToast('å¤çæ¶é´ä¸è½ä¸ºç©º')
|
| | | ywWorkorderDeal({
|
| | | ...handleParam,
|
| | | id,
|
| | | dealFileList
|
| | | }).then(res => {
|
| | | if (res.code == 200) {
|
| | | this.showToast('æä½æå')
|
| | | uni.navigateBack()
|
| | | }
|
| | | })
|
| | | },
|
| | | handleCall() {
|
| | | const {
|
| | | info
|
| | | } = this
|
| | | uni.makePhoneCall({
|
| | | phoneNumber: info.creatorMobile
|
| | | });
|
| | | },
|
| | | getDetail() {
|
| | | ywWorkorderD(this.id).then(res => {
|
| | |
| | |
|
| | | image,
|
| | | video {
|
| | | width: 156rpx; |
| | | width: 156rpx;
|
| | | height: 156rpx;
|
| | | }
|
| | | }
|
| | |
| | | display: flex;
|
| | | flex-wrap: wrap;
|
| | | margin-bottom: 30rpx;
|
| | | max-height: 362rpx;
|
| | | overflow-y: auto;
|
| | | margin-right: -30rpx;
|
| | | }
|
| | |
|
| | | .adduser_list_item_ipt1_upload {
|
| | | margin-top: 24rpx;
|
| | | width: 156rpx;
|
| | | height: 156rpx;
|
| | | margin-right: 24rpx;
|
| | | border: 2rpx solid #e5e5e5;
|
| | | margin-right: 22rpx;
|
| | | border: 1rpx solid #e5e5e5;
|
| | | background: #f7f7f7;
|
| | | color: #666666;
|
| | | font-size: 22rpx;
|
| | | box-sizing: border-box;
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | position: relative;
|
| | |
|
| | | &:nth-of-type(4n) {
|
| | | margin-right: 0;
|
| | | }
|
| | |
|
| | | .close {
|
| | | position: absolute;
|
| | | right: -20rpx;
|
| | | top: -20rpx;
|
| | | z-index: 9999;
|
| | | background-color: #fff;
|
| | | }
|
| | |
|
| | | image {
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .video_wrap {
|
| | | position: relative;
|
| | | border: 1px solid;
|
| | | width: 156rpx;
|
| | | height: 156rpx;
|
| | | border-radius: 4rpx;
|
| | |
|
| | | .play {
|
| | | width: 60rpx !important;
|
| | | height: 60rpx !important;
|
| | | position: absolute;
|
| | | top: 50%;
|
| | | left: 50%;
|
| | | transform: translate(-50%, -50%);
|
| | | }
|
| | | }
|
| | |
|
| | | .video_app {
|
| | | overflow: hidden;
|
| | | position: fixed;
|
| | | left: 0;
|
| | | top: 0;
|
| | | width: 100vw;
|
| | | height: 100vh;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | z-index: 9990;
|
| | |
|
| | | .bg {
|
| | | background-color: rgba(0, 0, 0, .6);
|
| | | position: absolute;
|
| | | width: 100%;
|
| | | height: 100%;
|
| | | z-index: -1;
|
| | | }
|
| | |
|
| | | video {
|
| | | width: 100%;
|
| | | height: 42vh;
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | <u-icon class="close" size="20" name="close-circle-fill" color="red"
|
| | | @click="fileDel('fileList', i)"></u-icon>
|
| | | <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
|
| | | <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
|
| | | <video v-if="item.type == 1" :show-center-play-btn="false" :src="item.fileurlFull" :controls="false"></video>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
| | | showCate2: false,
|
| | | areaType: [
|
| | | [{
|
| | | name: '室å
è£
ä¿®',
|
| | | name: '室å
ç»´ä¿®',
|
| | | id: 0
|
| | | },
|
| | | {
|
| | |
| | | position: absolute;
|
| | | right: -20rpx;
|
| | | top: -20rpx;
|
| | | z-index: 9999;
|
| | | z-index: 9999; |
| | | background-color: #fff; |
| | | border-radius: 50%; |
| | | overflow: hidden;
|
| | | }
|
| | |
|
| | | image {
|
| | |
| | | <scroll-view scroll-y="true" class="scroll_Y" @scrolltolower="scrolltolower">
|
| | | <view class="list">
|
| | | <view class="item" v-for="item in list" @click="itemClick(item)">
|
| | | <image v-if="item.dealStatus == 0" src="@/static/side/workordered.png" class="icon"></image>
|
| | | <image v-if="item.dealStatus == 0 || item.dealStatus == 1" src="@/static/side/workordered.png" class="icon"></image>
|
| | | <image v-else src="@/static/side/workorder.png" class="icon"></image>
|
| | | <view class="content">
|
| | | <view class="name_wrap line">
|
| | |
| | |
|
| | | }
|
| | | .scroll_Y{ |
| | | height: calc(100vh - 320rpx); |
| | | height: calc(100vh - 250rpx); |
| | | }
|
| | | .list {
|
| | | .item {
|
| | |
| | | // height: 290rpx;
|
| | | padding: 30rpx 0;
|
| | | border-bottom: 2rpx solid #E5E5E5;
|
| | |
|
| | | |
| | | .icon {
|
| | | width: 80rpx;
|
| | | height: 80rpx;
|
| | |
| | | // export const baseUrl = 'gateway_interface/' |
| | | export const baseUrl = 'gateway_interface/' |
| | | // export const baseUrl = 'http://192.168.0.173/gateway_interface/' |
| | | export const baseUrl = 'https://zhcg.fnwtzx.com/gateway_interface/' |
| | | // export const baseUrl = 'https://zhcg.fnwtzx.com/gateway_interface/' |
| | | |
| | | export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do` |
| | | export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch` |
| | |
| | | queryDto.setDeleted(Boolean.FALSE); |
| | | SystemDict dictData = systemDictService.findOne(queryDto); |
| | | if (dictData == null) { |
| | | throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "æ°æ®å¼ä¸åå¨"); |
| | | return new SystemDictData(); |
| | | // throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "æ°æ®å¼ä¸åå¨"); |
| | | } |
| | | SystemDictData data = new SystemDictData(); |
| | | data.setDictId(dictData.getId()); |
| | |
| | | package com.doumee.cloud.admin; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.doumee.api.BaseController; |
| | | import com.doumee.config.DataSyncConfig; |
| | | import com.doumee.config.annotation.CloudRequiredPermission; |
| | |
| | | @Autowired |
| | | private CompanyService companyService; |
| | | |
| | | @Autowired |
| | | // @Autowired |
| | | private ERPSyncService erpSyncService; |
| | | @Autowired |
| | | private HkSyncOrgUserFromHKServiceImpl hkSyncOrgUserFHKService; |
| | |
| | | public ApiResponse<List<Company>> list (@RequestBody Company company,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ |
| | | return ApiResponse.success(companyService.findList(company)); |
| | | } |
| | | @ApiOperation("æ°å»ºååæå±å
¬å¸çé") |
| | | @PostMapping("/listForConstract") |
| | | @CloudRequiredPermission("business:company:query") |
| | | public ApiResponse<List<Company>> listForConstract (@RequestBody Company company,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ |
| | | return ApiResponse.success(companyService.listForConstract(company)); |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | @RestController |
| | | @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/erpsync") |
| | | public class ERPSyncCloudController extends BaseController { |
| | | @Autowired |
| | | // @Autowired |
| | | private ERPSyncService erpSyncService; |
| | | |
| | | @PreventRepeat |
| | |
| | | @RestController |
| | | @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/member") |
| | | public class MemberCloudController extends BaseController { |
| | | @Autowired |
| | | // @Autowired |
| | | private ERPSyncService erpSyncService; |
| | | @Autowired |
| | | private HkSyncOrgUserFromHKServiceImpl hkSyncOrgUserFHKService; |
| | |
| | | @ApiModelProperty(value = "è´¹ç¨ç±»åï¼0=å¨æè´¹ç¨ï¼1=䏿¬¡æ§è´¹ç¨") |
| | | @TableField(exist = false) |
| | | private Integer feeType; |
| | | |
| | | @ApiModelProperty(value = "æå±å
¬å¸", example = "1") |
| | | private Integer companyId; |
| | | |
| | |
| | | @ApiModelProperty(value = "è¶
æä»»å¡æ°") |
| | | @TableField(exist = false) |
| | | private Integer timeOutTaskNum; |
| | | |
| | | @ApiModelProperty(value = "å¼å§æ¥æï¼æç´¢æªæ¢æ¥æï¼") |
| | | @TableField(exist = false) |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date startDateSec; |
| | | |
| | | @ApiModelProperty(value = "ç»ææ¥æï¼æç´¢æªæ¢æ¥æï¼") |
| | | @TableField(exist = false) |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date endDateSec; |
| | | |
| | | } |
| | |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @ExcelColumn(name="å建æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date createDate; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") |
| | |
| | | |
| | | @ApiModelProperty(value = "æ´æ°æ¶é´") |
| | | @ExcelColumn(name="æ´æ°æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date editDate; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") |
| | |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | @ExcelColumn(name="䏿¥æ¶é´",index = 5,width = 16,dateFormat = "yyyy-MM-dd HH:mm:ss") |
| | | private Date createDate; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") |
| | |
| | | |
| | | @ApiModelProperty(value = "ææ¥æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | @ExcelColumn(name="䏿¥æ¶é´",index = 5,width = 16,dateFormat = "yyyy-MM-dd HH:mm:ss") |
| | | private Date submitDate; |
| | | |
| | | @ApiModelProperty(value = "å·¥ååç±»ç¼ç (å
³ècategoryï¼", example = "1") |
| | |
| | | private String code; |
| | | |
| | | @ApiModelProperty(value = "å¤çç¶æ 0å¾
å¤ç 1已忴¾ 2å·²å¤ç", example = "1") |
| | | @ExcelColumn(name="å·¥åç¶æ",index = 7,width = 10,valueMapping = "0=å¾
å¤ç;1=已忴¾;1=å·²å¤ç;") |
| | | @ExcelColumn(name="å·¥åç¶æ",index = 7,width = 10,valueMapping = "0=å¾
å¤ç;1=已忴¾;2=å·²å¤ç;") |
| | | private Integer dealStatus; |
| | | |
| | | @ApiModelProperty(value = "åæ´¾äººç¼ç (å
³èsystem_user)", example = "1") |
| | |
| | | @TableField(exist = false) |
| | | private String buildingName; |
| | | @ApiModelProperty(value = "æ¿æºåç§°") |
| | | @ExcelColumn(name="æ¿æº",index = 2,width = 10) |
| | | @TableField(exist = false) |
| | | private String roomName; |
| | | @ApiModelProperty(value = "æ¥ä¿®åºå") |
| | | @ExcelColumn(name="æ¥ä¿®åºå",index = 2,width = 10) |
| | | @TableField(exist = false) |
| | | private String areaNameInfo; |
| | | @ApiModelProperty(value = "楼å±åç§°") |
| | | @TableField(exist = false) |
| | | private String floorName; |
| | |
| | | |
| | | Integer createFinanceCompany(Company company); |
| | | Integer updateFinanceCompany(Company company); |
| | | |
| | | List<Company> listForConstract(Company company); |
| | | } |
| | |
| | | wrapper.lambda().eq(Areas::getId,areas.getId()); |
| | | Areas update = new Areas(); |
| | | update.setName(areas.getName()); |
| | | update.setCode(areas.getCode()); |
| | | update.setSortnum(areas.getSortnum()); |
| | | areasMapper.update(update,wrapper); |
| | | //å·æ°ç¼åæ°æ® |
| | |
| | | CITY_LIST=null; |
| | | AREA_LIST = null; |
| | | ALL_AREA_TREE = null; |
| | | ALL_AREA_LIST = areasMapper.selectList(new QueryWrapper<>(a).lambda().orderByDesc(Areas::getSortnum)); |
| | | ALL_AREA_LIST = areasMapper.selectList(new QueryWrapper<>(a).lambda().orderByAsc(Areas::getCode)); |
| | | if(ALL_AREA_LIST!=null){ |
| | | for(Areas model : ALL_AREA_LIST){ |
| | | if(Constants.equalsInteger(model.getType(),Constants.ZERO)){ |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<Company> listForConstract(Company company) { |
| | | MPJLambdaWrapper<Company> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(Company.class); |
| | | queryWrapper.like(company.getName() != null,Company::getName, company.getName()); |
| | | queryWrapper.eq(Company::getStatus, Constants.ZERO); |
| | | queryWrapper.eq(Company::getType, Constants.TWO); |
| | | queryWrapper.eq(Company::getIsdeleted, Constants.ZERO); |
| | | queryWrapper.exists("select b.id from yw_account b where b.isdeleted=0 and b.company_id=t.id and b.status=0"); |
| | | queryWrapper.orderByDesc(Company::getCreateDate); |
| | | return companyMapper.selectList(queryWrapper); |
| | | } |
| | | @Override |
| | | public List<Company> findList(Company company) { |
| | | MPJLambdaWrapper<Company> queryWrapper = new MPJLambdaWrapper<>(); |
| | | if (company.getId() != null) { |
| | |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼äººåä¿¡æ¯ä¸åå¨ï¼"); |
| | | } |
| | | if(model.getCompanyId()!=null) { |
| | | member.setEditor(member.getLoginUserInfo().getId()); |
| | | member.setEditDate(new Date()); |
| | | if(Constants.equalsInteger(member.getHeadStatus(),Constants.ONE)){ |
| | | //妿æ¯åæ¶ä¸»ç®¡ |
| | | companyMapper.update(null,new UpdateWrapper<Company>().lambda() |
| | |
| | | .eq(YwPatrolScheme::getIsdeleted,Constants.ZERO) |
| | | .like(StringUtils.isNotBlank(model.getTitle()),YwPatrolScheme::getTitle,model.getTitle()) |
| | | //æ¥è¯¢ææ¶æ®µäº¤éçæ°æ® |
| | | .apply(Objects.nonNull(model.getStartDate())&&Objects.nonNull(model.getEndDate()), |
| | | " t.START_DATE <= '"+pageWrap.getModel().getEndDate()+"' and t.END_DATE >= '"+pageWrap.getModel().getStartDate()+"' " |
| | | ) |
| | | // .ge(Objects.nonNull(model.getStartDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getStartDate())) |
| | | // .le(Objects.nonNull(model.getEndDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getEndDate())) |
| | | /* .apply(Objects.nonNull(model.getStartDate())&&Objects.nonNull(model.getEndDate()), |
| | | " t.START_DATE <= '"+pageWrap.getModel().getEndDate()+"' or t.END_DATE >= '"+pageWrap.getModel().getStartDate()+"' " |
| | | )*/ |
| | | .ge( model.getStartDate()!=null,YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate())) |
| | | .le(Objects.nonNull(model.getEndDate()),YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getEndDate())) |
| | | .ge(Objects.nonNull(model.getStartDateSec()),YwPatrolScheme::getEndDate, Utils.Date.getStart(pageWrap.getModel().getStartDateSec())) |
| | | .le(Objects.nonNull(model.getEndDateSec()),YwPatrolScheme::getEndDate, Utils.Date.getStart(pageWrap.getModel().getEndDateSec())) |
| | | .orderByDesc(YwPatrolScheme::getCreateDate) |
| | | ; |
| | | IPage<YwPatrolScheme> iPage = ywPatrolSchemeMapper.selectJoinPage(page,YwPatrolScheme.class,queryWrapper); |
| | |
| | | .orderByDesc(YwPatrolScheme::getCreateDate) |
| | | ; |
| | | IPage<YwPatrolTaskRecord> iPage = ywPatrolTaskRecordMapper.selectJoinPage(page,YwPatrolTaskRecord.class,queryWrapper); |
| | | if(iPage!=null && iPage.getRecords()!=null){ |
| | | for(YwPatrolTaskRecord m : iPage.getRecords()){ |
| | | getFileListByModel(m); |
| | | } |
| | | } |
| | | return PageData.from(iPage); |
| | | } |
| | | |
| | | private void getFileListByModel(YwPatrolTaskRecord ywPatrolTaskRecord) { |
| | | //éä»¶æ°æ® |
| | | List<Multifile> multifileList = multifileMapper.selectJoinList(Multifile.class,new MPJLambdaWrapper<Multifile>() |
| | | .selectAll(Multifile.class) |
| | | .selectAs(SystemUser::getRealname,Multifile::getUserName) |
| | | .leftJoin(SystemUser.class,SystemUser::getId,Multifile::getCreator) |
| | | .eq(Multifile::getObjId,ywPatrolTaskRecord.getId()) |
| | | .eq(Multifile::getIsdeleted,Constants.ZERO) |
| | | .eq(Multifile::getObjType,Constants.MultiFile.FN_PATROL_TASK_RECORD_FILE.getKey())); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ |
| | | String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() |
| | | +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_PATROL).getCode(); |
| | | for (Multifile multifile:multifileList) { |
| | | if(StringUtils.isNotBlank(multifile.getFileurl())){ |
| | | multifile.setFileurlFull(path + multifile.getFileurl()); |
| | | } |
| | | } |
| | | ywPatrolTaskRecord.setMultifileList(multifileList); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | if(Objects.isNull(ywPatrolTaskRecord)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªå¹é
å°å·¡æ£ç¹!"); |
| | | } |
| | | //éä»¶æ°æ® |
| | | List<Multifile> multifileList = multifileMapper.selectJoinList(Multifile.class,new MPJLambdaWrapper<Multifile>() |
| | | .selectAll(Multifile.class) |
| | | .selectAs(SystemUser::getRealname,Multifile::getUserName) |
| | | .leftJoin(SystemUser.class,SystemUser::getId,Multifile::getCreator) |
| | | .eq(Multifile::getObjId,ywPatrolTaskRecord.getId()) |
| | | .eq(Multifile::getIsdeleted,Constants.ZERO) |
| | | .eq(Multifile::getObjType,Constants.MultiFile.FN_PATROL_TASK_RECORD_FILE.getKey())); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ |
| | | String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() |
| | | +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_PATROL).getCode(); |
| | | for (Multifile multifile:multifileList) { |
| | | if(StringUtils.isNotBlank(multifile.getFileurl())){ |
| | | multifile.setFileurlFull(path + multifile.getFileurl()); |
| | | } |
| | | } |
| | | ywPatrolTaskRecord.setMultifileList(multifileList); |
| | | } |
| | | getFileListByModel(ywPatrolTaskRecord); |
| | | |
| | | return ywPatrolTaskRecord; |
| | | |
| | |
| | | .selectAs(YwPatrolScheme::getCode,YwPatrolTask::getPlanCode) |
| | | .selectAs(YwPatrolScheme::getTitle,YwPatrolTask::getPlanTitle) |
| | | .selectAs(SystemUser::getRealname,YwPatrolTask::getUserName) |
| | | .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and t.ISDELETED = 0 ) ",YwPatrolTask::getPatrolNum) |
| | | .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and t.STATUS = 1 and t.ISDELETED = 0) ",YwPatrolTask::getFinishNum) |
| | | .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.ISDELETED = 0 ) ",YwPatrolTask::getPatrolNum) |
| | | .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.STATUS = 1 and ytr.ISDELETED = 0) ",YwPatrolTask::getFinishNum) |
| | | .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTask::getDealUserId) |
| | | .leftJoin(YwPatrolScheme.class,YwPatrolScheme::getId,YwPatrolTask::getSchemeId) |
| | | .eq(YwPatrolTask::getIsdeleted, Constants.ZERO) |
| | |
| | | .selectAs(YwPatrolScheme::getCode,YwPatrolTask::getPlanCode) |
| | | .selectAs(YwPatrolScheme::getTitle,YwPatrolTask::getPlanTitle) |
| | | .selectAs(SystemUser::getRealname,YwPatrolTask::getUserName) |
| | | .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and t.ISDELETED = 0 ) ",YwPatrolTask::getPatrolNum) |
| | | .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and t.STATUS = 1 and t.ISDELETED = 0) ",YwPatrolTask::getFinishNum) |
| | | .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.ISDELETED = 0 ) ",YwPatrolTask::getPatrolNum) |
| | | .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.STATUS = 1 and ytr.ISDELETED = 0) ",YwPatrolTask::getFinishNum) |
| | | .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTask::getDealUserId) |
| | | .leftJoin(YwPatrolScheme.class,YwPatrolScheme::getId,YwPatrolTask::getSchemeId) |
| | | .eq(YwPatrolTask::getIsdeleted, Constants.ZERO) |
| | |
| | | List<YwRoom> ywRoomList = ywRoomMapper.selectList(new QueryWrapper<YwRoom>().lambda() |
| | | .eq(YwRoom::getIsdeleted,Constants.ZERO) |
| | | .eq(YwRoom::getStatus,Constants.ZERO) |
| | | .eq(YwRoom::getIsInvestment,Constants.ONE) |
| | | .eq(Objects.nonNull(dataDTO.getProjectId()),YwRoom::getProjectId,dataDTO.getProjectId()) |
| | | .apply(Objects.nonNull(dataDTO)&&Objects.nonNull(dataDTO.getStartDate())&&Objects.nonNull(dataDTO.getEndDate())," id not in (" + |
| | | " SELECT y2.room_id FROM yw_contract y1 left join yw_contract_room y2 on y1.id = y2.contract_id where 1 = 1 and y1.`STATUS` in( 0,1,2) " + |
| | |
| | | " SELECT y2.room_id FROM yw_contract y1 left join yw_contract_room y2 on y1.id = y2.contract_id where 1 = 1 and y1.`STATUS` = 3 " + |
| | | " and y1.START_DATE < '"+dataDTO.getEndDate()+" 00:00:00' and y1.BT_DATE > '"+ dataDTO.getStartDate() +" 00:00:00' " + |
| | | " ) ") |
| | | .orderByAsc(YwRoom::getSortnum) |
| | | .orderByAsc(YwRoom::getRoomNum) |
| | | ); |
| | | |
| | | for (YwRoom data:ywRoomList) { |
| | |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | if(StringUtils.isNotBlank(pageWrap.getModel().getBuildingName())){ |
| | | queryWrapper.and(rw ->{ |
| | | rw.like(YwBuilding::getName,pageWrap.getModel().getBuildingName()).or() |
| | | .like(YwRoom::getName,pageWrap.getModel().getBuildingName()); |
| | | }); |
| | | } |
| | | queryWrapper.ge(Objects.nonNull(pageWrap.getModel().getQueryStartTime()), YwWorkorder::getCreateDate, pageWrap.getModel().getQueryStartTime()) |
| | | .le(Objects.nonNull(pageWrap.getModel().getQueryEndTime()), YwWorkorder::getCreateDate, pageWrap.getModel().getQueryEndTime()); |
| | | queryWrapper.orderByDesc(YwContract::getCreateDate ); |
| | | return PageData.from(ywWorkorderMapper.selectPage(page, queryWrapper)); |
| | | |
| | | PageData<YwWorkorder> result = PageData.from(ywWorkorderMapper.selectPage(page, queryWrapper)); |
| | | if(result!=null && result.getRecords()!=null){ |
| | | for(YwWorkorder m : result.getRecords()){ |
| | | if(Constants.equalsInteger(m.getAreaType(),Constants.ZERO)){ |
| | | //0室å
ç»´ä¿® |
| | | m.setAreaNameInfo(StringUtils.defaultString(m.getBuildingName(),"")+"/"+StringUtils.defaultString(m.getRoomNum(),"")); |
| | | }else{ |
| | | m.setAreaNameInfo(StringUtils.defaultString(m.getBuildingName(),"")+"/"+StringUtils.defaultString(m.getFloorName(),"")); |
| | | } |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.erp.ErpConstants; |
| | | import com.doumee.core.erp.ErpTool; |
| | | import com.doumee.core.erp.model.openapi.request.erp.*; |
| | | import com.doumee.core.erp.model.openapi.request.*; |
| | | import com.doumee.core.erp.model.openapi.request.erp.OrgListRequest; |
| | | import com.doumee.core.erp.model.openapi.request.erp.UserFailRequest; |
| | | import com.doumee.core.erp.model.openapi.request.erp.UserListRequest; |
| | | import com.doumee.core.erp.model.openapi.response.*; |
| | | import com.doumee.core.erp.model.openapi.response.erp.ERPApiResponse; |
| | | import com.doumee.core.erp.model.openapi.response.erp.ErpOrgListResponse; |
| | | import com.doumee.core.erp.model.openapi.response.erp.ErpUserListResponse; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.haikang.model.HKConstants; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.erp.model.openapi.request.*; |
| | | import com.doumee.core.erp.model.openapi.response.*; |
| | | import com.doumee.core.erp.model.openapi.response.erp.ErpOrgListResponse; |
| | | import com.doumee.core.erp.model.openapi.response.erp.ErpUserListResponse; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DESUtil; |
| | | import com.doumee.core.utils.DateUtil; |
| | |
| | | import com.doumee.dao.business.join.DeviceEventJoinMapper; |
| | | import com.doumee.dao.business.join.VisitEventJoinMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.service.business.ext.ERPSyncService; |
| | | import com.doumee.service.business.InterfaceLogService; |
| | | import com.doumee.service.business.ext.ERPSyncService; |
| | | import com.doumee.service.business.impl.MemberServiceImpl; |
| | | import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | |
| | | private WxPlatNotice wxPlatNotice; |
| | | |
| | | @Override |
| | | @PostConstruct |
| | | // @PostConstruct |
| | | public int initHkConfig(){ |
| | | ErpConstants.approveUrl=systemDictDataBiz.queryByCode(Constants.ERP,Constants.ERP_APPROVE_URL).getCode(); |
| | | ErpConstants.orgListUrl=systemDictDataBiz.queryByCode(Constants.ERP,Constants.ERP_ORGLIST_URL).getCode(); |
| | |
| | | private MemberJoinMapper memberMapper; |
| | | @Autowired |
| | | private MemberMapper memberMapper1; |
| | | @Autowired |
| | | // @Autowired |
| | | private ERPSyncService erpSyncService; |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |