mirror of
https://gitee.com/java110/MicroCommunityWeb.git
synced 2026-06-16 03:33:27 +08:00
优化退费bug
This commit is contained in:
parent
6f42b70523
commit
f9448fbc99
44
app.js
44
app.js
@ -7,7 +7,7 @@ var logger = require('morgan');
|
||||
var indexRouter = require('./routes/index');
|
||||
var usersRouter = require('./routes/users');
|
||||
|
||||
const proxy = require('express-http-proxy');
|
||||
const proxy = require('express-http-proxy');
|
||||
|
||||
var app = express();
|
||||
|
||||
@ -18,15 +18,15 @@ app.set('view engine', 'jade');
|
||||
app.use(logger('dev'));
|
||||
// 反向代理(这里把需要进行反代的路径配置到这里即可)
|
||||
let opts = {
|
||||
preserveHostHdr: true,
|
||||
reqAsBuffer: true,
|
||||
//转发之前触发该方法
|
||||
proxyReqPathResolver: function(req, res) {
|
||||
//这个代理会把匹配到的url(下面的 ‘/api’等)去掉,转发过去直接404,这里手动加回来,
|
||||
req.url = req.baseUrl+req.url;
|
||||
//console.log(1,req,res)
|
||||
return require('url').parse(req.url).path;
|
||||
},
|
||||
preserveHostHdr: true,
|
||||
reqAsBuffer: true,
|
||||
//转发之前触发该方法
|
||||
proxyReqPathResolver: function(req, res) {
|
||||
//这个代理会把匹配到的url(下面的 ‘/api’等)去掉,转发过去直接404,这里手动加回来,
|
||||
req.url = req.baseUrl + req.url;
|
||||
//console.log(1,req,res)
|
||||
return require('url').parse(req.url).path;
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
@ -36,11 +36,11 @@ let opts = {
|
||||
// app.use('/callComponent',proxy('http://api.demo.winqi.cn:8012',opts));
|
||||
|
||||
|
||||
app.use('/callComponent',proxy('http://proxy.homecommunity.cn:9011',opts));
|
||||
app.use('/app',proxy('http://proxy.homecommunity.cn:9011',opts));
|
||||
app.use('/callComponent', proxy('http://proxy.homecommunity.cn:9011', opts));
|
||||
app.use('/app', proxy('http://proxy.homecommunity.cn:9011', opts));
|
||||
|
||||
// app.use('/callComponent',proxy('http://127.0.0.1:8008',opts));
|
||||
// app.use('/app',proxy('http://127.0.0.1:8008',opts));
|
||||
// app.use('/callComponent', proxy('http://127.0.0.1:8008', opts));
|
||||
// app.use('/app', proxy('http://127.0.0.1:8008', opts));
|
||||
// app.use('/ws',proxy('http://127.0.0.1:8008',opts));
|
||||
// app.use('/callComponent',proxy('http://192.168.1.106:8012',opts));
|
||||
// app.use('/app',proxy('http://192.168.1.106:8012',opts));
|
||||
@ -63,18 +63,18 @@ app.use('/users', usersRouter);
|
||||
|
||||
// catch 404 and forward to error handler
|
||||
app.use(function(req, res, next) {
|
||||
next(createError(404));
|
||||
next(createError(404));
|
||||
});
|
||||
|
||||
// error handler
|
||||
app.use(function(err, req, res, next) {
|
||||
// set locals, only providing error in development
|
||||
res.locals.message = err.message;
|
||||
res.locals.error = req.app.get('env') === 'development' ? err : {};
|
||||
// set locals, only providing error in development
|
||||
res.locals.message = err.message;
|
||||
res.locals.error = req.app.get('env') === 'development' ? err : {};
|
||||
|
||||
// render the error page
|
||||
res.status(err.status || 500);
|
||||
res.render('error');
|
||||
// render the error page
|
||||
res.status(err.status || 500);
|
||||
res.render('error');
|
||||
});
|
||||
|
||||
module.exports = app;
|
||||
module.exports = app;
|
||||
@ -9,10 +9,8 @@
|
||||
<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="tempImportRoomFeeInfo.feeTypeCd"
|
||||
@change="_changeFeeTypeCd(tempImportRoomFeeInfo.feeTypeCd)">
|
||||
<select class="custom-select" v-model="tempImportRoomFeeInfo.feeTypeCd" @change="_changeFeeTypeCd(tempImportRoomFeeInfo.feeTypeCd)">
|
||||
<option selected disabled value="">必填,请选择费用类型</option>
|
||||
|
||||
<option v-for="(item,index) in tempImportRoomFeeInfo.feeTypeCds" :key="index"
|
||||
v-bind:value="item.statusCd" >
|
||||
{{item.name}}
|
||||
@ -22,44 +20,55 @@
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">费用对象</label>
|
||||
<div class="col-sm-10">
|
||||
<input v-model="tempImportRoomFeeInfo.objName" type="text" disabled="disabled"
|
||||
placeholder="必填,请填写费用对象" class="form-control ">
|
||||
<input v-model="tempImportRoomFeeInfo.objName" type="text" disabled="disabled" placeholder="必填,请填写费用对象" class="form-control ">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="form-group row" v-if="tempImportRoomFeeInfo.feeNameFlag == 'S'">
|
||||
<label class="col-sm-2 col-form-label">费用名称</label>
|
||||
<div class="col-sm-10">
|
||||
<input v-model="tempImportRoomFeeInfo.feeName" type="text"
|
||||
placeholder="必填,请填写费用对象" class="form-control ">
|
||||
<div class="col-sm-8">
|
||||
<select class="custom-select" v-model="tempImportRoomFeeInfo.feeName">
|
||||
<option selected disabled value="">必填,请选择收费项目</option>
|
||||
<option v-for="(item,index) in tempImportRoomFeeInfo.feeConfigs" :key="index"
|
||||
v-bind:value="item.feeName">{{item.feeName}}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<button type="button" class="btn btn-white" @click="_inputFeeName()">输入</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row" v-else>
|
||||
<label class="col-sm-2 col-form-label">费用名称</label>
|
||||
<div class="col-sm-8">
|
||||
<input v-model="tempImportRoomFeeInfo.feeName" type="text" placeholder="必填,请填写费用名称" class="form-control ">
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<button type="button" class="btn btn-white" @click="_inputFeeName()">选择</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">收费金额</label>
|
||||
<div class="col-sm-10">
|
||||
<input v-model="tempImportRoomFeeInfo.amount" type="text"
|
||||
placeholder="必填,请填写费用对象" class="form-control ">
|
||||
<input v-model="tempImportRoomFeeInfo.amount" type="text" placeholder="必填,请填写收费金额" class="form-control ">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">开始时间</label>
|
||||
<div class="col-sm-10">
|
||||
<input v-model="tempImportRoomFeeInfo.startTime" type="text"
|
||||
placeholder="必填,请填写开始时间" class="form-control tempImportFeeStartTime">
|
||||
<input v-model="tempImportRoomFeeInfo.startTime" type="text" placeholder="必填,请填写开始时间" class="form-control tempImportFeeStartTime">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label">结束时间</label>
|
||||
<div class="col-sm-10">
|
||||
<input v-model="tempImportRoomFeeInfo.endTime" type="text"
|
||||
placeholder="必填,请填写结束时间" class="form-control tempImportFeeEndTime">
|
||||
<input v-model="tempImportRoomFeeInfo.endTime" type="text" placeholder="必填,请填写结束时间" class="form-control tempImportFeeEndTime">
|
||||
</div>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<button class="btn btn-primary float-right" type="button" v-on:click="_saveTempImportFeeInfo()"><i
|
||||
class="fa fa-check"></i> 提交
|
||||
</button>
|
||||
<button type="button" class="btn btn-warning float-right" style="margin-right:20px;"
|
||||
data-dismiss="modal">取消
|
||||
<button type="button" class="btn btn-warning float-right" style="margin-right:20px;" data-dismiss="modal">取消
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
(function (vc) {
|
||||
(function(vc) {
|
||||
|
||||
vc.extends({
|
||||
data: {
|
||||
@ -12,17 +12,19 @@
|
||||
objId: '',
|
||||
amount: '',
|
||||
startTime: '',
|
||||
endTime: ''
|
||||
endTime: '',
|
||||
feeConfigs: [],
|
||||
feeNameFlag: 'S'
|
||||
}
|
||||
},
|
||||
_initMethod: function () {
|
||||
vc.getDict('pay_fee_config', "fee_type_cd", function (_data) {
|
||||
_initMethod: function() {
|
||||
vc.getDict('pay_fee_config', "fee_type_cd", function(_data) {
|
||||
vc.component.tempImportRoomFeeInfo.feeTypeCds = _data;
|
||||
});
|
||||
vc.initDate('tempImportFeeStartTime', function (_startTime) {
|
||||
vc.initDate('tempImportFeeStartTime', function(_startTime) {
|
||||
$that.tempImportRoomFeeInfo.startTime = _startTime;
|
||||
});
|
||||
vc.initDate('tempImportFeeEndTime', function (_endTime) {
|
||||
vc.initDate('tempImportFeeEndTime', function(_endTime) {
|
||||
$that.tempImportRoomFeeInfo.endTime = _endTime;
|
||||
let start = Date.parse(new Date($that.tempImportRoomFeeInfo.startTime))
|
||||
let end = Date.parse(new Date($that.tempImportRoomFeeInfo.endTime))
|
||||
@ -32,9 +34,9 @@
|
||||
}
|
||||
});
|
||||
},
|
||||
_initEvent: function () {
|
||||
_initEvent: function() {
|
||||
vc.on('tempImportRoomFee', 'openImportRoomFeeModal',
|
||||
function (_room) {
|
||||
function(_room) {
|
||||
$that.clearTempImportRoomFeeInfo();
|
||||
$that.tempImportRoomFeeInfo.objId = _room.roomId;
|
||||
$that.tempImportRoomFeeInfo.objName = _room.roomName;
|
||||
@ -48,74 +50,64 @@
|
||||
tempImportRoomFeeValidate() {
|
||||
return vc.validate.validate({
|
||||
tempImportRoomFeeInfo: vc.component.tempImportRoomFeeInfo
|
||||
},
|
||||
{
|
||||
'tempImportRoomFeeInfo.communityId': [{
|
||||
}, {
|
||||
'tempImportRoomFeeInfo.communityId': [{
|
||||
limit: "required",
|
||||
param: "",
|
||||
errInfo: "数据异常还没有入驻小区"
|
||||
}],
|
||||
'tempImportRoomFeeInfo.feeTypeCd': [{
|
||||
limit: "required",
|
||||
param: "",
|
||||
errInfo: "费用类型不能为空"
|
||||
}],
|
||||
'tempImportRoomFeeInfo.feeName': [{
|
||||
limit: "required",
|
||||
param: "",
|
||||
errInfo: "费用名称不能为空"
|
||||
}],
|
||||
'tempImportRoomFeeInfo.objId': [{
|
||||
limit: "required",
|
||||
param: "",
|
||||
errInfo: "费用对象不能为空"
|
||||
}],
|
||||
'tempImportRoomFeeInfo.startTime': [{
|
||||
limit: "required",
|
||||
param: "",
|
||||
errInfo: "数据异常还没有入驻小区"
|
||||
}
|
||||
],
|
||||
'tempImportRoomFeeInfo.feeTypeCd': [{
|
||||
errInfo: "开始时间不能为空"
|
||||
},
|
||||
{
|
||||
limit: "date",
|
||||
param: "",
|
||||
errInfo: "开始时间格式错误"
|
||||
},
|
||||
],
|
||||
'tempImportRoomFeeInfo.endTime': [{
|
||||
limit: "required",
|
||||
param: "",
|
||||
errInfo: "费用类型不能为空"
|
||||
}
|
||||
],
|
||||
'tempImportRoomFeeInfo.feeName': [
|
||||
{
|
||||
limit: "required",
|
||||
param: "",
|
||||
errInfo: "费用名称不能为空"
|
||||
}
|
||||
],
|
||||
'tempImportRoomFeeInfo.objId': [
|
||||
{
|
||||
limit: "required",
|
||||
param: "",
|
||||
errInfo: "费用对象不能为空"
|
||||
}
|
||||
],
|
||||
'tempImportRoomFeeInfo.startTime': [
|
||||
{
|
||||
limit: "required",
|
||||
param: "",
|
||||
errInfo: "开始时间不能为空"
|
||||
},
|
||||
{
|
||||
limit: "date",
|
||||
param: "",
|
||||
errInfo: "开始时间格式错误"
|
||||
},
|
||||
],
|
||||
'tempImportRoomFeeInfo.endTime': [
|
||||
{
|
||||
limit: "required",
|
||||
param: "",
|
||||
errInfo: "结束时间不能为空"
|
||||
},
|
||||
{
|
||||
limit: "date",
|
||||
param: "",
|
||||
errInfo: "结束时间格式错误"
|
||||
},
|
||||
],
|
||||
errInfo: "结束时间不能为空"
|
||||
},
|
||||
{
|
||||
limit: "date",
|
||||
param: "",
|
||||
errInfo: "结束时间格式错误"
|
||||
},
|
||||
],
|
||||
|
||||
'tempImportRoomFeeInfo.amount': [
|
||||
{
|
||||
limit: "required",
|
||||
param: "",
|
||||
errInfo: "金额不能为空"
|
||||
},
|
||||
{
|
||||
limit: "money",
|
||||
param: "",
|
||||
errInfo: "金额格式错误"
|
||||
},
|
||||
],
|
||||
});
|
||||
'tempImportRoomFeeInfo.amount': [{
|
||||
limit: "required",
|
||||
param: "",
|
||||
errInfo: "金额不能为空"
|
||||
},
|
||||
{
|
||||
limit: "money",
|
||||
param: "",
|
||||
errInfo: "金额格式错误"
|
||||
},
|
||||
],
|
||||
});
|
||||
},
|
||||
clearTempImportRoomFeeInfo: function () {
|
||||
clearTempImportRoomFeeInfo: function() {
|
||||
var _feeTypeCds = vc.component.tempImportRoomFeeInfo.feeTypeCds;
|
||||
vc.component.tempImportRoomFeeInfo = {
|
||||
communityId: vc.getCurrentCommunity().communityId,
|
||||
@ -126,10 +118,12 @@
|
||||
objId: '',
|
||||
amount: '',
|
||||
startTime: '',
|
||||
endTime: ''
|
||||
endTime: '',
|
||||
feeNameFlag: 'S',
|
||||
feeConfigs: []
|
||||
};
|
||||
},
|
||||
_saveTempImportFeeInfo: function () {
|
||||
_saveTempImportFeeInfo: function() {
|
||||
if (!vc.component.tempImportRoomFeeValidate()) {
|
||||
vc.toast(vc.validate.errInfo);
|
||||
return;
|
||||
@ -138,11 +132,10 @@
|
||||
|
||||
vc.http.post(
|
||||
'importRoomFee', 'importTempData',
|
||||
JSON.stringify(vc.component.tempImportRoomFeeInfo),
|
||||
{
|
||||
JSON.stringify(vc.component.tempImportRoomFeeInfo), {
|
||||
emulateJSON: true
|
||||
},
|
||||
function (json, res) {
|
||||
function(json, res) {
|
||||
//vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
|
||||
let _json = JSON.parse(json);
|
||||
if (_json.code == 0) {
|
||||
@ -154,11 +147,41 @@
|
||||
}
|
||||
vc.message(_json.msg);
|
||||
},
|
||||
function (errInfo, error) {
|
||||
function(errInfo, error) {
|
||||
console.log('请求失败处理');
|
||||
vc.message(errInfo);
|
||||
});
|
||||
},
|
||||
_changeFeeTypeCd: function(_feeTypeCd) {
|
||||
let param = {
|
||||
params: {
|
||||
page: 1,
|
||||
row: 500,
|
||||
communityId: vc.getCurrentCommunity().communityId,
|
||||
feeTypeCd: _feeTypeCd,
|
||||
isDefault: 'F',
|
||||
valid: '1'
|
||||
}
|
||||
};
|
||||
//发送get请求
|
||||
vc.http.get('roomCreateFeeAdd', 'list', param,
|
||||
function(json, res) {
|
||||
let _feeConfigManageInfo = JSON.parse(json);
|
||||
$that.tempImportRoomFeeInfo.feeConfigs = _feeConfigManageInfo.feeConfigs;
|
||||
},
|
||||
function(errInfo, error) {
|
||||
console.log('请求失败处理');
|
||||
});
|
||||
},
|
||||
_inputFeeName: function() {
|
||||
let _feeNameFlag = vc.component.tempImportRoomFeeInfo.feeNameFlag;
|
||||
|
||||
if (_feeNameFlag != 'S') {
|
||||
vc.component.tempImportRoomFeeInfo.feeNameFlag = 'S';
|
||||
} else {
|
||||
vc.component.tempImportRoomFeeInfo.feeNameFlag = 'I';
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@ -9,8 +9,7 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<div class="form-group">
|
||||
<input type="text" placeholder="缴费ID"
|
||||
v-model="returnPayFeeManageInfo.conditions.detailId" class=" form-control">
|
||||
<input type="text" placeholder="缴费ID" v-model="returnPayFeeManageInfo.conditions.detailId" class=" form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
@ -30,8 +29,7 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-1">
|
||||
<button type="button" class="btn btn-primary btn-sm"
|
||||
v-on:click="_queryReturnPayFeeMethod()">
|
||||
<button type="button" class="btn btn-primary btn-sm" v-on:click="_queryReturnPayFeeMethod()">
|
||||
<i class="fa fa-search"></i> 查询
|
||||
</button>
|
||||
</div>
|
||||
@ -50,59 +48,58 @@
|
||||
<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">缴费ID</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>
|
||||
<th class="text-center">审核状态</th>
|
||||
<th class="text-center">操作</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="text-center">退款单号</th>
|
||||
<th class="text-center">缴费ID</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>
|
||||
<th class="text-center">审核状态</th>
|
||||
<th class="text-center">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="payFee in returnPayFeeManageInfo.returnPayFees">
|
||||
<td class="text-center">{{payFee.returnFeeId}}</td>
|
||||
<td class="text-center">{{payFee.detailId}}</td>
|
||||
<td class="text-center">{{payFee.feeTypeCdName}}</td>
|
||||
<td class="text-center" v-if="payFee.payerObjType == '3333'">
|
||||
{{payFee.floorNum}}-{{payFee.unitNum}}-{{payFee.roomNum}}
|
||||
</td>
|
||||
<td class="text-center" v-if="payFee.payerObjType == '6666'">
|
||||
{{payFee.paNum}}-{{payFee.psNum}}-{{payFee.carNum}}
|
||||
</td>
|
||||
<td class="text-center">{{vc.unum(payFee.cycles)}}</td>
|
||||
<td class="text-center">{{vc.unum(payFee.receivableAmount)}}</td>
|
||||
<td class="text-center">{{vc.unum(payFee.receivedAmount)}}</td>
|
||||
<td class="text-center">{{payFee.reason}}</td>
|
||||
<td class="text-center">
|
||||
<span class="badge badge-success"
|
||||
v-if="payFee.state == '1100'">{{payFee.stateName}}</span>
|
||||
<span class="badge badge-danger"
|
||||
v-else-if="payFee.state == '1200'">{{payFee.stateName}}</span>
|
||||
<span class="badge badge-info" v-else>{{payFee.stateName}}</span>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<div class="btn-group">
|
||||
<button class="btn-white btn btn-xs" v-if="payFee.state == 1000"
|
||||
v-on:click="_openReturnPayFeeAuditModel(payFee)">审核
|
||||
<tr v-for="payFee in returnPayFeeManageInfo.returnPayFees">
|
||||
<td class="text-center">{{payFee.returnFeeId}}</td>
|
||||
<td class="text-center">{{payFee.detailId}}</td>
|
||||
<td class="text-center">{{payFee.feeTypeCdName}}</td>
|
||||
<td class="text-center" v-if="payFee.payerObjType == '3333'">
|
||||
{{payFee.floorNum}}-{{payFee.unitNum}}-{{payFee.roomNum}}
|
||||
</td>
|
||||
<td class="text-center" v-else-if="payFee.payerObjType == '6666'">
|
||||
{{payFee.paNum}}-{{payFee.psNum}}-{{payFee.carNum}}
|
||||
</td>
|
||||
<td class="text-center" v-else>
|
||||
无
|
||||
</td>
|
||||
<td class="text-center">{{vc.unum(payFee.cycles)}}</td>
|
||||
<td class="text-center">{{vc.unum(payFee.receivableAmount)}}</td>
|
||||
<td class="text-center">{{vc.unum(payFee.receivedAmount)}}</td>
|
||||
<td class="text-center">{{payFee.reason}}</td>
|
||||
<td class="text-center">
|
||||
<span class="badge badge-success" v-if="payFee.state == '1100'">{{payFee.stateName}}</span>
|
||||
<span class="badge badge-danger" v-else-if="payFee.state == '1200'">{{payFee.stateName}}</span>
|
||||
<span class="badge badge-info" v-else>{{payFee.stateName}}</span>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<div class="btn-group">
|
||||
<button class="btn-white btn btn-xs" v-if="payFee.state == 1000" v-on:click="_openReturnPayFeeAuditModel(payFee)">审核
|
||||
</button>
|
||||
<button class="btn-white btn btn-xs"
|
||||
v-on:click="_toReturnFeeDetail(payFee)">详情
|
||||
<button class="btn-white btn btn-xs" v-on:click="_toReturnFeeDetail(payFee)">详情
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="10">
|
||||
<ul class="pagination float-right"></ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="10">
|
||||
<ul class="pagination float-right"></ul>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
<!-- 分页 -->
|
||||
|
||||
Loading…
Reference in New Issue
Block a user