Commit ddfc1c3c authored by 黄奎's avatar 黄奎

页面修改

parent 1b38111c
<style> <style>
.investigationDetail .item{ .investigationDetail .item {
padding: 20px 0 10px 20px; padding: 20px 0 10px 20px;
} }
</style> </style>
<template> <template>
<el-form class="investigationDetail"> <el-form class="investigationDetail">
<div v-for="(item, index) in details" :key="index" > <div v-for="(item, index) in details" :key="index">
<p>{{index+1}}{{item.Title}}</p> <p>{{index+1}}{{item.Title}}</p>
<div class="item"> <div class="item">
<el-rate <el-rate disabled="disabled" v-if="item.SurveyType === 1" v-model="item.ScoreNum" :texts="texts" show-text>
disabled="disabled"
v-if="item.SurveyType === 1"
v-model="item.ScoreNum"
:texts="texts"
show-text>
</el-rate> </el-rate>
<template v-else-if="item.SurveyType === 2"> <template v-else-if="item.SurveyType === 2">
<template v-for="(r, i) in item.SurveyOptionsList" v-if="r.IsCheck!=='0'"> <template v-for="(r, i) in item.SurveyOptionsList" v-if="r.IsCheck!=='0'">
<span>{{r.OptionsName}}</span> <span>{{r.OptionsName}}</span>
</template> </template>
</template> </template>
<template v-else-if="item.SurveyType === 3"> <template v-else-if="item.SurveyType === 3">
<template v-for="(r, i) in item.SurveyOptionsList" v-if="r.IsCheck!=='0'"> <template v-for="(r, i) in item.SurveyOptionsList" v-if="r.IsCheck!=='0'">
<span>{{r.OptionsName}}</span> <span>{{r.OptionsName}}</span>
</template> </template>
</template> </template>
<template v-else-if="item.SurveyType === 4"> <template v-else-if="item.SurveyType === 4">
<span>{{item.TextContent}}</span> <span>{{item.TextContent}}</span>
</template> </template>
</div> </div>
</div> </div>
</el-form> </el-form>
</template> </template>
<script> <script>
export default { export default {
props:['ID'], props: ['ID'],
data(){ data() {
return{ return {
details: [], details: [],
texts: ['非常不满意', '不满意', '感觉一般', '满意', '非常满意'] texts: ['非常不满意', '不满意', '感觉一般', '满意', '非常满意']
} }
},watch: { },
ID: { watch: {
handler: function(val, oldVal) { ID: {
if (val !== oldVal){ handler: function (val, oldVal) {
this.getDetails() if (val !== oldVal) {
} this.getDetails()
}, }
deep: true },
} deep: true
},mounted() { }
this.getDetails() },
},methods: { mounted() {
getDetails: function () { this.getDetails()
this.apipost('survey_post_GetGuestSurvey', {SurveyID: this.ID}, res=>{ },
if (res.data.resultCode === 1) { methods: {
let data = res.data.data getDetails: function () {
data.map(x=>{ this.apipost('survey_post_GetGuestSurvey', {
if (x.SurveyType === 2) { SurveyID: this.ID
x.SurveyOptionsList.map(y=>{ }, res => {
if (y.IsCheck === '1') { if (res.data.resultCode === 1) {
x.lable = y.ID let data = res.data.data
} data.map(x => {
}) if (x.SurveyType === 2) {
} x.SurveyOptionsList.map(y => {
if (x.SurveyType === 3) { if (y.IsCheck === '1') {
let ckeckList = [] x.lable = y.ID
x.SurveyOptionsList.map(y=>{ }
if (y.IsCheck === '1') { })
ckeckList.push(y.ID) }
} if (x.SurveyType === 3) {
}) let ckeckList = []
x.ckeckList = ckeckList x.SurveyOptionsList.map(y => {
} if (y.IsCheck === '1') {
}) ckeckList.push(y.ID)
this.details = data }
} })
}, null) x.ckeckList = ckeckList
}
})
this.details = data
}
}, null)
}
} }
} }
}
</script> </script>
<style> <style>
.investigationList td button{ .investigationList td button {
width: 30px; width: 30px;
height: 30px; height: 30px;
display: inline-block; display: inline-block;
color: white !important; color: white !important;
border-radius: 50%; border-radius: 50%;
text-align: center; text-align: center;
line-height: 30px; line-height: 30px;
margin-right: 10px; margin-right: 10px;
cursor: pointer; cursor: pointer;
outline: none; outline: none;
padding: 0; padding: 0;
} }
.investigationList .el-button.is-circle{
padding: 0; .investigationList .el-button.is-circle {
} padding: 0;
}
</style> </style>
<template> <template>
<div class="investigationList"> <div class="investigationList">
...@@ -27,95 +29,85 @@ ...@@ -27,95 +29,85 @@
<th>分数</th> <th>分数</th>
<th>{{$t('system.table_operation')}}</th> <th>{{$t('system.table_operation')}}</th>
</tr> </tr>
<tr v-for="item in dataList"> <tr v-for="(item,index) in dataList" :key="index">
<td>{{item.OrderID}}</td> <td>{{item.OrderID}}</td>
<td>{{item.GuestName}}</td> <td>{{item.GuestName}}</td>
<td>{{item.EnterName}}</td> <td>{{item.EnterName}}</td>
<td>{{item.CustomerName}}</td> <td>{{item.CustomerName}}</td>
<td>{{item.ScoreNum}}</td> <td>{{item.ScoreNum}}</td>
<td> <td>
<el-tooltip class="item" effect="dark" content="查看问券" placement="top"> <el-tooltip class="item" effect="dark" content="查看问券" placement="top">
<el-button <el-button type="primary" icon="iconfont icon-sousuo" circle
type="primary" @click="dialogTitle = '游客问券',DiaoChaShow=true, openPage(item)">
icon="iconfont icon-sousuo" </el-button>
circle </el-tooltip>
@click="dialogTitle = '游客问券', openPage(item)" <el-tooltip class="item" effect="dark" content="查看游记" placement="top">
></el-button> <el-button v-if="item.NotesId > 0" type="primary" icon="iconfont icon-youji" circle
<!-- showID = item.ID, DiaoChaShow = true --> @click="dialogTitle = '游记', showID = item.NotesId, YouJiShow = true"></el-button>
</el-tooltip> </el-tooltip>
<el-tooltip class="item" effect="dark" content="查看游记" placement="top"> </td>
<el-button
v-if="item.NotesId > 0"
type="primary"
icon="iconfont icon-youji"
circle
@click="dialogTitle = '游记', showID = item.NotesId, YouJiShow = true"
></el-button>
</el-tooltip>
</td>
</tr> </tr>
</table> </table>
<div class="noDataNotice" v-if="dataList.length<1"> <div class="noDataNotice" v-if="dataList.length<1">
<i class="iconfont icon-kong"></i> <i class="iconfont icon-kong"></i>
<p>{{$t("active.ld_noData")}}</p> <p>{{$t("active.ld_noData")}}</p>
</div> </div>
<el-dialog <el-dialog custom-class="w400" :title="dialogTitle" :visible.sync="DiaoChaShow" center :before-close="closeDialog">
custom-class="w400" <DiaoCha :ID="showID" />
:title="dialogTitle"
:visible.sync="DiaoChaShow"
center
:before-close="closeDialog">
<DiaoCha :ID="showID"/>
</el-dialog> </el-dialog>
<el-dialog <el-dialog custom-class="w500" :title="dialogTitle" :visible.sync="YouJiShow" center :before-close="closeDialog">
custom-class="w500" <YouJi :ID="showID" />
:title="dialogTitle"
:visible.sync="YouJiShow"
center
:before-close="closeDialog">
<YouJi :ID="showID"/>
</el-dialog> </el-dialog>
<a href="" id="blankLink" target="_blank" style="display:none">1</a> <a href="" id="blankLink" target="_blank" style="display:none">1</a>
</div> </div>
</template> </template>
<script> <script>
import DiaoCha from './investigationDetail'; import DiaoCha from './investigationDetail';
import YouJi from './investigationYouDetail'; import YouJi from './investigationYouDetail';
export default { export default {
components:{ components: {
DiaoCha: DiaoCha, DiaoCha: DiaoCha,
YouJi: YouJi, YouJi: YouJi,
}, },
data(){ data() {
return{ return {
loading: false, loading: false,
dataList: [], dataList: [],
DiaoChaShow: false, DiaoChaShow: false,
YouJiShow: false, YouJiShow: false,
showID: 0, showID: 0,
dialogTitle: '', dialogTitle: '',
} }
},mounted() {
let TCID = this.$route.query.TCID,
OrderID = this.$route.query.OrderId;
this.getList(TCID, OrderID);
},methods: {
openPage: function (obj){
let dom = document.querySelector("#blankLink");
dom.href = "http://activity.oytour.com/html/invesDetails2.html" + '?ID=' + obj.ID + '&name=' + encodeURI(obj.GuestName) + '&MobilePhone=' + obj.CustomerPhone
dom.click();
}, },
closeDialog: function () { mounted() {
this.DiaoChaShow = false; let TCID = this.$route.query.TCID;
this.YouJiShow = false; let OrderID = this.$route.query.OrderId;
this.getList(TCID, OrderID);
}, },
getList: function (TCID, OrderID) { methods: {
this.apipost('survey_post_GetTotalList', {TCID: TCID, OrderID: OrderID}, res=>{ openPage: function (obj) {
if (res.data.resultCode === 1) { this.showID = obj.ID;
this.dataList = res.data.data; // let dom = document.querySelector("#blankLink");
} // dom.href = "http://activity.oytour.com/html/invesDetails2.html" + '?ID=' + obj.ID + '&name=' + encodeURI(obj
}, null) // .GuestName) + '&MobilePhone=' + obj.CustomerPhone
// dom.click();
},
closeDialog: function () {
this.DiaoChaShow = false;
this.YouJiShow = false;
},
getList: function (TCID, OrderID) {
this.apipost('survey_post_GetTotalList', {
TCID: TCID,
OrderID: OrderID
}, res => {
if (res.data.resultCode === 1) {
this.dataList = res.data.data;
console.log("this.dataList", this.dataList);
}
}, null)
}
} }
} }
}
</script> </script>
...@@ -32,7 +32,8 @@ ...@@ -32,7 +32,8 @@
<em>发团时间</em> <em>发团时间</em>
</span> </span>
<el-date-picker value-format="yyyy-MM-dd" :picker-options="pickerDisabled" size="small" v-model="dateList" <el-date-picker value-format="yyyy-MM-dd" :picker-options="pickerDisabled" size="small" v-model="dateList"
type="daterange" :range-separator="$t('OrderList.zhi')" :start-placeholder="$t('OrderList.star')" :end-placeholder="$t('OrderList.end')"> type="daterange" :range-separator="$t('OrderList.zhi')" :start-placeholder="$t('OrderList.star')"
:end-placeholder="$t('OrderList.end')">
</el-date-picker> </el-date-picker>
</li> </li>
<li> <li>
......
<style scoped>
.guestSign {
font-size: 40px;
margin-top: 10px;
margin-bottom: 10px;
}
/* 自定义评分组件的样式 */
.guestSign .custom-rate .el-rate__item {
font-size: 38px;
/* 调整星星的大小 */
}
/deep/.guestSign .custom-rate .el-rate__icon {
font-size: 60px;
}
/deep/.guestSign .custom-rate .el-rate__text {
font-size: 60px;
}
</style>
<template>
<div class="guestSign">
<span>感谢 {{qMsg.SurName}} {{qMsg.Sex==1?"先生":"女士"}} 参与意见调查</span>
<span>领队:王 ,导游:张</span>
<span>团期:2022.01.01-2024.08.01</span>
<template v-for="(item,index) in dataList ">
<span :key="`t_`+index">{{index+1}}{{item.Title}}</span>
<template v-if="item.SurveyType === 1">
<el-rate :key="`s_`+index" v-model="item.ScoreNum" show-text :texts="texts" class="custom-rate">
</el-rate>
</template>
<template v-if="item.SurveyType === 2">
<el-radio-group v-model="item.ScoreNum" :key="`ss_`+index">
<el-radio v-for="(radio, rIndex) in item.SurveyOptionsList" :label="radio.ID" :key="rIndex">
{{radio.OptionsName}}</el-radio>
</el-radio-group>
</template>
<template v-if="item.SurveyType === 3">
<el-checkbox-group v-model="item.SurveyOptionsList" :key="`sss_`+index">
<el-checkbox v-for="(radio, rIndex) in item.SurveyOptionsList" :label="radio.ID" :key="rIndex">
{{radio.OptionsName}}</el-checkbox>
</el-checkbox-group>
</template>
<template v-if="item.SurveyType === 4">
<el-input :key="`ssss_`+index" type="textarea" :rows="2" :placeholder="$t('fnc.qsrneirong')"
v-model="item.TextContent">
</el-input>
</template>
</template>
<el-button type="primary">提交</el-button>
</div>
</template>
<script>
export default {
data() {
return {
qMsg: {
TCID: 21633,
GuestId: 0,
SurName: "", //中文姓
Sex: 0, //性别 1-男 2-女
},
dataList: [],
};
},
created() {
if (this.$route.query.TCID) {
this.qMsg.TCID = this.$route.query.TCID;
}
if (this.$route.query.GuestId) {
this.qMsg.GuestId = this.$route.query.GuestId;
}
if (this.$route.query.SurName) {
this.qMsg.SurName = this.$route.query.SurName;
}
if (this.$route.query.Sex) {
this.qMsg.Sex = this.$route.query.Sex;
}
},
mounted() {
this.GetSurveyShowList();
},
methods: {
GetSurveyShowList: function () {
let data = {
IsShow: 1,
SurveyType: -1
}
this.apipost('survey_post_GetSurveyShowList', data, res => {
if (res.data.resultCode === 1) {
let data = res.data.data
data.map(item => {
if (item.SurveyType === 2) {
item.SurveyOptionsList.map((cItem, cIndex) => {
cItem.IsCheckS = false
})
}
if (item.SurveyType === 3) {
item.SurveyOptionsList.map((cItem, cIndex) => {
cItem.IsCheckS = false
})
}
if (item.SurveyType === 1) {
item.ScoreNum = 5;
}
})
this.dataList = data;
}
}, null)
},
}
}
</script>
<style>
</style>
<template>
<div>
<input type="button" value="手机号验证" style="width:95%;height:200px;" @click="changeLoginType(1)" />
<br />
<input type="button" value="护照号验证" style="width:95%;height:200px;" @click="changeLoginType(2)" />
</div>
</template>
<script>
export default {
data() {
return {
activeName: 'first',
postMsg: {
type: 1, //1-手机号码验证登录,2-护照号码验证登录
//E75385750 13970261014
guestMobile: "13970261014", //1-为手机号码,2-护照号码
TCID: 21633
},
qMsg: {
TCID: 21633,
GuestId: 0,
SurName: "", //中文姓
Sex: 0, //性别 1-男 2-女
}
};
},
created() {
if (this.$route.query.TCID) {
this.postMsg.TCID = this.$route.query.TCID;
this.qMsg.TCID = this.$route.query.TCID;
}
},
mounted() {
this.guestLogin();
},
methods: {
changeLoginType(type) {
this.postMsg.type = type;
},
guestLogin() {
this.apipost(
"miniProgram_price_GetGuestByPhone_V2", this.postMsg,
res => {
if (res.data.resultCode == 1) {
var tempData = res.data.data;
console.log(tempData);
this.qMsg.GuestId = tempData[0].Id;
this.qMsg.SurName = tempData[0].SurName;
this.qMsg.Sex = tempData[0].Sex;
this.$router.push({
name: "guestSign",
query: {
TCID: this.qMsg.TCID,
GuestId: this.qMsg.GuestId,
SurName: this.qMsg.SurName,
Sex: this.qMsg.Sex,
}
})
}
},
err => {}
);
}
}
}
</script>
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
this.isQueryHistoryData = true; this.isQueryHistoryData = true;
} }
}); });
}, },
} }
} }
......
...@@ -123,7 +123,7 @@ export default { ...@@ -123,7 +123,7 @@ export default {
let isOnline = 0; //0-本地测试,1-线上 let isOnline = 0; //0-本地测试,1-线上
let ocrUrl = "http://192.168.5.46:8888"; let ocrUrl = "http://192.168.5.46:8888";
domainUrl = "http://192.168.5.46"; domainUrl = "http://192.168.5.46";
domainUrl = "http://192.168.5.39:8083"; //domainUrl = "http://192.168.5.39:8083";
let crmLocalFileStreamDownLoadUrl = ""; let crmLocalFileStreamDownLoadUrl = "";
crmLocalFileStreamDownLoadUrl = locationName.indexOf('oytour') !== -1 ? "http://crm.oytour.com" : "http://testcrm.oytour.com"; crmLocalFileStreamDownLoadUrl = locationName.indexOf('oytour') !== -1 ? "http://crm.oytour.com" : "http://testcrm.oytour.com";
let javaUrldo = ""; let javaUrldo = "";
...@@ -291,7 +291,7 @@ export default { ...@@ -291,7 +291,7 @@ export default {
this.$route.name.indexOf('confirmationOrderDownLoadNew') === -1 && this.$route.name.indexOf('PrintPage') === -1 && this.$route.name.indexOf('confirmationOrderDownLoadNew') === -1 && this.$route.name.indexOf('PrintPage') === -1 &&
this.$route.name.indexOf('TravelContractConfirm') === -1 && this.$route.name.indexOf('ViittoContractConfirm') === -1 && this.$route.name.indexOf('TravelContractConfirm') === -1 && this.$route.name.indexOf('ViittoContractConfirm') === -1 &&
this.$route.name.indexOf('OrderProfitLossList') === -1 && this.$route.name.indexOf('clientProtocol') === -1 && this.$route.name.indexOf('OrderProfitLossList') === -1 && this.$route.name.indexOf('clientProtocol') === -1 &&
this.$route.name.indexOf('clientDisclaimerProtocol') === -1 this.$route.name.indexOf('clientDisclaimerProtocol') === -1 && this.$route.name.indexOf('guestLogin') === -1
) { ) {
let previousPathInfo = { let previousPathInfo = {
path: this.$route.name, path: this.$route.name,
...@@ -374,6 +374,14 @@ export default { ...@@ -374,6 +374,14 @@ export default {
Id: Id Id: Id
} }
}) })
} else if (this.$route.path == "/guestLogin") {
let TCID = this.$route.query.TCID;
this.$router.push({
name: "guestLogin",
query: {
TCID: TCID
}
})
} else { } else {
if (!localStorage.userInfo && localStorage.userInfo != "" && this.$route.path.toLowerCase() != "/login") { if (!localStorage.userInfo && localStorage.userInfo != "" && this.$route.path.toLowerCase() != "/login") {
this.goToLogin(1); this.goToLogin(1);
...@@ -672,9 +680,20 @@ export default { ...@@ -672,9 +680,20 @@ export default {
} }
successCall(res); successCall(res);
} else { } else {
this.apipost("userauth_get_GetCheckUserAuthService", { if (authCode != this.$AuthCode.isQueryHistoryData) {
actionMenuCode: authCode this.apipost("userauth_get_GetCheckUserAuthService", {
}, successCall, faildCall); actionMenuCode: authCode
}, successCall, faildCall);
} else {
var data = {
resultCode: 1,
data: 0,
};
var res = {
data: data
}
successCall(res);
}
} }
}, },
//供应商版请求接口方法 //供应商版请求接口方法
...@@ -1931,8 +1950,8 @@ export default { ...@@ -1931,8 +1950,8 @@ export default {
} }
Vue.prototype.TourDateRestrictions = function (date1, date2) { Vue.prototype.TourDateRestrictions = function (date1, date2) {
var endDate = this.getBeforeDate(0, new Date().Format("yyyy-MM-dd")) var endDate = this.getBeforeDate(0, new Date().Format("yyyy-MM-dd"))
var data_1 = Date.parse(date1?date1:'2021-12-31'); var data_1 = Date.parse(date1 ? date1 : '2021-12-31');
var data_2 = Date.parse(date2?date2:endDate); var data_2 = Date.parse(date2 ? date2 : endDate);
var dateNum = Math.abs(data_2 - data_1); var dateNum = Math.abs(data_2 - data_1);
var days = Math.floor(dateNum / (24 * 3600 * 1000)); var days = Math.floor(dateNum / (24 * 3600 * 1000));
let endTime = new Date(this.getBeforeDate(days, new Date().Format("yyyy-MM-dd"))); let endTime = new Date(this.getBeforeDate(days, new Date().Format("yyyy-MM-dd")));
......
...@@ -508,6 +508,14 @@ export default { ...@@ -508,6 +508,14 @@ export default {
title: '公告管理' title: '公告管理'
}, },
}, },
{
path: '/SurveyManager', //问卷管理
name: 'SurveyManager',
component: resolve => require(['@/components/administrative/SurveyManager'], resolve),
meta: {
title: '问券调查'
},
},
{ {
path: '/VoucherInquiry', //问券调查 path: '/VoucherInquiry', //问券调查
name: 'VoucherInquiry', name: 'VoucherInquiry',
...@@ -6410,5 +6418,21 @@ export default { ...@@ -6410,5 +6418,21 @@ export default {
title: '财务批量打印页面' title: '财务批量打印页面'
}, },
}, },
{
path: '/guestlogin', //意见调查表登录
name: 'guestlogin',
component: resolve => require(['@/components/guestlogin'], resolve),
meta: {
title: '意见调查表登录'
},
},
{
path: '/guestSign', //意见调查表填写
name: 'guestSign',
component: resolve => require(['@/components/guestSign'], resolve),
meta: {
title: '意见调查表填写'
},
},
] ]
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment