mirror of
https://gitee.com/java110/MicroCommunityWeb.git
synced 2026-06-12 18:11:00 +08:00
加入回访页面
This commit is contained in:
parent
c0f6fd69f6
commit
03a5c3e2ea
@ -7,40 +7,7 @@
|
||||
<div class="ibox-content">
|
||||
<div>
|
||||
<div>
|
||||
<!-- <div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">报修范围</label>
|
||||
<div class="col-sm-10">
|
||||
<select class="custom-select" v-model="editOwnerRepairInfo.repairObjType" @change="_changeEditRepairObjType()">
|
||||
<option selected disabled value="">必填,请选择报修范围</option>
|
||||
<option value="001">小区</option>
|
||||
<option value="002">楼栋</option>
|
||||
<option value="003">单元</option>
|
||||
<option value="004">房屋</option>
|
||||
</select></div>
|
||||
</div>
|
||||
<div class="form-group row" v-if="editOwnerRepairInfo.repairObjType != '001'">
|
||||
<label class="col-sm-2 col-form-label">归属楼栋</label>
|
||||
<div class="col-sm-10">
|
||||
<vc:create path="property/floorSelect2" parentModal="editOwnerRepairModel"
|
||||
namespace="editOwnerRepair"></vc:create>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row" v-if="editOwnerRepairInfo.repairObjType == '003' || editOwnerRepairInfo.repairObjType == '004'">
|
||||
<label class="col-sm-2 col-form-label">归属单元</label>
|
||||
<div class="col-sm-10">
|
||||
<vc:create path="property/unitSelect2" parentModal="editOwnerRepairModel"
|
||||
callBackListener="editOwnerRepair" callBackFunction="notify2"
|
||||
namespace="editOwnerRepair"></vc:create>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row" v-if="editOwnerRepairInfo.repairObjType == '004'">
|
||||
<label class="col-sm-2 col-form-label">归属房屋</label>
|
||||
<div class="col-sm-10">
|
||||
<vc:create path="property/roomSelect2" parentModal="editOwnerRepairModel"
|
||||
callBackListener="editOwnerRepair" callBackFunction="notify"
|
||||
namespace="editOwnerRepair"></vc:create>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">报修类型</label>
|
||||
<div class="col-sm-10">
|
||||
|
||||
@ -0,0 +1,44 @@
|
||||
<div id="visitOwnerRepairModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
|
||||
aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
<h3 class="m-t-none m-b ">回访</h3>
|
||||
<div class="ibox-content">
|
||||
<div>
|
||||
<div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">满意度</label>
|
||||
<div class="col-sm-10">
|
||||
<select class="custom-select" v-model="visitOwnerRepairInfo.visitType">
|
||||
<option selected disabled value="">必填,请选择满意度</option>
|
||||
<option value="1001">满意</option>
|
||||
<option value="2002">不满意</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">回访内容</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea placeholder="必填,请填写回访内容" cols="15" class="form-control"
|
||||
v-model="visitOwnerRepairInfo.context"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<button class="btn btn-primary float-right" type="button"
|
||||
v-on:click="_visitOwnerRepair()">
|
||||
<i class="fa fa-check"></i> 提交
|
||||
</button>
|
||||
<button type="button" class="btn btn-warning float-right" style="margin-right:20px;"
|
||||
data-dismiss="modal">
|
||||
<i class="fa fa-times"></i> 取消
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,94 @@
|
||||
(function (vc, vm) {
|
||||
vc.extends({
|
||||
data: {
|
||||
visitOwnerRepairInfo: {
|
||||
repairId: '',
|
||||
visitType: '',
|
||||
context: ''
|
||||
}
|
||||
},
|
||||
_initMethod: function () {
|
||||
vc.component._initEditOwnerRepairInfo();
|
||||
},
|
||||
_initEvent: function () {
|
||||
|
||||
vc.on('visitOwnerRepair', 'openVisitOwnerRepairModal', function (_params) {
|
||||
vc.component.refreshVisitOwnerRepairInfo();
|
||||
vc.copyObject(_params, vc.component.visitOwnerRepairInfo);
|
||||
$('#visitOwnerRepairModel').modal('show');
|
||||
vc.component.visitOwnerRepairInfo.communityId = vc.getCurrentCommunity().communityId;
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
visitOwnerRepairValidate: function () {
|
||||
return vc.validate.validate({
|
||||
visitOwnerRepairInfo: vc.component.visitOwnerRepairInfo
|
||||
}, {
|
||||
'visitOwnerRepairInfo.visitType': [
|
||||
{
|
||||
limit: "required",
|
||||
param: "",
|
||||
errInfo: "报修类型不能为空"
|
||||
},
|
||||
{
|
||||
limit: "maxin",
|
||||
param: "2,50",
|
||||
errInfo: "报修类型错误"
|
||||
},
|
||||
],
|
||||
'visitOwnerRepairInfo.context': [
|
||||
{
|
||||
limit: "required",
|
||||
param: "",
|
||||
errInfo: "报修内容不能为空"
|
||||
},
|
||||
{
|
||||
limit: "maxLength",
|
||||
param: "1000",
|
||||
errInfo: "报修内容不能超过1000个字"
|
||||
},
|
||||
],
|
||||
'visitOwnerRepairInfo.repairId': [
|
||||
{
|
||||
limit: "required",
|
||||
param: "",
|
||||
errInfo: "报修ID不能为空"
|
||||
}]
|
||||
});
|
||||
},
|
||||
_visitOwnerRepair: function () {
|
||||
|
||||
if (!vc.component.visitOwnerRepairValidate()) {
|
||||
vc.toast(vc.validate.errInfo);
|
||||
return;
|
||||
}
|
||||
vc.component.visitOwnerRepairInfo.communityId = vc.getCurrentCommunity().communityId;
|
||||
vc.http.apiPost(
|
||||
'/repair/saveRepairReturnVisit',
|
||||
JSON.stringify(vc.component.visitOwnerRepairInfo),
|
||||
{
|
||||
emulateJSON: true
|
||||
},
|
||||
function (json, res) {
|
||||
//vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
|
||||
if (res.status == 200) {
|
||||
//关闭model
|
||||
$('#visitOwnerRepairModel').modal('hide');
|
||||
vc.emit('repairReturnVisit', 'listRepairPool', {});
|
||||
}
|
||||
},
|
||||
function (errInfo, error) {
|
||||
console.log('请求失败处理');
|
||||
vc.toast(errInfo);
|
||||
});
|
||||
},
|
||||
refreshVisitOwnerRepairInfo: function () {
|
||||
vc.component.visitOwnerRepairInfo = {
|
||||
repairId: '',
|
||||
visitType: '',
|
||||
context: ''
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
})(window.vc, window.vc.component);
|
||||
@ -72,6 +72,20 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
<div class="form-group">
|
||||
<label class="col-form-label">回访满意度:</label>
|
||||
<label class="">{{ownerRepairDetailInfo.visitType=='1001'?'满意':'不满意'}}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-8">
|
||||
<div class="form-group">
|
||||
<label class="col-form-label">回访内容:</label>
|
||||
<label class="">{{ownerRepairDetailInfo.visitContext}}</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -91,9 +105,9 @@
|
||||
<div>
|
||||
<div class="row">
|
||||
<div class="form-group margin-left"
|
||||
v-for="(item,index) in ownerRepairDetailInfo.repairPhotos">
|
||||
v-for="(item,index) in ownerRepairDetailInfo.repairPhotos">
|
||||
<img style="width: 120px; height: 120px;" v-bind:src="item.url"
|
||||
v-on:click="openFile(item)"/>
|
||||
v-on:click="openFile(item)" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -113,9 +127,9 @@
|
||||
<div>
|
||||
<div class="row">
|
||||
<div class="form-group margin-left"
|
||||
v-for="(item,index) in ownerRepairDetailInfo.beforePhotos">
|
||||
v-for="(item,index) in ownerRepairDetailInfo.beforePhotos">
|
||||
<img style="width: 120px; height: 120px;" v-bind:src="item.url"
|
||||
v-on:click="openFile(item)"/>
|
||||
v-on:click="openFile(item)" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -135,9 +149,9 @@
|
||||
<div>
|
||||
<div class="row">
|
||||
<div class="form-group margin-left"
|
||||
v-for="(item,index) in ownerRepairDetailInfo.afterPhotos">
|
||||
v-for="(item,index) in ownerRepairDetailInfo.afterPhotos">
|
||||
<img style="width: 120px; height: 120px;" v-bind:src="item.url"
|
||||
v-on:click="openFile(item)"/>
|
||||
v-on:click="openFile(item)" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -157,24 +171,24 @@
|
||||
<div class="ibox-content">
|
||||
<table class="table table-stripped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="text-center">序号</th>
|
||||
<th scope="col" class="text-center">处理人</th>
|
||||
<th scope="col" class="text-center">状态</th>
|
||||
<th scope="col" class="text-center">处理时间</th>
|
||||
<th scope="col" class="text-center">耗时</th>
|
||||
<th scope="col" class="text-center">意见</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="col" class="text-center">序号</th>
|
||||
<th scope="col" class="text-center">处理人</th>
|
||||
<th scope="col" class="text-center">状态</th>
|
||||
<th scope="col" class="text-center">处理时间</th>
|
||||
<th scope="col" class="text-center">耗时</th>
|
||||
<th scope="col" class="text-center">意见</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(item,index) in ownerRepairDetailInfo.repairUsers">
|
||||
<td scope="row" class="text-center">{{index+1}}</td>
|
||||
<td class="text-center">{{item.staffName}}</td>
|
||||
<td class="text-center">{{item.stateName}}</td>
|
||||
<td class="text-center">{{item.endTime}}</td>
|
||||
<td class="text-center">{{item.duration}}</td>
|
||||
<td class="text-center">{{item.context}}</td>
|
||||
</tr>
|
||||
<tr v-for="(item,index) in ownerRepairDetailInfo.repairUsers">
|
||||
<td scope="row" class="text-center">{{index+1}}</td>
|
||||
<td class="text-center">{{item.staffName}}</td>
|
||||
<td class="text-center">{{item.stateName}}</td>
|
||||
<td class="text-center">{{item.endTime}}</td>
|
||||
<td class="text-center">{{item.duration}}</td>
|
||||
<td class="text-center">{{item.context}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@ -19,7 +19,9 @@
|
||||
photos: [],
|
||||
repairPhotos: [],
|
||||
beforePhotos: [],
|
||||
afterPhotos: []
|
||||
afterPhotos: [],
|
||||
visitType:'',
|
||||
visitContext:''
|
||||
}
|
||||
},
|
||||
_initMethod: function () {
|
||||
|
||||
119
public/pages/property/repairReturnVisit/repairReturnVisit.html
Normal file
119
public/pages/property/repairReturnVisit/repairReturnVisit.html
Normal file
@ -0,0 +1,119 @@
|
||||
<div class="animated fadeInRight ecommerce">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="ibox ">
|
||||
<div class="ibox-title">
|
||||
<h5>查询条件</h5>
|
||||
<div class="ibox-tools" style="top:10px;">
|
||||
<button type="button" class="btn btn-link btn-sm" style="margin-right:10px;"
|
||||
v-on:click="_moreCondition()">{{repairReturnVisitInfo.moreCondition == true?'隐藏':'更多'}}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
<div class="form-group">
|
||||
<select class="custom-select" v-model="repairReturnVisitInfo.conditions.repairType">
|
||||
<option selected value="">请选择报修类型</option>
|
||||
<option v-for="(item,index) in repairReturnVisitInfo.repairSettings"
|
||||
:value="item.repairType">{{item.repairTypeName}}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<div class="form-group">
|
||||
<input type="text" placeholder="请输入报修人"
|
||||
v-model="repairReturnVisitInfo.conditions.repairName" class=" form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<div class="form-group">
|
||||
<select class="custom-select" v-model="repairReturnVisitInfo.conditions.state">
|
||||
<option selected value="waiting"> 待回访</option>
|
||||
<option selected value="finish"> 已回访</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<button type="button" class="btn btn-primary btn-sm" v-on:click="_queryRepairPoolMethod()">
|
||||
<i class="fa fa-search"></i> 查询
|
||||
</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4" v-if="repairReturnVisitInfo.moreCondition == true">
|
||||
<input type="text" placeholder="请输入报修ID" v-model="repairReturnVisitInfo.conditions.repairId"
|
||||
class=" form-control">
|
||||
</div>
|
||||
<div class="col-sm-3" v-if="repairReturnVisitInfo.moreCondition == true">
|
||||
<input type="text" placeholder="请输入报修电话" v-model="repairReturnVisitInfo.conditions.tel"
|
||||
class=" form-control">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="ibox">
|
||||
<div class="ibox-title">
|
||||
<h5><span v-text="repairReturnVisitInfo.conditions.roomName"></span>报修回访</h5>
|
||||
<div class="ibox-tools" style="top:10px;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<table class="footable table table-stripped toggle-arrow-tiny" data-page-size="15">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-center">工单编码</th>
|
||||
<th class="text-center">位置</th>
|
||||
<th class="text-center">报修类型</th>
|
||||
<th class="text-center">报修人</th>
|
||||
<th class="text-center">联系方式</th>
|
||||
<th class="text-center">预约时间</th>
|
||||
<th class="text-center">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="repairPool in repairReturnVisitInfo.repairPools">
|
||||
<td class="text-center">{{repairPool.repairId}}</td>
|
||||
<td class="text-center">{{repairPool.repairObjName}}</td>
|
||||
<td class="text-center">{{repairPool.repairTypeName}}</td>
|
||||
<td class="text-center">{{repairPool.repairName}}</td>
|
||||
<td class="text-center">{{repairPool.tel}}</td>
|
||||
<td class="text-center">{{repairPool.appointmentTime}}</td>
|
||||
|
||||
<td class="text-center">
|
||||
<div class="btn-group">
|
||||
<button class="btn-white btn btn-xs"
|
||||
v-on:click="_openEditOwnerRepairModel(repairPool)">回访
|
||||
</button>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button class="btn-white btn btn-xs"
|
||||
v-on:click="_openRepairDetail(repairPool)">详情
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="7">
|
||||
<ul class="pagination float-right"></ul>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
<!-- 分页 -->
|
||||
<vc:create path="frame/pagination"></vc:create>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<vc:create path="property/visitOwnerRepair"></vc:create>
|
||||
</div>
|
||||
121
public/pages/property/repairReturnVisit/repairReturnVisit.js
Normal file
121
public/pages/property/repairReturnVisit/repairReturnVisit.js
Normal file
@ -0,0 +1,121 @@
|
||||
/**
|
||||
入驻小区
|
||||
**/
|
||||
(function (vc) {
|
||||
var DEFAULT_PAGE = 1;
|
||||
var DEFAULT_ROWS = 10;
|
||||
vc.extends({
|
||||
data: {
|
||||
repairReturnVisitInfo: {
|
||||
repairPools: [],
|
||||
total: 0,
|
||||
records: 1,
|
||||
moreCondition: false,
|
||||
repairName: '',
|
||||
repairSettings: [],
|
||||
states: [],
|
||||
conditions: {
|
||||
repairId: '',
|
||||
repairName: '',
|
||||
tel: '',
|
||||
repairType: '',
|
||||
roomId: '',
|
||||
roomName: '',
|
||||
ownerId: '',
|
||||
state: 'waiting'
|
||||
}
|
||||
}
|
||||
},
|
||||
_initMethod: function () {
|
||||
//vc.component._listRepairPools(DEFAULT_PAGE, DEFAULT_ROWS);
|
||||
//vc.component._validateParam();
|
||||
$that._listRepairSettings(DEFAULT_PAGE, 50);
|
||||
vc.getDict('r_repair_pool', "state", function (_data) {
|
||||
vc.component.repairReturnVisitInfo.states = _data;
|
||||
});
|
||||
vc.component._listRepairPools(DEFAULT_PAGE, DEFAULT_ROWS);
|
||||
},
|
||||
_initEvent: function () {
|
||||
vc.on('repairReturnVisit', 'listRepairPool', function (_param) {
|
||||
vc.component._listRepairPools(DEFAULT_PAGE, DEFAULT_ROWS);
|
||||
});
|
||||
vc.on('pagination', 'page_event', function (_currentPage) {
|
||||
vc.component._listRepairPools(_currentPage, DEFAULT_ROWS);
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
//查询方法
|
||||
_listRepairPools: function (_page, _rows) {
|
||||
vc.component.repairReturnVisitInfo.conditions.page = _page;
|
||||
vc.component.repairReturnVisitInfo.conditions.row = _rows;
|
||||
vc.component.repairReturnVisitInfo.conditions.communityId = vc.getCurrentCommunity().communityId;
|
||||
var param = {
|
||||
params: vc.component.repairReturnVisitInfo.conditions
|
||||
};
|
||||
//报修人查询框去空
|
||||
param.params.repairName = param.params.repairName.trim();
|
||||
//报修ID查询框去空
|
||||
param.params.repairId = param.params.repairId.trim();
|
||||
//报修电话查询框去空
|
||||
param.params.tel = param.params.tel.trim();
|
||||
//发送get请求
|
||||
vc.http.apiGet('/repair/queryRepairReturnVisit',
|
||||
param,
|
||||
function (json, res) {
|
||||
var _repairReturnVisitInfo = JSON.parse(json);
|
||||
vc.component.repairReturnVisitInfo.total = _repairReturnVisitInfo.total;
|
||||
vc.component.repairReturnVisitInfo.records = _repairReturnVisitInfo.records;
|
||||
vc.component.repairReturnVisitInfo.repairPools = _repairReturnVisitInfo.data;
|
||||
vc.emit('pagination', 'init', {
|
||||
total: vc.component.repairReturnVisitInfo.records,
|
||||
currentPage: _page
|
||||
});
|
||||
}, function (errInfo, error) {
|
||||
console.log('请求失败处理');
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
_openRepairDetail: function (_repairPool) {
|
||||
vc.jumpToPage('/admin.html#/pages/property/ownerRepairDetail?repairId=' + _repairPool.repairId)
|
||||
},
|
||||
//查询
|
||||
_queryRepairPoolMethod: function () {
|
||||
vc.component._listRepairPools(DEFAULT_PAGE, DEFAULT_ROWS);
|
||||
},
|
||||
|
||||
_openEditOwnerRepairModel: function (_repairPool) {
|
||||
// _ownerRepair.roomName = vc.component.ownerRepairManageInfo.conditions.roomName;
|
||||
// _ownerRepair.roomId = vc.component.ownerRepairManageInfo.conditions.roomId;
|
||||
vc.emit('visitOwnerRepair', 'openVisitOwnerRepairModal', _repairPool);
|
||||
},
|
||||
|
||||
_moreCondition: function () {
|
||||
if (vc.component.repairReturnVisitInfo.moreCondition) {
|
||||
vc.component.repairReturnVisitInfo.moreCondition = false;
|
||||
} else {
|
||||
vc.component.repairReturnVisitInfo.moreCondition = true;
|
||||
}
|
||||
},
|
||||
_listRepairSettings: function (_page, _rows) {
|
||||
var param = {
|
||||
params: {
|
||||
page: _page,
|
||||
row: _rows,
|
||||
communityId: vc.getCurrentCommunity().communityId
|
||||
}
|
||||
};
|
||||
//发送get请求
|
||||
vc.http.apiGet('repair.listRepairSettings',
|
||||
param,
|
||||
function (json, res) {
|
||||
var _repairSettingManageInfo = JSON.parse(json);
|
||||
vc.component.repairReturnVisitInfo.repairSettings = _repairSettingManageInfo.data;
|
||||
}, function (errInfo, error) {
|
||||
console.log('请求失败处理');
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
})(window.vc);
|
||||
Loading…
Reference in New Issue
Block a user