Commit 516dff62d5a1046cc2af7aeff2fb06987874b3c9

Authored by wesley88
2 parents 440bccda c9737c2a

Merge branch 'master' of http://39.98.150.180/webapp/GreenwayWeb

admin-web-master/src/api/rsaManagement.js
@@ -57,6 +57,6 @@ export function recordInsert(data) { @@ -57,6 +57,6 @@ export function recordInsert(data) {
57 export function recordEdit(data) { 57 export function recordEdit(data) {
58 return request({ 58 return request({
59 url: `/resourceStrategyMatchingRecord/edit/${data.id}`, 59 url: `/resourceStrategyMatchingRecord/edit/${data.id}`,
60 - method: 'get' 60 + method: 'delete'
61 }) 61 })
62 } 62 }
admin-web-master/src/layout/index.vue
@@ -202,7 +202,7 @@ @@ -202,7 +202,7 @@
202 // msg: ['招商服务系统'], 202 // msg: ['招商服务系统'],
203 msg: ['招商服务系统', '推广策划系统', '在线商城系统', '支付服务模块', '票务'], 203 msg: ['招商服务系统', '推广策划系统', '在线商城系统', '支付服务模块', '票务'],
204 list: [ 204 list: [
205 - ['招商资源监测', '商家管理', '商铺租赁服务', '招商方案管理', '招商租赁管理', '广告服务', '轮播图设置', '商户意向管理', '客服服务管理', '系统设置'], 205 + ['招商资源监测', '商家管理', '商铺租赁服务', '招商方案管理', '招商租赁管理', '广告服务', '轮播图设置', '商户意向管理', '问卷调查','客服服务管理', '系统设置'],
206 ['品牌策划', '活动策划', '氛围策划', '媒体推广'], 206 ['品牌策划', '活动策划', '氛围策划', '媒体推广'],
207 ['订单管理', '积分管理', '消息中心', '会员管理', '评论管理', '商品管理', '库存管理', '销售统计', '优惠券管理', '商城商家管理'], 207 ['订单管理', '积分管理', '消息中心', '会员管理', '评论管理', '商品管理', '库存管理', '销售统计', '优惠券管理', '商城商家管理'],
208 ['联机交易', '对账处理', '日志管理', '商户服务'], 208 ['联机交易', '对账处理', '日志管理', '商户服务'],
@@ -775,7 +775,7 @@ @@ -775,7 +775,7 @@
775 this.index = index 775 this.index = index
776 this.listMune = [] 776 this.listMune = []
777 this.list = [ 777 this.list = [
778 - ['招商资源监测', '商家管理', '商铺租赁服务', '招商方案管理', '招商租赁管理', '广告服务', '轮播图设置', '商户意向管理', '客服服务管理', '系统设置'], 778 + ['招商资源监测', '商家管理', '商铺租赁服务', '招商方案管理', '招商租赁管理', '广告服务', '轮播图设置', '商户意向管理', '问卷调查','客服服务管理', '系统设置'],
779 ['品牌策划', '活动策划', '氛围策划', '媒体推广'], 779 ['品牌策划', '活动策划', '氛围策划', '媒体推广'],
780 ['订单管理', '积分管理', '消息中心', '会员管理', '评论管理', '商品管理', '库存管理', '销售统计', '优惠券管理', '商城商家管理'], 780 ['订单管理', '积分管理', '消息中心', '会员管理', '评论管理', '商品管理', '库存管理', '销售统计', '优惠券管理', '商城商家管理'],
781 ['联机交易', '对账处理', '日志管理', '商户服务'], 781 ['联机交易', '对账处理', '日志管理', '商户服务'],
admin-web-master/src/views/activity/activityHis.vue
@@ -91,9 +91,9 @@ @@ -91,9 +91,9 @@
91 </el-table-column> 91 </el-table-column>
92 <el-table-column label="创建时间" prop="createDate" min-width="15%" > 92 <el-table-column label="创建时间" prop="createDate" min-width="15%" >
93 </el-table-column> 93 </el-table-column>
94 - <el-table-column prop="auditReminderTime" label="审核提醒时间" min-width="12%"> 94 + <!-- <el-table-column prop="auditReminderTime" label="审核提醒时间" min-width="12%">
95 95
96 - </el-table-column> 96 + </el-table-column> -->
97 <el-table-column label="操作" min-width="39%" fixed="right"> 97 <el-table-column label="操作" min-width="39%" fixed="right">
98 <template slot-scope="scope"> 98 <template slot-scope="scope">
99 <div @click="actBian(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">调整</div> 99 <div @click="actBian(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">调整</div>
@@ -812,27 +812,13 @@ @@ -812,27 +812,13 @@
812 <el-dialog title="调整对比" :visible.sync="tiaozhengShow" custom-class='xiang_css' style="padding: 0;" width="80%" center 812 <el-dialog title="调整对比" :visible.sync="tiaozhengShow" custom-class='xiang_css' style="padding: 0;" width="80%" center
813 :close-on-click-modal="false" :close-on-press-escape="false" @close="reshData"> 813 :close-on-click-modal="false" :close-on-press-escape="false" @close="reshData">
814 <div> 814 <div>
815 - <div style="width: 100%;">  
816 - <div style="display: flex;padding:0px 20px 20px 20px; ">  
817 - <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">  
818 - <img :src="secondData.coverPoster" alt="" style="width: 100%;height: 80px;" />  
819 - </div>  
820 - <div  
821 - style="display: flex;flex-direction: column;justify-content: space-around;padding: 0 10px;font-size: 12px;">  
822 - <span style="margin-bottom: 10px;">{{text}}</span>  
823 - <span>活动时间:{{tableData1[1].eventTheme}}至{{tableData1[1].planName}}</span>  
824 - <span>活动地点:{{tableData1[0].planName}}</span>  
825 - </div>  
826 - </div>  
827 - </div>  
828 -  
829 <div style="display: flex;"> 815 <div style="display: flex;">
830 <div style="width: 50%;"> 816 <div style="width: 50%;">
831 <div style="width: 100%;"> 817 <div style="width: 100%;">
832 <div style="font-size: 14px;padding: 10px 20px 0px 20px;">修改后</div> 818 <div style="font-size: 14px;padding: 10px 20px 0px 20px;">修改后</div>
833 <div style="padding: 10px 20px;"> 819 <div style="padding: 10px 20px;">
834 <el-table :data="tableData1" 820 <el-table :data="tableData1"
835 - :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}" 821 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal',width:'82px'}"
836 style="width: 100%;margin: auto;"> 822 style="width: 100%;margin: auto;">
837 <el-table-column class-name="first-column-bg" label="方案编号" prop="name" min-width="15%"> 823 <el-table-column class-name="first-column-bg" label="方案编号" prop="name" min-width="15%">
838 </el-table-column> 824 </el-table-column>
@@ -963,7 +949,7 @@ @@ -963,7 +949,7 @@
963 <div style="width: 100%;"> 949 <div style="width: 100%;">
964 <div style="font-size: 14px;padding: 10px 20px 0px 20px;">修改前</div> 950 <div style="font-size: 14px;padding: 10px 20px 0px 20px;">修改前</div>
965 <div style="padding: 10px 20px;"> 951 <div style="padding: 10px 20px;">
966 - <el-descriptions class="margin-top" :column="2" border :labelStyle="labelStyleOne" > 952 + <el-descriptions class="margin-top" :column="2" border :labelStyle="labelStyleOne" :contentStyle="contentClassNameOne">
967 <el-descriptions-item> 953 <el-descriptions-item>
968 <template slot="label"> 954 <template slot="label">
969 方案编号 955 方案编号
@@ -1716,10 +1702,14 @@ @@ -1716,10 +1702,14 @@
1716 height:'42px', 1702 height:'42px',
1717 }, 1703 },
1718 labelStyleOne:{ 1704 labelStyleOne:{
1719 - width:'110px', 1705 + width:'94px',
1720 height:'42px', 1706 height:'42px',
1721 color:'#000', 1707 color:'#000',
1722 }, 1708 },
  1709 + contentClassNameOne:{
  1710 + width:'219px',
  1711 + // height:'42px',
  1712 + },
1723 lidata:[], 1713 lidata:[],
1724 lixiang:{}, 1714 lixiang:{},
1725 duibiList:{}, 1715 duibiList:{},
admin-web-master/src/views/atmosphere/atmosphereHis.vue
@@ -90,9 +90,9 @@ @@ -90,9 +90,9 @@
90 </el-table-column> 90 </el-table-column>
91 <el-table-column label="创建时间" prop="createDate" min-width="15%" > 91 <el-table-column label="创建时间" prop="createDate" min-width="15%" >
92 </el-table-column> 92 </el-table-column>
93 - <el-table-column prop="auditReminderTime" label="审核提醒时间" min-width="12%"> 93 + <!-- <el-table-column prop="auditReminderTime" label="审核提醒时间" min-width="12%">
94 94
95 - </el-table-column> 95 + </el-table-column> -->
96 <el-table-column label="操作" min-width="35%"> 96 <el-table-column label="操作" min-width="35%">
97 <template slot-scope="scope"> 97 <template slot-scope="scope">
98 <div @click="actBian(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">调整</div> 98 <div @click="actBian(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">调整</div>
admin-web-master/src/views/customer/yixiang/index.vue
1 <template> 1 <template>
2 - <div style="background-color:#f7f7f7;padding:10px 10px;">  
3 - <div class="zhuti">  
4 - <div style="height:58px;line-height:58px;">  
5 - <div style="color:#0006"> <span>商户意向管理</span> <span style="padding:0 5px;">></span> <span  
6 - style="color:#000000e6">招商意向管理</span></div>  
7 - </div>  
8 - <div>  
9 - <!-- 搜索 -->  
10 - <div class="formSearch">  
11 -  
12 - </div>  
13 - <div style="margin-bottom:20px;">  
14 - <el-button style="background-color: #3F9B6A;color: #fff;padding:8px 15px;" icon="el-icon-circle-plus-outline"  
15 - @click="pipei">一键匹配</el-button>  
16 - </div>  
17 - <!-- 表格 -->  
18 - <el-table :data="tableData" :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">  
19 - <el-table-column label="序号" width="50">  
20 - <template slot-scope="scope">  
21 - {{scope.$index +1 }}  
22 - </template>  
23 - </el-table-column>  
24 - <el-table-column label="资源名称" show-overflow-tooltip>  
25 -  
26 - </el-table-column>  
27 - <el-table-column label="商铺类型" prop="publishStatus" show-overflow-tooltip>  
28 - <template slot-scope="scope">  
29 - {{scope.row.shopType=='1'?'移动铺位':scope.row.shopType=='2'?'固定铺位':'无'}}  
30 - </template>  
31 - </el-table-column>  
32 - <el-table-column label="所属区域" prop="belongingRegion" show-overflow-tooltip>  
33 - </el-table-column>  
34 - <el-table-column prop="detailedLocation" width="180" label="详细地址" show-overflow-tooltip>  
35 - </el-table-column>  
36 - <el-table-column label="归属部门" prop="belongingDepartment" show-overflow-tooltip>  
37 - <template slot-scope="scope">  
38 - {{scope.row.belongingDepartment || '无'}}  
39 - </template>  
40 - </el-table-column>  
41 - <el-table-column label="负责人" prop="head" show-overflow-tooltip>  
42 - <template slot-scope="scope">  
43 - {{scope.row.head || '无'}}  
44 - </template>  
45 - </el-table-column>  
46 - <el-table-column label="操作" min-width="100" fixed="right">  
47 - <template slot-scope="scope">  
48 - <div class="tableBtn greens" @click="handleEditForm(scope.row)">  
49 - 查看  
50 - </div>  
51 - <div class="tableBtn greens" @click="delGuan(scope.row.id)" >  
52 - 删除  
53 - </div>  
54 - <!-- <div class="tableBtn greens" @click="pipei(scope.row)" > 2 + <div style="background-color:#f7f7f7;padding:10px 10px;">
  3 + <div class="zhuti">
  4 + <div style="height:58px;line-height:58px;">
  5 + <div style="color:#0006"> <span>商户意向管理</span> <span style="padding:0 5px;">></span> <span
  6 + style="color:#000000e6">招商意向管理</span></div>
  7 + </div>
  8 + <div>
  9 + <!-- 搜索 -->
  10 + <div class="formSearch">
  11 +
  12 + </div>
  13 + <div style="margin-bottom:20px;">
  14 + <el-button style="background-color: #3F9B6A;color: #fff;padding:8px 15px;"
  15 + icon="el-icon-circle-plus-outline" @click="pipei">一键匹配</el-button>
  16 + </div>
  17 + <!-- 表格 -->
  18 + <el-table :data="tableData"
  19 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  20 + <el-table-column label="序号" min-width="50">
  21 + <template slot-scope="scope">
  22 + {{scope.$index +1 }}
  23 + </template>
  24 + </el-table-column>
  25 + <el-table-column label="意向资源类型" prop="applicableResources" min-width="150" show-overflow-tooltip>
  26 +
  27 + </el-table-column>
  28 + <el-table-column label="意向区域" prop="belongingRegion" min-width="150" show-overflow-tooltip>
  29 + </el-table-column>
  30 + <el-table-column label="租金周期" prop="leaseTerm" min-width="150" show-overflow-tooltip>
  31 + </el-table-column>
  32 + <el-table-column label="租金价格" prop="rentalPrice" min-width="150" show-overflow-tooltip>
  33 + </el-table-column>
  34 + <el-table-column prop="actualUsableArea" min-width="150" label="实际使用面积" show-overflow-tooltip>
  35 + </el-table-column>
  36 + <el-table-column label="操作" min-width="100" fixed="right">
  37 + <template slot-scope="scope">
  38 + <!-- <div class="tableBtn greens" @click="handleEditForm(scope.row)">
  39 + 查看
  40 + </div> -->
  41 + <div class="tableBtn greens" @click="delGuan(scope.row.id)">
  42 + 删除
  43 + </div>
  44 + <!-- <div class="tableBtn greens" @click="pipei(scope.row)" >
55 一键匹配 45 一键匹配
56 </div> --> 46 </div> -->
57 - </template>  
58 - </el-table-column>  
59 - </el-table> 47 + </template>
  48 + </el-table-column>
  49 + </el-table>
60 50
61 -<div class="fenye">  
62 - <el-pagination class="pagination" :hide-on-single-page="flag" background small :current-page="currentPage"  
63 - layout="prev, pager, next,total" :total="total" @size-change="handleSizeChange"  
64 - @current-change="handleCurrentChange" />  
65 - </div> 51 + <div class="fenye">
  52 + <el-pagination class="pagination" background :current-page="currentPage"
  53 + layout="prev, pager, next,total" :total="total" @size-change="handleSizeChange"
  54 + @current-change="handleCurrentChange" />
  55 + </div>
66 56
67 57
68 58
69 - </div>  
70 - </div>  
71 - <!-- 一键匹配 -->  
72 - <el-dialog :visible.sync="pip" style="padding: 0" width="70%" center  
73 - :close-on-click-modal="false">  
74 - <div style=" 59 + </div>
  60 + </div>
  61 + <!-- 一键匹配 -->
  62 + <el-dialog :visible.sync="pip" style="padding: 0" width="70%" center :close-on-click-modal="false" @close="closede">
  63 + <div style="
75 background-color: #fafafa; 64 background-color: #fafafa;
76 border: 1px solid #eaeaea; 65 border: 1px solid #eaeaea;
77 height: 42px; 66 height: 42px;
@@ -79,634 +68,732 @@ @@ -79,634 +68,732 @@
79 padding: 0 20px; 68 padding: 0 20px;
80 line-height: 42px; 69 line-height: 42px;
81 "> 70 ">
82 - 匹配记录  
83 - </div>  
84 - <div style="padding: 0 20px">  
85 - <div style="  
86 - display: flex;  
87 - justify-content: space-between;  
88 - font-size: 14px;  
89 -  
90 - ">  
91 - <el-form ref="form" :model="pipeiSel" style="padding-top: 10px;" label-width="100px" >  
92 - <el-form-item label="意向资源类型">  
93 - <el-select v-model="pipeiSel.resources.cereRentalPolicies.businessType" placeholder="请选择" style="width: 168px;">  
94 - <el-option label="商铺" value="sp" />  
95 - <el-option label="广告位" value="gg" />  
96 - <el-option label="场地" value="cd" />  
97 - </el-select>  
98 - </el-form-item>  
99 - <el-form-item label="意向区域">  
100 - <el-select v-model="pipeiSel.resources.cereRentalPolicies.businessType" placeholder="请选择" style="width: 168px;">  
101 - <el-option label="成华区" value="成华区" />  
102 - <el-option label="武侯区" value="武侯区" />  
103 - <el-option label="锦江区" value="锦江区" />  
104 - <el-option label="青羊区" value="青羊区" />  
105 - <el-option label="金牛区" value="金牛区" />  
106 - <el-option label="双流区" value="双流区" />  
107 - <el-option label="郫都区" value="郫都区" />  
108 - <el-option label="龙泉驿区" value="龙泉驿区" />  
109 - <el-option label="温江区" value="温江区" />  
110 - </el-select>  
111 - </el-form-item>  
112 - <el-form-item label="意向面积">  
113 - <el-select v-model="pipeiSel.resources.cereRentalPolicies.leaseTerm" style="width: 168px;">  
114 - <el-option label="0-100" value="0-100" />  
115 - <el-option label="100-200" value="100-200" />  
116 - <el-option label="100-300" value="100-300" />  
117 - </el-select>  
118 - </el-form-item>  
119 - <el-form-item label="租金周期">  
120 - <el-select v-model="pipeiSel.resources.cereRentalPolicies.leaseTerm" style="width: 168px;">  
121 - <el-option label="年" value="年" />  
122 - <el-option label="季" value="季" />  
123 - <el-option label="月" value="月" />  
124 - <el-option label="日" value="日" />  
125 - </el-select>  
126 - </el-form-item>  
127 - <el-form-item label="租金范围">  
128 - <el-select v-model="pipeiSel.resources.cereRentalPolicies.rentalPrice" placeholder="请选择" style="width: 168px;">  
129 - <el-option label="0-10000" value="0-10000" />  
130 - <el-option label="10000-20000" value="10000-20000" />  
131 - <el-option label="20000-50000" value="20000-50000" />  
132 - <el-option label="50000-100000" value="50000-100000" />  
133 - </el-select>  
134 - </el-form-item>  
135 - </el-form>  
136 - </div>  
137 - <el-table :data=" 71 + 匹配记录
  72 + </div>
  73 + <div style="padding: 0 20px;max-height:750px;">
  74 + <div style="">
  75 + <el-form ref="pipform" :model="pipeiSel" :rules="rules" style="padding-top: 10px;"
  76 + label-width="120px" class="formcontainer">
  77 + <el-form-item label="意向资源类型" prop="resources.cereRentalPolicies.applicableResources">
  78 + <el-select v-model="pipeiSel.resources.cereRentalPolicies.applicableResources"
  79 + placeholder="请选择" style="width: 100%;">
  80 + <el-option label="商铺" value="商铺" />
  81 + <el-option label="广告位" value="广告位" />
  82 + <el-option label="场地" value="场地" />
  83 + </el-select>
  84 + </el-form-item>
  85 + <el-form-item label="意向区域" prop="belongingRegion">
  86 + <el-select v-model="pipeiSel.belongingRegion" placeholder="请选择" style="width: 100%;">
  87 + <el-option label="成华区" value="成华区" />
  88 + <el-option label="武侯区" value="武侯区" />
  89 + <el-option label="锦江区" value="锦江区" />
  90 + <el-option label="青羊区" value="青羊区" />
  91 + <el-option label="金牛区" value="金牛区" />
  92 + <el-option label="双流区" value="双流区" />
  93 + <el-option label="郫都区" value="郫都区" />
  94 + <el-option label="龙泉驿区" value="龙泉驿区" />
  95 + <el-option label="温江区" value="温江区" />
  96 + </el-select>
  97 + </el-form-item>
  98 + <el-form-item label="意向面积" prop="actualUsableArea">
  99 + <el-select v-model="pipeiSel.actualUsableArea" style="width: 100%;">
  100 + <el-option label="0-100" value="0-100" />
  101 + <el-option label="100-200" value="100-200" />
  102 + <el-option label="200-300" value="200-300" />
  103 + </el-select>
  104 + </el-form-item>
  105 + <el-form-item label="租金周期" prop="resources.cereRentalPolicies.leaseTerm">
  106 + <el-select v-model="pipeiSel.resources.cereRentalPolicies.leaseTerm" style="width: 100%;">
  107 + <el-option label="年" value="年" />
  108 + <el-option label="季" value="季" />
  109 + <el-option label="月" value="月" />
  110 + <el-option label="日" value="日" />
  111 + </el-select>
  112 + </el-form-item>
  113 + <el-form-item label="租金范围" prop="resources.cereRentalPolicies.rentalPrice">
  114 + <el-select v-model="pipeiSel.resources.cereRentalPolicies.rentalPrice" placeholder="请选择"
  115 + style="width: 100%;">
  116 + <el-option label="0-2000" value="0-2000" />
  117 + <el-option label="2000-5000" value="2000-5000" />
  118 + <el-option label="5000-10000" value="5000-10000" />
  119 + <el-option label="10000-20000" value="10000-20000" />
  120 + </el-select>
  121 + </el-form-item>
  122 + <el-form-item style="margin-left: -70px;">
  123 + <div>
  124 + <el-button style="background-color: #3F9B6A;color: #fff"
  125 + @click="pipeiBtn">查询</el-button>
  126 + <el-button class="buttonHover"
  127 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  128 + @click="pipeiClose">重置</el-button>
  129 +
  130 +
  131 + </div>
  132 + </el-form-item>
  133 + </el-form>
  134 +
  135 + </div>
  136 + <el-table :data="
138 pipData.slice( 137 pipData.slice(
139 - (currentPage - 1) * pageSize,  
140 - currentPage * pageSize 138 + (pipcurrentPage - 1) * 10,
  139 + pipcurrentPage * 10
141 ) 140 )
142 " :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"> 141 " :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
143 - <el-table-column label="序号" min-width="80">  
144 - <template slot-scope="scope">  
145 - {{scope.$index+1}}  
146 - </template>  
147 - </el-table-column>  
148 - <el-table-column label="资源名称" prop="intentCustomerName" min-width="150" />  
149 - <el-table-column label="编号" prop="resourcesId" min-width="150" />  
150 - <el-table-column label="意向资源类型" prop="shopName" min-width="150" />  
151 - <el-table-column label="最近释放日期" prop="businessStartTime" min-width="150" />  
152 - <el-table-column label="最短租期" prop="contactInformation" min-width="150" />  
153 - <el-table-column label="意向租金单价(元/平方)" prop="contactInformation" min-width="250" />  
154 - <el-table-column prop="auditStatus" label="资源状态" min-width="150">  
155 - <template slot-scope="scope">  
156 -  
157 - </template>  
158 - </el-table-column>  
159 -  
160 - </el-table>  
161 - <div style="  
162 - padding: 15px 0;  
163 - ">  
164 - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"  
165 - @click="pipeiClose">返回</el-button>  
166 - <el-button style="background-color: #3F9B6A;color: #fff"  
167 - @click="pipeiBtn">确定</el-button>  
168 -  
169 -  
170 - </div>  
171 - </div>  
172 - </el-dialog>  
173 - </div> 142 + <el-table-column label="序号" min-width="80">
  143 + <template slot-scope="scope">
  144 + {{scope.$index+1}}
  145 + </template>
  146 + </el-table-column>
  147 + <el-table-column label="资源名称" prop="intentCustomerName" min-width="150" >
  148 + <template slot-scope="scope">
  149 + {{scope.row.resources.shopIds.length!=0?scope.row.resources.shopIds[0].shopName:scope.row.resources.advIds.length!=0?scope.row.resources.advIds[0].advertisingName:scope.row.resources.siteIds.length!=0?scope.row.resources.siteIds[0].venueName:'无'}}
  150 + </template>
  151 + </el-table-column>
  152 + <el-table-column label="意向资源类型" prop="shopName" min-width="150">
  153 + <template slot-scope="scope">
  154 + {{scope.row.resources.shopIds.length!=0?'商铺':scope.row.resources.advIds.length!=0?'广告位':scope.row.resources.siteIds.length!=0?'场地':'无'}}
  155 + </template>
  156 + </el-table-column>
  157 + <el-table-column label="租金周期" prop="contactInformation" min-width="150">
  158 + <template slot-scope="scope">
  159 + {{scope.row.resources.cereRentalPolicies.leaseTerm?scope.row.resources.cereRentalPolicies.leaseTerm:'无'}}
  160 + </template>
  161 + </el-table-column>
  162 + <el-table-column label="意向租金单价(元/平方)" prop="contactInformation" min-width="250" >
  163 + <template slot-scope="scope">
  164 + {{scope.row.resources.cereRentalPolicies.rentalPrice?scope.row.resources.cereRentalPolicies.rentalPrice:'无'}}
  165 + </template>
  166 + </el-table-column>
  167 + <el-table-column prop="auditStatus" label="资源状态" min-width="150">
  168 + <template slot-scope="scope">
  169 + {{scope.row.resources.shopIds.length!=0?getStatusText(scope.row.resources.shopIds[0].publishStatus):scope.row.resources.advIds.length!=0?getStatusText(scope.row.resources.advIds[0].publishStatus):scope.row.resources.siteIds.length!=0?getStatusText(scope.row.resources.siteIds[0].publishStatus):'无'}}
  170 + </template>
  171 + </el-table-column>
  172 +
  173 + </el-table>
  174 +
  175 + <div class="fenye">
  176 + <el-pagination class="pagination" background :current-page="pipcurrentPage"
  177 + layout="prev, pager, next,total" :total="pipData.length" @size-change="pipSizeChange"
  178 + @current-change="pipCurrentChange" />
  179 + </div>
  180 + </div>
  181 + </el-dialog>
  182 + </div>
174 </template> 183 </template>
175 184
176 <script> 185 <script>
177 - import {  
178 - uploadUrl,  
179 - token  
180 - } from '@/utils/request'  
181 - import {  
182 - recordGetAll,  
183 - recordInsert,  
184 - recordEdit,  
185 - } from '../../../api/rsaManagement'  
186 - import upimg from "@/components/ImageUpload/index"  
187 - export default {  
188 - components: {  
189 - upimg  
190 - },  
191 -  
192 - data() {  
193 - return {  
194 - detbox: false, // 详情  
195 - action: uploadUrl, // 上传图片  
196 - secondData: {},  
197 - tableData:[],  
198 - pipData:[],  
199 - currentPage: 1,  
200 - total: 10,  
201 - flag: false,  
202 - pageSize: 10,  
203 - msgid: '',  
204 - pageindex: {  
205 - pageNumber: 0,  
206 - pageSize: 10,  
207 - },  
208 - pip:false,  
209 - pipeiSel:{  
210 - resources:{  
211 -         cereRentalPolicies:{  
212 -             businessType:'',  
213 -             leaseTerm:'',  
214 -             rentalPrice:''  
215 -         }  
216 -     },  
217 - pageNumber:1,  
218 - pageSize:10,  
219 - },  
220 - }  
221 - },  
222 -  
223 - created() {  
224 - this.getAll();  
225 - },  
226 - mounted() {},  
227 - // beforeDestroy() {  
228 - // const editor = this.editor  
229 - // if (editor == null) return  
230 - // editor.destroy() // 组件销毁时,及时销毁编辑器  
231 - // },  
232 - methods: {  
233 - // 获取当前时间  
234 - updateCurrentTime() {  
235 - const now = new Date();  
236 - const year = now.getFullYear();  
237 - const month = (now.getMonth() + 1).toString().padStart(2, '0');  
238 - const day = now.getDate().toString().padStart(2, '0');  
239 - const hours = now.getHours().toString().padStart(2, '0');  
240 - const minutes = now.getMinutes().toString().padStart(2, '0');  
241 - const seconds = now.getSeconds().toString().padStart(2, '0');  
242 -  
243 - return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;  
244 - },  
245 - handleSelectionChange(val) {  
246 - this.multipleSelection = val;  
247 - },  
248 - // 查询全数据  
249 - async getAll() {  
250 - const res = await recordGetAll(this.pageindex);  
251 - this.tableData = res.data.content  
252 - this.total = res.data.totalElements  
253 - this.tableData.map(item =>{  
254 - item.matchingRecord = JSON.parse(item.matchingRecord)  
255 - })  
256 -  
257 - console.log (this.tableData)  
258 - },  
259 -  
260 -  
261 - // 详情点击  
262 - handleEditForm(item) {  
263 -  
264 - },  
265 -  
266 - handleCurrentChange(val) {  
267 - this.currentPage = val;  
268 - },  
269 - handleSizeChange(val) {  
270 - this.pageSize = val;  
271 - },  
272 - // 取消  
273 - closeFn(val) {  
274 - if (val == 1) {  
275 - this.detbox = false;  
276 - this.edit = true;  
277 - }  
278 - },  
279 - //删除管理列表  
280 - async delGuan(item) {  
281 - const h = this.$createElement;  
282 - this.$msgbox({  
283 - title: '消息',  
284 - message: h('p', null, [  
285 - h('span', null, '是否删除 '),  
286 - ]),  
287 - showCancelButton: true,  
288 - showClose: false,  
289 - confirmButtonText: '确定',  
290 - cancelButtonText: '取消',  
291 - customClass: 'oe-dialog-btn',  
292 - beforeClose: (action, instance, done) => {  
293 - if (action === 'confirm') {  
294 - recordEdit({  
295 - id: item  
296 - }).then(res => {  
297 - this.getAll()  
298 - done();  
299 - })  
300 - } else {  
301 - done();  
302 - }  
303 - }  
304 - })  
305 -  
306 - },  
307 -  
308 - pipei(item){  
309 - this.pip = true  
310 - this.pipData = []  
311 - },  
312 - pipeiBtn(){  
313 - if(this.pipeiSel.resources.cereRentalPolicies.businessType == 'sp'){  
314 - this.pipeiSel.resourcesId = 'sp'  
315 - }else if(this.pipeiSel.resources.cereRentalPolicies.businessType == 'cd'){  
316 - this.pipeiSel.resourcesId = 'cd'  
317 - }else{  
318 - this.pipeiSel.resourcesId = 'gg'  
319 - }  
320 -  
321 - },  
322 - pipeiClose(){  
323 - this.pipeiSel ={  
324 - resources:{  
325 -         cereRentalPolicies:{  
326 -             businessType:'',  
327 -             leaseTerm:'',  
328 -             rentalPrice:''  
329 -         }  
330 -     },  
331 - resourcesId:'',  
332 - pageNumber:1,  
333 - pageSize:10,  
334 - },  
335 - this.pip = false  
336 - this.pipData = []  
337 - },  
338 - }  
339 - } 186 + import {
  187 + uploadUrl,
  188 + token
  189 + } from '@/utils/request'
  190 + import {
  191 + recordGetAll,
  192 + recordInsert,
  193 + recordEdit,
  194 + ziyuanduiy
  195 + } from '../../../api/rsaManagement'
  196 + import upimg from "@/components/ImageUpload/index"
  197 + export default {
  198 + components: {
  199 + upimg
  200 + },
  201 +
  202 + data() {
  203 + return {
  204 + detbox: false, // 详情
  205 + action: uploadUrl, // 上传图片
  206 + secondData: {},
  207 + tableData: [],
  208 + pipData: [],
  209 + currentPage: 1,
  210 + pipcurrentPage: 1,
  211 + total: 10,
  212 + flag: false,
  213 + pageSize: 10,
  214 + msgid: '',
  215 + pageindex: {
  216 + pageNumber: 0,
  217 + pageSize: 10,
  218 + },
  219 + pip: false,
  220 + pipeiSel: {
  221 + belongingRegion: '',
  222 + actualUsableArea: '',
  223 + resources: {
  224 + cereRentalPolicies: {
  225 + applicableResources: '',
  226 + leaseTerm: '',
  227 + rentalPrice: ''
  228 + }
  229 + },
  230 + pageNumber: 1,
  231 + pageSize: 10,
  232 + },
  233 + rules: {
  234 + 'resources.cereRentalPolicies.applicableResources': [{
  235 + required: true,
  236 + message: '请选择意向资源类型',
  237 + trigger: 'change'
  238 + }],
  239 + 'belongingRegion': [{
  240 + required: true,
  241 + message: '请选择意向区域',
  242 + trigger: 'change'
  243 + }],
  244 + 'actualUsableArea': [{
  245 + required: true,
  246 + message: '请选择意向面积',
  247 + trigger: 'change'
  248 + }],
  249 + 'resources.cereRentalPolicies.leaseTerm': [{
  250 + required: true,
  251 + message: '请选择意向租金周期',
  252 + trigger: 'change'
  253 + }],
  254 + 'resources.cereRentalPolicies.rentalPrice': [{
  255 + required: true,
  256 + message: '请选择意向租金范围',
  257 + trigger: 'change'
  258 + }]
  259 + }
  260 + }
  261 + },
  262 +
  263 + created() {
  264 + this.getAll();
  265 + },
  266 + mounted() {},
  267 + // beforeDestroy() {
  268 + // const editor = this.editor
  269 + // if (editor == null) return
  270 + // editor.destroy() // 组件销毁时,及时销毁编辑器
  271 + // },
  272 + methods: {
  273 + getStatusText(val) {
  274 + switch (val) {
  275 + case '0':
  276 + return '空置';
  277 + case '1':
  278 + return '待审核';
  279 + case '2':
  280 + return '已发布';
  281 + case '3':
  282 + return '不通过';
  283 + case '4':
  284 + return '已租赁';
  285 + default:
  286 + return '无';
  287 + }
  288 + },
  289 + // 获取当前时间
  290 + updateCurrentTime() {
  291 + const now = new Date();
  292 + const year = now.getFullYear();
  293 + const month = (now.getMonth() + 1).toString().padStart(2, '0');
  294 + const day = now.getDate().toString().padStart(2, '0');
  295 + const hours = now.getHours().toString().padStart(2, '0');
  296 + const minutes = now.getMinutes().toString().padStart(2, '0');
  297 + const seconds = now.getSeconds().toString().padStart(2, '0');
  298 +
  299 + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  300 + },
  301 + handleSelectionChange(val) {
  302 + this.multipleSelection = val;
  303 + },
  304 + // 查询全数据
  305 + async getAll() {
  306 + const res = await recordGetAll(this.pageindex);
  307 + this.tableData = res.data.content
  308 + this.total = res.data.totalElements
  309 + },
  310 +
  311 +
  312 + // 详情点击
  313 + handleEditForm(item) {
  314 +
  315 + },
  316 +
  317 + handleCurrentChange(val) {
  318 + this.currentPage = val;
  319 + },
  320 + handleSizeChange(val) {
  321 + this.pageSize = val;
  322 + },
  323 + pipSizeChange(val) {
  324 + this.pipeiSel.pageSize = val
  325 + },
  326 + pipCurrentChange(val) {
  327 + this.pipcurrentPage = val
  328 + },
  329 + // 取消
  330 + closeFn(val) {
  331 + if (val == 1) {
  332 + this.detbox = false;
  333 + this.edit = true;
  334 + }
  335 + },
  336 + //删除管理列表
  337 + async delGuan(item) {
  338 + const h = this.$createElement;
  339 + this.$msgbox({
  340 + title: '消息',
  341 + message: h('p', null, [
  342 + h('span', null, '是否删除 '),
  343 + ]),
  344 + showCancelButton: true,
  345 + showClose: false,
  346 + confirmButtonText: '确定',
  347 + cancelButtonText: '取消',
  348 + customClass: 'oe-dialog-btn',
  349 + beforeClose: (action, instance, done) => {
  350 + if (action === 'confirm') {
  351 + recordEdit({
  352 + id: item
  353 + }).then(res => {
  354 + this.getAll()
  355 + done();
  356 + })
  357 + } else {
  358 + done();
  359 + }
  360 + }
  361 + })
  362 +
  363 + },
  364 +
  365 + pipei(item) {
  366 + this.pip = true
  367 + this.pipData = []
  368 + },
  369 + pipeiBtn() {
  370 + this.$refs.pipform.validate((valid) => {
  371 +
  372 + if (valid) {
  373 + ziyuanduiy(this.pipeiSel).then(res => {
  374 + this.pipData = res.data.content
  375 + if(res.data.content.length!=0){
  376 + let obj ={
  377 + leaseTerm: this.pipeiSel.resources.cereRentalPolicies.leaseTerm,
  378 + rentalPrice:this.pipeiSel.resources.cereRentalPolicies.rentalPrice,
  379 + actualUsableArea:this.pipeiSel.actualUsableArea,
  380 + belongingRegion:this.pipeiSel.belongingRegion,
  381 + applicableResources:this.pipeiSel.resources.cereRentalPolicies.applicableResources,
  382 + matchingRecord: JSON.stringify(res.data.content),
  383 + type:2
  384 + }
  385 + recordInsert(obj).then(item=>{})
  386 + }
  387 +
  388 + })
  389 +
  390 + } else {
  391 + console.log('error submit!!');
  392 + return false;
  393 + }
  394 + })
  395 + },
  396 +
  397 + closede(){
  398 + this.pip = false
  399 + this.getAll()
  400 + },
  401 + pipeiClose() {
  402 + this.pipeiSel = {
  403 + belongingRegion: '',
  404 + actualUsableArea: '',
  405 + resources: {
  406 + cereRentalPolicies: {
  407 + applicableResources: '',
  408 + leaseTerm: '',
  409 + rentalPrice: ''
  410 + }
  411 + },
  412 + pageNumber: 1,
  413 + pageSize: 10,
  414 + }
  415 + this.$refs.pipform.resetFields();
  416 + this.pipData = []
  417 + },
  418 + }
  419 + }
340 </script> 420 </script>
341 <style src="@wangeditor/editor/dist/css/style.css"></style> 421 <style src="@wangeditor/editor/dist/css/style.css"></style>
342 <style scoped> 422 <style scoped>
343 - /deep/ .first-column-bg {  
344 - background-color: #f4f4f5 !important;  
345 - }  
346 -  
347 - .zhuti {  
348 - padding: 0 20px 20px 20px;  
349 - min-height: calc(100vh - 50px - 20px);  
350 - background-color: #fff;  
351 - }  
352 -  
353 -  
354 - .tableBtn {  
355 - display: inline-block;  
356 - margin-right: 10px;  
357 - }  
358 -  
359 - .formSearch {  
360 -  
361 - display: flex;  
362 - width: 100%;  
363 - font-size: 14px;  
364 - justify-content: space-between;  
365 -  
366 - }  
367 -  
368 - .greens {  
369 - color: #3f9b6a;  
370 - }  
371 -  
372 - /deep/ .el-table__row {  
373 - font-size: 14px;  
374 - color: #000000e6;  
375 - height: 42px;  
376 - }  
377 -  
378 - .fenye {  
379 - margin-top: 20px;  
380 - display: flex;  
381 - justify-content: flex-end;  
382 - position: relative;  
383 - }  
384 -  
385 - /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {  
386 - background-color: #3f9b6a;  
387 - }  
388 -  
389 - :last-child {  
390 - margin-bottom: 0;  
391 - }  
392 -  
393 - .el-col {  
394 - border-radius: 4px;  
395 - }  
396 -  
397 - .bg-purple-dark {  
398 - background: #99a9bf;  
399 - }  
400 -  
401 - .bg-purple {  
402 - /* background: #d3dce6; */  
403 - }  
404 -  
405 - .bg-purple-light {  
406 - background: #e5e9f2;  
407 - }  
408 -  
409 - .grid-content {  
410 - border-radius: 4px;  
411 - min-height: 36px;  
412 - }  
413 -  
414 - .row-bg {  
415 - padding: 10px 0;  
416 - background-color: #f9fafc;  
417 - }  
418 -  
419 - /deep/ .bg-purple[data-v-0e3fe4ec] {  
420 - background: #fff;  
421 - height: 50px;  
422 - }  
423 -  
424 -  
425 - .demo-input-suffix {  
426 - display: flex;  
427 - margin-right: 20px;  
428 - }  
429 -  
430 - .pagination {  
431 - text-align: right;  
432 - line-height: 20px;  
433 - }  
434 -  
435 -  
436 - .dialog_css {  
437 - padding: 0px;  
438 - }  
439 -  
440 - .dialog_xin {  
441 - padding: 0px;  
442 - }  
443 -  
444 - /deep/.el-dialog__body {  
445 - padding: 0px;  
446 - }  
447 -  
448 - /deep/ .el-dialog__header {  
449 - background-color: #fff;  
450 - padding: 0;  
451 - }  
452 -  
453 - /deep/.el-dialog__title {  
454 - color: #000;  
455 - }  
456 -  
457 - .el-row {  
458 - &:last-child {  
459 - margin-bottom: 0;  
460 - }  
461 - }  
462 -  
463 - /deep/ .avatar-uploader .el-upload {  
464 - border: 1px dashed #d9d9d9;  
465 - border-radius: 6px;  
466 - cursor: pointer;  
467 - position: relative;  
468 - overflow: hidden;  
469 - }  
470 -  
471 - .avatar-uploader .el-upload:hover {  
472 - border-color: #409eff;  
473 - }  
474 -  
475 - .avatar-uploader-icon {  
476 - font-size: 28px;  
477 - color: #8c939d;  
478 - width: 108px;  
479 - height: 108px;  
480 - line-height: 108px;  
481 - /*text-align: center;*/  
482 - }  
483 -  
484 - .avatar {  
485 - width: 108px;  
486 - height: 108px;  
487 - display: block;  
488 - }  
489 -  
490 - ::v-deep .el-tabs__item.is-active {  
491 - color: #3f9b6a;  
492 - opacity: 1;  
493 - }  
494 -  
495 - /deep/ .el-tabs__nav-wrap::after {  
496 - background-color: #fff;  
497 - }  
498 -  
499 - ::v-deep .el-tabs__item:hover {  
500 - color: #3f9b6a;  
501 - cursor: pointer;  
502 - opacity: 1;  
503 - }  
504 -  
505 - /deep/ .el-tabs__active-bar {  
506 - background-color: #389865;  
507 - }  
508 -  
509 - /deep/ .el-table_2_column_13 {  
510 - font-weight: 100;  
511 - }  
512 -  
513 - ::v-deep .el-input__inner:focus {  
514 - border: #3f9b6a 1px solid;  
515 - }  
516 -  
517 - ::v-deep .el-input__inner:hover {  
518 - border: #3f9b6a 1px solid;  
519 - }  
520 -  
521 - ::v-deep .el-select .el-input.is-focus .el-input__inner {  
522 - border-color: #3f9b6a;  
523 - }  
524 -  
525 -  
526 - /* ::v-deep .el-steps .el-step__head.is-wait { 423 + .formcontainer {
  424 + display: grid;
  425 + grid-template-columns: repeat(2, 1fr);
  426 + grid-gap: 10px;
  427 + /* 可选,设置列之间的间隙 */
  428 + }
  429 +
  430 + /deep/ .first-column-bg {
  431 + background-color: #f4f4f5 !important;
  432 + }
  433 +
  434 + .zhuti {
  435 + padding: 0 20px 20px 20px;
  436 + min-height: calc(100vh - 50px - 20px);
  437 + background-color: #fff;
  438 + }
  439 +
  440 +
  441 + .tableBtn {
  442 + display: inline-block;
  443 + margin-right: 10px;
  444 + }
  445 +
  446 + .formSearch {
  447 +
  448 + display: flex;
  449 + width: 100%;
  450 + font-size: 14px;
  451 + justify-content: space-between;
  452 +
  453 + }
  454 +
  455 + .greens {
  456 + color: #3f9b6a;
  457 + }
  458 +
  459 + /deep/ .el-table__row {
  460 + font-size: 14px;
  461 + color: #000000e6;
  462 + height: 42px;
  463 + }
  464 +
  465 + .fenye {
  466 + margin-top: 20px;
  467 + display: flex;
  468 + justify-content: flex-end;
  469 + position: relative;
  470 + }
  471 +
  472 + /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
  473 + background-color: #3f9b6a;
  474 + }
  475 +
  476 + :last-child {
  477 + margin-bottom: 0;
  478 + }
  479 +
  480 + .el-col {
  481 + border-radius: 4px;
  482 + }
  483 +
  484 + .bg-purple-dark {
  485 + background: #99a9bf;
  486 + }
  487 +
  488 + .bg-purple {
  489 + /* background: #d3dce6; */
  490 + }
  491 +
  492 + .bg-purple-light {
  493 + background: #e5e9f2;
  494 + }
  495 +
  496 + .grid-content {
  497 + border-radius: 4px;
  498 + min-height: 36px;
  499 + }
  500 +
  501 + .row-bg {
  502 + padding: 10px 0;
  503 + background-color: #f9fafc;
  504 + }
  505 +
  506 + /deep/ .bg-purple[data-v-0e3fe4ec] {
  507 + background: #fff;
  508 + height: 50px;
  509 + }
  510 +
  511 +
  512 + .demo-input-suffix {
  513 + display: flex;
  514 + margin-right: 20px;
  515 + }
  516 +
  517 + .pagination {
  518 + text-align: right;
  519 + line-height: 20px;
  520 + }
  521 +
  522 +
  523 + .dialog_css {
  524 + padding: 0px;
  525 + }
  526 +
  527 + .dialog_xin {
  528 + padding: 0px;
  529 + }
  530 +
  531 + /deep/.el-dialog__body {
  532 + padding: 0px;
  533 + }
  534 +
  535 + /deep/ .el-dialog__header {
  536 + background-color: #fff;
  537 + padding: 0;
  538 + }
  539 +
  540 + /deep/.el-dialog__title {
  541 + color: #000;
  542 + }
  543 +
  544 + .el-row {
  545 + &:last-child {
  546 + margin-bottom: 0;
  547 + }
  548 + }
  549 +
  550 + /deep/ .avatar-uploader .el-upload {
  551 + border: 1px dashed #d9d9d9;
  552 + border-radius: 6px;
  553 + cursor: pointer;
  554 + position: relative;
  555 + overflow: hidden;
  556 + }
  557 +
  558 + .avatar-uploader .el-upload:hover {
  559 + border-color: #409eff;
  560 + }
  561 +
  562 + .avatar-uploader-icon {
  563 + font-size: 28px;
  564 + color: #8c939d;
  565 + width: 108px;
  566 + height: 108px;
  567 + line-height: 108px;
  568 + /*text-align: center;*/
  569 + }
  570 +
  571 + .avatar {
  572 + width: 108px;
  573 + height: 108px;
  574 + display: block;
  575 + }
  576 +
  577 + ::v-deep .el-tabs__item.is-active {
  578 + color: #3f9b6a;
  579 + opacity: 1;
  580 + }
  581 +
  582 + /deep/ .el-tabs__nav-wrap::after {
  583 + background-color: #fff;
  584 + }
  585 +
  586 + ::v-deep .el-tabs__item:hover {
  587 + color: #3f9b6a;
  588 + cursor: pointer;
  589 + opacity: 1;
  590 + }
  591 +
  592 + /deep/ .el-tabs__active-bar {
  593 + background-color: #389865;
  594 + }
  595 +
  596 + /deep/ .el-table_2_column_13 {
  597 + font-weight: 100;
  598 + }
  599 +
  600 + ::v-deep .el-input__inner:focus {
  601 + border: #3f9b6a 1px solid;
  602 + }
  603 +
  604 + ::v-deep .el-input__inner:hover {
  605 + border: #3f9b6a 1px solid;
  606 + }
  607 +
  608 + ::v-deep .el-select .el-input.is-focus .el-input__inner {
  609 + border-color: #3f9b6a;
  610 + }
  611 +
  612 +
  613 + /* ::v-deep .el-steps .el-step__head.is-wait {
527 background-color: red; /* 修改为你想要的颜色 */ 614 background-color: red; /* 修改为你想要的颜色 */
528 615
529 - /* 修改未进行步骤的描述文字颜色 */  
530 - ::v-deep .el-steps .el-step__description.is-wait {  
531 - color: #999;  
532 - /* 修改为你想要的颜色 */  
533 - }  
534 -  
535 - /* 修改未进行步骤的图标颜色 */  
536 - ::v-deep .el-steps .el-step__icon.is-text.is-wait {  
537 - color: #999;  
538 - /* 修改为你想要的颜色 */  
539 - }  
540 -  
541 - /* 修改未进行步骤的边框色 */  
542 - ::v-deep .el-steps .el-step__line.is-wait {  
543 - border-color: #eee;  
544 - /* 修改为你想要的颜色 */  
545 - }  
546 -  
547 - ::v-deep .el-steps .is-process .el-step__line {  
548 - background-color: #3f9b6a;  
549 - /* 修改线的颜色 */  
550 - }  
551 -  
552 - ::v-deep .el-steps .is-process .el-step__title {  
553 - color: #fe7b6a;  
554 - /* 修改进行中步骤的标题颜色 */  
555 - }  
556 -  
557 - ::v-deep .el-steps .is-process .el-step__icon {  
558 - color: #fff;  
559 - /* 修改进行中步骤的图标颜色 */  
560 - background: #3f9b6a;  
561 - /* 修改进行中步骤图标的边框颜色 */  
562 - border: 0px;  
563 - }  
564 -  
565 - ::v-deep .el-step__icon-inner {  
566 - line-height: 0;  
567 - }  
568 -  
569 - /* 线条长度 */  
570 - ::v-deep .el-step.is-vertical .el-step__line {  
571 - top: 30px;  
572 - height: 60px;  
573 - }  
574 -  
575 - ::v-deep .moren {  
576 - .el-input__inner {  
577 - margin-top: 5px;  
578 - padding: 0 20px;  
579 - }  
580 - }  
581 -  
582 - /deep/ .el-radio-group {  
583 - margin-top: 11px;  
584 - }  
585 -  
586 - /deep/ .el-radio__input.is-checked .el-radio__inner {  
587 - border-color: #3f9b6a;  
588 - background: #3f9b6a;  
589 - }  
590 -  
591 - ::v-deep .el-col {  
592 - padding: 0 !important;  
593 - }  
594 -  
595 - /deep/ .el-radio-group {  
596 - width: 100%;  
597 - }  
598 -  
599 - .radio-right-side {  
600 - width: 100%;  
601 - display: flex;  
602 - justify-content: space-between;  
603 - }  
604 -  
605 - /deep/ .radio-right-side .el-radio__label {  
606 - display: flex;  
607 - align-items: center;  
608 - }  
609 -  
610 - /deep/ .radio-right-side .el-radio__inner {  
611 - order: 1;  
612 - }  
613 -  
614 - /deep/ .radio-right-side .el-radio__input {  
615 - display: flex;  
616 - order: 2;  
617 - }  
618 -  
619 - /deep/ .radio-right-side {  
620 - &:hover {  
621 - color: #000;  
622 - }  
623 - }  
624 -  
625 - ::v-deep .el-dialog__wrapper {  
626 - .dialog_css {  
627 - margin-right: 12px;  
628 - margin-top: 61px !important;  
629 -  
630 - .el-dialog__title {  
631 - font-size: 16px !important;  
632 - font-weight: 600;  
633 - color: #000;  
634 - }  
635 - }  
636 - }  
637 -  
638 - ::v-deep .setup {  
639 - .el-steps {  
640 - justify-content: center;  
641 - }  
642 - }  
643 -  
644 - ::v-deep .el-step__head.is-finish {  
645 - color: #c0c4cc;  
646 - border-color: #c0c4cc;  
647 - }  
648 -  
649 - ::v-deep .el-step__title.is-finish {  
650 - color: #c0c4cc;  
651 - }  
652 -  
653 - ::v-deep .el-step__title.is-process {  
654 - color: #c0c4cc;  
655 - }  
656 -  
657 - ::v-deep .el-tabs {  
658 - width: 100%;  
659 - }  
660 -  
661 - ::v-deep .setup {  
662 - .el-step__main {  
663 - margin-left: -17px;  
664 - }  
665 -  
666 - .el-step__title.is-process {  
667 - color: #3f9b6a;  
668 - }  
669 -  
670 - }  
671 -  
672 - ::v-deep .el-pagination__jump {  
673 - margin-top: 5px;  
674 - }  
675 -  
676 - ::v-deep .linClass {  
677 - .el-dialog__header {  
678 - padding: 20px 20px 10px;  
679 - font-size: 14px;  
680 - }  
681 - } 616 + /* 修改未进行步骤的描述文字颜色 */
  617 + ::v-deep .el-steps .el-step__description.is-wait {
  618 + color: #999;
  619 + /* 修改为你想要的颜色 */
  620 + }
  621 +
  622 + /* 修改未进行步骤的图标颜色 */
  623 + ::v-deep .el-steps .el-step__icon.is-text.is-wait {
  624 + color: #999;
  625 + /* 修改为你想要的颜色 */
  626 + }
  627 +
  628 + /* 修改未进行步骤的边框色 */
  629 + ::v-deep .el-steps .el-step__line.is-wait {
  630 + border-color: #eee;
  631 + /* 修改为你想要的颜色 */
  632 + }
  633 +
  634 + ::v-deep .el-steps .is-process .el-step__line {
  635 + background-color: #3f9b6a;
  636 + /* 修改线的颜色 */
  637 + }
  638 +
  639 + ::v-deep .el-steps .is-process .el-step__title {
  640 + color: #fe7b6a;
  641 + /* 修改进行中步骤的标题颜色 */
  642 + }
  643 +
  644 + ::v-deep .el-steps .is-process .el-step__icon {
  645 + color: #fff;
  646 + /* 修改进行中步骤的图标颜色 */
  647 + background: #3f9b6a;
  648 + /* 修改进行中步骤图标的边框颜色 */
  649 + border: 0px;
  650 + }
  651 +
  652 + ::v-deep .el-step__icon-inner {
  653 + line-height: 0;
  654 + }
  655 +
  656 + /* 线条长度 */
  657 + ::v-deep .el-step.is-vertical .el-step__line {
  658 + top: 30px;
  659 + height: 60px;
  660 + }
  661 +
  662 + ::v-deep .moren {
  663 + .el-input__inner {
  664 + margin-top: 5px;
  665 + padding: 0 20px;
  666 + }
  667 + }
  668 +
  669 + /deep/ .el-radio-group {
  670 + margin-top: 11px;
  671 + }
  672 +
  673 + /deep/ .el-radio__input.is-checked .el-radio__inner {
  674 + border-color: #3f9b6a;
  675 + background: #3f9b6a;
  676 + }
  677 +
  678 + ::v-deep .el-col {
  679 + padding: 0 !important;
  680 + }
  681 +
  682 + /deep/ .el-radio-group {
  683 + width: 100%;
  684 + }
  685 +
  686 + .radio-right-side {
  687 + width: 100%;
  688 + display: flex;
  689 + justify-content: space-between;
  690 + }
  691 +
  692 + /deep/ .radio-right-side .el-radio__label {
  693 + display: flex;
  694 + align-items: center;
  695 + }
  696 +
  697 + /deep/ .radio-right-side .el-radio__inner {
  698 + order: 1;
  699 + }
  700 +
  701 + /deep/ .radio-right-side .el-radio__input {
  702 + display: flex;
  703 + order: 2;
  704 + }
  705 +
  706 + /deep/ .radio-right-side {
  707 + &:hover {
  708 + color: #000;
  709 + }
  710 + }
  711 +
  712 + ::v-deep .el-dialog__wrapper {
  713 + .dialog_css {
  714 + margin-right: 12px;
  715 + margin-top: 61px !important;
  716 +
  717 + .el-dialog__title {
  718 + font-size: 16px !important;
  719 + font-weight: 600;
  720 + color: #000;
  721 + }
  722 + }
  723 + }
  724 +
  725 + ::v-deep .setup {
  726 + .el-steps {
  727 + justify-content: center;
  728 + }
  729 + }
  730 +
  731 + ::v-deep .el-step__head.is-finish {
  732 + color: #c0c4cc;
  733 + border-color: #c0c4cc;
  734 + }
  735 +
  736 + ::v-deep .el-step__title.is-finish {
  737 + color: #c0c4cc;
  738 + }
  739 +
  740 + ::v-deep .el-step__title.is-process {
  741 + color: #c0c4cc;
  742 + }
  743 +
  744 + ::v-deep .el-tabs {
  745 + width: 100%;
  746 + }
  747 +
  748 + ::v-deep .setup {
  749 + .el-step__main {
  750 + margin-left: -17px;
  751 + }
  752 +
  753 + .el-step__title.is-process {
  754 + color: #3f9b6a;
  755 + }
  756 +
  757 + }
  758 +
  759 + ::v-deep .el-pagination__jump {
  760 + margin-top: 5px;
  761 + }
  762 +
  763 + ::v-deep .linClass {
  764 + .el-dialog__header {
  765 + padding: 20px 20px 10px;
  766 + font-size: 14px;
  767 + }
  768 + }
682 </style> 769 </style>
683 <style lang="scss" scoped> 770 <style lang="scss" scoped>
684 - ::v-deep .bian_css {  
685 - .el-dialog__header {  
686 - padding: 0px;  
687 - }  
688 - }  
689 -  
690 - ::v-deep .buttonHover:hover {  
691 - color: #3f9b6a !important;  
692 - border-color: #c5e1d2 !important;  
693 - background-color: #ecf5f0 !important;  
694 - outline: none;  
695 - }  
696 -  
697 - ::v-deep .el-pagination__total {  
698 - position: absolute;  
699 - left: 10px;  
700 - }  
701 -  
702 - ::v-deep .diaslog_zhong {  
703 - .el-dialog__body {  
704 - padding: 10px 20px 20px 20px;  
705 - }  
706 -  
707 - .el-upload--picture-card {  
708 - width: 130px;  
709 - height: 130px;  
710 - }  
711 - }  
712 -</style> 771 + ::v-deep .bian_css {
  772 + .el-dialog__header {
  773 + padding: 0px;
  774 + }
  775 + }
  776 +
  777 + ::v-deep .buttonHover:hover {
  778 + color: #3f9b6a !important;
  779 + border-color: #c5e1d2 !important;
  780 + background-color: #ecf5f0 !important;
  781 + outline: none;
  782 + }
  783 +
  784 + ::v-deep .el-pagination__total {
  785 + position: absolute;
  786 + left: 10px;
  787 + }
  788 +
  789 + ::v-deep .diaslog_zhong {
  790 + .el-dialog__body {
  791 + padding: 10px 20px 20px 20px;
  792 + }
  793 +
  794 + .el-upload--picture-card {
  795 + width: 130px;
  796 + height: 130px;
  797 + }
  798 + }
  799 +</style>
713 \ No newline at end of file 800 \ No newline at end of file
admin-web-master/src/views/investigation/answerSheet.vue
@@ -3,7 +3,8 @@ @@ -3,7 +3,8 @@
3 <div class="zhuti"> 3 <div class="zhuti">
4 <div style="height:58px;line-height:58px;"> 4 <div style="height:58px;line-height:58px;">
5 <div style="color:#0006"> <span>问卷调查</span> <span style="padding:0 5px;">></span> <span 5 <div style="color:#0006"> <span>问卷调查</span> <span style="padding:0 5px;">></span> <span
6 - style="color:#000000e6">问卷审核</span></div> 6 + style="color:#000000e6"
  7 + >问卷审核</span></div>
7 </div> 8 </div>
8 <!-- 线上 --> 9 <!-- 线上 -->
9 <div> 10 <div>
@@ -26,143 +27,161 @@ @@ -26,143 +27,161 @@
26 <el-option label="待审核" value="2" /> 27 <el-option label="待审核" value="2" />
27 <el-option label="已通过" value="3" /> 28 <el-option label="已通过" value="3" />
28 <el-option label="不通过" value="4" /> 29 <el-option label="不通过" value="4" />
29 - <el-option label="已下架" value="5" /> 30 + <el-option label="已禁用" value="5" />
30 </el-select> 31 </el-select>
31 </el-form-item> 32 </el-form-item>
32 </el-form> 33 </el-form>
33 <div> 34 <div>
34 - <el-button @click="onSubmit" :disabled="isbutton" style="background-color: #3F9B6A;color: #fff">查询 35 + <el-button :disabled="isbutton" style="background-color: #3F9B6A;color: #fff" @click="onSubmit">查询
35 </el-button> 36 </el-button>
36 - <el-button @click="resetting" class="buttonHover"  
37 - style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置 37 + <el-button
  38 + class="buttonHover"
  39 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  40 + @click="resetting"
  41 + >重置
38 </el-button> 42 </el-button>
39 </div> 43 </div>
40 </div> 44 </div>
41 <!-- 表格 --> 45 <!-- 表格 -->
42 46
43 - <el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"  
44 - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"  
45 - tooltip-effect="dark custom-tooltip-effect">  
46 - <el-table-column label="序号" min-width="80">  
47 - <template slot-scope="scope">  
48 - {{scope.$index +1}}  
49 - </template>  
50 - </el-table-column>  
51 -  
52 - <el-table-column label="问卷类型" min-width="120" prop="questionnaireType">  
53 - </el-table-column>  
54 - <el-table-column label="问卷标题" prop="title" min-width="300" :show-overflow-tooltip="true">  
55 - </el-table-column>  
56 - <el-table-column label="开始时间" prop="startDate" min-width="150">  
57 -  
58 - </el-table-column>  
59 - <el-table-column label="结束时间" prop="endDate" min-width="150">  
60 -  
61 - </el-table-column>  
62 - <el-table-column label="已作答人数" prop="countNumber" min-width="100">  
63 - </el-table-column>  
64 - <el-table-column prop="createTime" label="创建时间" min-width="180">  
65 -  
66 - </el-table-column>  
67 - <el-table-column prop="reviewStatus" label="状态" min-width="120">  
68 - <template slot-scope="scope">  
69 - {{scope.row.reviewStatus == '1'?'待提交':scope.row.reviewStatus == '2'?'待审核':scope.row.reviewStatus == '3'?'审核通过':scope.row.reviewStatus == '4'?'不通过':'已下架'}}  
70 - </template>  
71 - </el-table-column> 47 + <el-table
  48 + :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
  49 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  50 + tooltip-effect="dark custom-tooltip-effect"
  51 + >
  52 + <el-table-column label="序号" min-width="80">
  53 + <template slot-scope="scope">
  54 + {{ scope.$index +1 }}
  55 + </template>
  56 + </el-table-column>
  57 +
  58 + <el-table-column label="问卷类型" min-width="120" prop="questionnaireType" />
  59 + <el-table-column label="问卷标题" prop="title" min-width="300" :show-overflow-tooltip="true" />
  60 + <el-table-column label="开始时间" prop="startDate" min-width="150" />
  61 + <el-table-column label="结束时间" prop="endDate" min-width="150" />
  62 + <el-table-column label="已作答人数" prop="countNumber" min-width="100" />
  63 + <el-table-column prop="createTime" label="创建时间" min-width="180" />
  64 + <el-table-column prop="reviewStatus" label="状态" min-width="120">
  65 + <template slot-scope="scope">
  66 + {{ scope.row.reviewStatus == '1'?'待提交':scope.row.reviewStatus == '2'?'待审核':scope.row.reviewStatus == '3'?'审核通过':scope.row.reviewStatus == '4'?'不通过':'已禁用' }}
  67 + </template>
  68 + </el-table-column>
72 <el-table-column label="操作" min-width="280"> 69 <el-table-column label="操作" min-width="280">
73 <template slot-scope="scope"> 70 <template slot-scope="scope">
74 - <div @click="details(0,scope.row)" class="tableBtn greens" >查看</div> 71 + <div class="tableBtn greens" @click="details(0,scope.row)">查看</div>
75 <!-- <div @click="bianls(scope.row)" class="tableBtn greens" v-if="scope.row.reviewStatus =='2'">审核</div> --> 72 <!-- <div @click="bianls(scope.row)" class="tableBtn greens" v-if="scope.row.reviewStatus =='2'">审核</div> -->
76 - <div @click="bianls(scope.row)" class="tableBtn greens" v-if="scope.row.reviewStatus =='2'">审核</div> 73 + <div v-if="scope.row.reviewStatus =='2'" class="tableBtn greens" @click="bianls(scope.row)">审核</div>
77 </template> 74 </template>
78 </el-table-column> 75 </el-table-column>
79 </el-table> 76 </el-table>
80 <div class="fenye"> 77 <div class="fenye">
81 - <el-pagination :hide-on-single-page='flag' background small size="mini" :current-page="currentPage"  
82 - :page-sizes="[10, 20, 50, 100]" layout="prev, pager, next,total" :total="total "  
83 - @size-change="handleSizeChange" @current-change="handleCurrentChange" /> 78 + <el-pagination
  79 + :hide-on-single-page="flag"
  80 + background
  81 + small
  82 + size="mini"
  83 + :current-page="currentPage"
  84 + :page-sizes="[10, 20, 50, 100]"
  85 + layout="prev, pager, next,total"
  86 + :total="total "
  87 + @size-change="handleSizeChange"
  88 + @current-change="handleCurrentChange"
  89 + />
84 </div> 90 </div>
85 </div> 91 </div>
86 92
87 </div> 93 </div>
88 <!-- 详情框 --> 94 <!-- 详情框 -->
89 - <el-dialog :visible.sync="detbox" custom-class='tongyong_css' style="padding: 0;" width="65%" center  
90 - :close-on-click-modal="false" :show-close="false"> 95 + <el-dialog
  96 + :visible.sync="detbox"
  97 + custom-class="tongyong_css"
  98 + style="padding: 0;"
  99 + width="65%"
  100 + center
  101 + :close-on-click-modal="false"
  102 + :show-close="false"
  103 + >
91 <div style="padding:20px;"> 104 <div style="padding:20px;">
92 <div style="font-size: 14px;padding-bottom: 20px;color: #000;">详情页</div> 105 <div style="font-size: 14px;padding-bottom: 20px;color: #000;">详情页</div>
93 <div> 106 <div>
94 <div style="padding: 10px 0 20px 0;">基本信息</div> 107 <div style="padding: 10px 0 20px 0;">基本信息</div>
95 - <el-descriptions class="margin-top" :column="3" border :labelStyle="labelStyle" :contentStyle="contentStyle"> 108 + <el-descriptions class="margin-top" :column="3" border :label-style="labelStyle" :content-style="contentStyle">
96 109
97 <el-descriptions-item :span="2"> 110 <el-descriptions-item :span="2">
98 <template slot="label"> 111 <template slot="label">
99 问卷标题 112 问卷标题
100 </template> 113 </template>
101 - {{secondData.title}} 114 + {{ secondData.title }}
102 </el-descriptions-item> 115 </el-descriptions-item>
103 <el-descriptions-item> 116 <el-descriptions-item>
104 <template slot="label"> 117 <template slot="label">
105 状态 118 状态
106 </template> 119 </template>
107 - {{secondData.reviewStatus == '1'?'待提交':secondData.reviewStatus == '2'?'待审核':secondData.reviewStatus == '3'?'审核通过':secondData.reviewStatus == '4'?'不通过':'已下架'}} 120 + {{ secondData.reviewStatus == '1'?'待提交':secondData.reviewStatus == '2'?'待审核':secondData.reviewStatus == '3'?'审核通过':secondData.reviewStatus == '4'?'不通过':'已禁用' }}
108 </el-descriptions-item> 121 </el-descriptions-item>
109 122
110 <el-descriptions-item> 123 <el-descriptions-item>
111 <template slot="label"> 124 <template slot="label">
112 开始时间 125 开始时间
113 </template> 126 </template>
114 - {{secondData.startDate}} 127 + {{ secondData.startDate }}
115 </el-descriptions-item> 128 </el-descriptions-item>
116 <el-descriptions-item> 129 <el-descriptions-item>
117 <template slot="label"> 130 <template slot="label">
118 结束时间 131 结束时间
119 </template> 132 </template>
120 - {{secondData.endDate}} 133 + {{ secondData.endDate }}
121 </el-descriptions-item> 134 </el-descriptions-item>
122 135
123 <el-descriptions-item> 136 <el-descriptions-item>
124 <template slot="label"> 137 <template slot="label">
125 预计填写时长 138 预计填写时长
126 </template> 139 </template>
127 - {{secondData.estimatedTime}} 140 + {{ secondData.estimatedTime }}
128 </el-descriptions-item> 141 </el-descriptions-item>
129 <el-descriptions-item> 142 <el-descriptions-item>
130 <template slot="label"> 143 <template slot="label">
131 发布端口 144 发布端口
132 </template> 145 </template>
133 - {{secondData.publishPort}} 146 + {{ secondData.publishPort }}
134 </el-descriptions-item> 147 </el-descriptions-item>
135 <el-descriptions-item> 148 <el-descriptions-item>
136 <template slot="label"> 149 <template slot="label">
137 问卷类型 150 问卷类型
138 </template> 151 </template>
139 - {{secondData.questionnaireType}} 152 + {{ secondData.questionnaireType }}
140 </el-descriptions-item> 153 </el-descriptions-item>
141 <el-descriptions-item> 154 <el-descriptions-item>
142 <template slot="label"> 155 <template slot="label">
143 填写条件 156 填写条件
144 </template> 157 </template>
145 - {{secondData.fillingConditions}} 158 + {{ secondData.fillingConditions }}
146 </el-descriptions-item> 159 </el-descriptions-item>
147 <el-descriptions-item> 160 <el-descriptions-item>
148 <template slot="label"> 161 <template slot="label">
149 问卷介绍 162 问卷介绍
150 </template> 163 </template>
151 - {{secondData.remarks}} 164 + {{ secondData.remarks }}
152 </el-descriptions-item> 165 </el-descriptions-item>
153 166
154 </el-descriptions> 167 </el-descriptions>
155 <div style="padding: 20px 0;">问卷封面</div> 168 <div style="padding: 20px 0;">问卷封面</div>
  169 +
156 <div> 170 <div>
157 - <img :src="secondData.coverImage" alt="" style="height:100%;" /> 171 + <!-- <img :src="secondData.coverImage" alt="" style="height:100%;" /> -->
  172 + <el-image
  173 + style="width: 200px; height: 200px"
  174 + :src="this.$hostUrl + secondData.coverImage"
  175 + fit="fill"
  176 + />
158 </div> 177 </div>
159 - <div style="padding: 20px 0 ;" v-if="secondData.filler == '会员'">参与答卷奖励</div>  
160 - <el-descriptions class="margin-top" :column="3" border :labelStyle="labelStyle" :contentStyle="contentStyle" v-if="secondData.filler == '会员'"> 178 + <div v-if="secondData.filler == '会员'" style="padding: 20px 0 ;">参与答卷奖励</div>
  179 + <el-descriptions v-if="secondData.filler == '会员'" class="margin-top" :column="3" border :label-style="labelStyle" :content-style="contentStyle">
161 <el-descriptions-item> 180 <el-descriptions-item>
162 <template slot="label"> 181 <template slot="label">
163 提交问卷后 182 提交问卷后
164 </template> 183 </template>
165 - {{secondData.rewardForParticipation}} 184 + {{ secondData.rewardForParticipation }}
166 </el-descriptions-item> 185 </el-descriptions-item>
167 <el-descriptions-item> 186 <el-descriptions-item>
168 <template slot="label"> 187 <template slot="label">
@@ -172,24 +191,21 @@ @@ -172,24 +191,21 @@
172 </el-descriptions-item> 191 </el-descriptions-item>
173 </el-descriptions> 192 </el-descriptions>
174 <div style="padding: 20px 0 ;">问卷题目</div> 193 <div style="padding: 20px 0 ;">问卷题目</div>
175 - <el-table :data="wenData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"  
176 - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"> 194 + <el-table
  195 + :data="wenData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
  196 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  197 + >
177 <el-table-column label="序号" min-width="100"> 198 <el-table-column label="序号" min-width="100">
178 <template slot-scope="scope"> 199 <template slot-scope="scope">
179 - {{scope.$index +1}} 200 + {{ scope.$index +1 }}
180 </template> 201 </template>
181 </el-table-column> 202 </el-table-column>
182 - <el-table-column label="题目" min-width="300" prop="title">  
183 -  
184 - </el-table-column>  
185 - <el-table-column label="题型" min-width="80" prop="type">  
186 - </el-table-column>  
187 - <el-table-column label="是否必填" prop="required" min-width="80">  
188 -  
189 - </el-table-column> 203 + <el-table-column label="题目" min-width="300" prop="title" />
  204 + <el-table-column label="题型" min-width="80" prop="type" />
  205 + <el-table-column label="是否必填" prop="required" min-width="80" />
190 <el-table-column label="选项" min-width="120"> 206 <el-table-column label="选项" min-width="120">
191 <template slot-scope="scope"> 207 <template slot-scope="scope">
192 - <div v-for="(value, index) in scope.row.options " :key="index" v-if="scope.row.type !='文本'"> 208 + <div v-for="(value, index) in scope.row.options " v-if="scope.row.type !='文本'" :key="index">
193 {{ index +1 }}:{{ value.answer }} 209 {{ index +1 }}:{{ value.answer }}
194 </div> 210 </div>
195 <div v-else> 211 <div v-else>
@@ -201,84 +217,103 @@ @@ -201,84 +217,103 @@
201 217
202 </el-table> 218 </el-table>
203 <div style="padding: 20px 0 ;">系统信息</div> 219 <div style="padding: 20px 0 ;">系统信息</div>
204 - <el-descriptions class="margin-top" :column="3" border :labelStyle="labelStyle" :contentStyle="contentStyle"> 220 + <el-descriptions class="margin-top" :column="3" border :label-style="labelStyle" :content-style="contentStyle">
205 <el-descriptions-item> 221 <el-descriptions-item>
206 <template slot="label"> 222 <template slot="label">
207 创建人 223 创建人
208 </template> 224 </template>
209 - {{secondData.createUser}} 225 + {{ secondData.createUser }}
210 </el-descriptions-item> 226 </el-descriptions-item>
211 <el-descriptions-item> 227 <el-descriptions-item>
212 <template slot="label"> 228 <template slot="label">
213 创建时间 229 创建时间
214 </template> 230 </template>
215 - {{secondData.createTime}} 231 + {{ secondData.createTime }}
216 </el-descriptions-item> 232 </el-descriptions-item>
217 <el-descriptions-item> 233 <el-descriptions-item>
218 <template slot="label"> 234 <template slot="label">
219 更新时间 235 更新时间
220 </template> 236 </template>
221 -{{secondData.updateTime}} 237 + {{ secondData.updateTime }}
222 </el-descriptions-item> 238 </el-descriptions-item>
223 </el-descriptions> 239 </el-descriptions>
224 </div> 240 </div>
225 -<div style="padding: 20px 0 ;">审核信息</div>  
226 -<el-descriptions class="margin-top" :column="3" border :labelStyle="labelStyle" :contentStyle="contentStyle">  
227 - <el-descriptions-item>  
228 - <template slot="label">  
229 - 审核状态  
230 - </template>  
231 - {{secondData.reviewStatus == '3'?'审核通过':secondData.reviewStatus == '4'?'不通过':''}}  
232 - </el-descriptions-item>  
233 - <el-descriptions-item>  
234 - <template slot="label">  
235 - 审核意见  
236 - </template>  
237 - {{secondData.reviewComments}}  
238 - </el-descriptions-item> 241 + <div style="padding: 20px 0 ;">审核信息</div>
  242 + <el-descriptions class="margin-top" :column="3" border :label-style="labelStyle" :content-style="contentStyle">
  243 + <el-descriptions-item>
  244 + <template slot="label">
  245 + 审核状态
  246 + </template>
  247 + {{ secondData.reviewStatus == '3'?'审核通过':secondData.reviewStatus == '4'?'不通过':'' }}
  248 + </el-descriptions-item>
  249 + <el-descriptions-item>
  250 + <template slot="label">
  251 + 审核意见
  252 + </template>
  253 + {{ secondData.reviewComments }}
  254 + </el-descriptions-item>
239 255
240 - </el-descriptions> 256 + </el-descriptions>
241 <div style="padding-top:20px;display:flex;justify-content: flex-end;"> 257 <div style="padding-top:20px;display:flex;justify-content: flex-end;">
242 - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"  
243 - @click="detbox = false">返回</el-button> 258 + <el-button
  259 + class="buttonHover"
  260 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  261 + @click="detbox = false"
  262 + >返回</el-button>
244 </div> 263 </div>
245 </div> 264 </div>
246 265
247 </el-dialog> 266 </el-dialog>
248 -<el-dialog  
249 - width="40%"  
250 - title="审核"  
251 - custom-class='liucheng_css'  
252 - :visible.sync="Liunie"  
253 - :close-on-click-modal="false" :close-on-press-escape="false" :show-close='false'  
254 - append-to-body>  
255 - <div style="padding:30px 20px 0 20px">  
256 - <el-form ref="ruleFormInfo" :model="shenMsg" :rules="rules" label-width="120px"  
257 - style="position: relative">  
258 - <el-form-item label="审核状态" class="grid-content bg-purple" prop="reviewStatus">  
259 - <el-radio-group v-model="shenMsg.reviewStatus" style="margin-top:13px;">  
260 - <el-radio :label="3">通过</el-radio>  
261 - <el-radio :label="4">不通过</el-radio>  
262 -  
263 - </el-radio-group>  
264 - </el-form-item>  
265 -  
266 - <el-form-item label="处理意见" class="grid-content bg-purple" prop="reviewComments">  
267 - <el-input type="textarea" v-model="shenMsg.reviewComments"  
268 - placeholder="请输入处理意见" maxlength="50"/>  
269 - </el-form-item>  
270 -  
271 - </el-form>  
272 - </div>  
273 - <div style="display:flex;justify-content: flex-end;padding:20px;">  
274 - <el-button @click="quxiao"  
275 - style="background-color: #3F9B6A;color: #fff;">取消</el-button>  
276 - <el-button @click="OAshen"  
277 - style="background-color: #3F9B6A;color: #fff;">确定</el-button>  
278 - </div>  
279 - </el-dialog> 267 + <el-dialog
  268 + width="40%"
  269 + title="审核"
  270 + custom-class="liucheng_css"
  271 + :visible.sync="Liunie"
  272 + :close-on-click-modal="false"
  273 + :close-on-press-escape="false"
  274 + :show-close="false"
  275 + append-to-body
  276 + >
  277 + <div style="padding:30px 20px 0 20px">
  278 + <el-form
  279 + ref="ruleFormInfo"
  280 + :model="shenMsg"
  281 + :rules="rules"
  282 + label-width="120px"
  283 + style="position: relative"
  284 + >
  285 + <el-form-item label="审核状态" class="grid-content bg-purple" prop="reviewStatus">
  286 + <el-radio-group v-model="shenMsg.reviewStatus" style="margin-top:13px;">
  287 + <el-radio :label="3">通过</el-radio>
  288 + <el-radio :label="4">不通过</el-radio>
  289 +
  290 + </el-radio-group>
  291 + </el-form-item>
  292 +
  293 + <el-form-item label="处理意见" class="grid-content bg-purple" prop="reviewComments">
  294 + <el-input
  295 + v-model="shenMsg.reviewComments"
  296 + type="textarea"
  297 + placeholder="请输入处理意见"
  298 + maxlength="50"
  299 + />
  300 + </el-form-item>
  301 +
  302 + </el-form>
  303 + </div>
  304 + <div style="display:flex;justify-content: flex-end;padding:20px;">
  305 + <el-button
  306 + style="background-color: #3F9B6A;color: #fff;"
  307 + @click="quxiao"
  308 + >取消</el-button>
  309 + <el-button
  310 + style="background-color: #3F9B6A;color: #fff;"
  311 + @click="OAshen"
  312 + >确定</el-button>
  313 + </div>
  314 + </el-dialog>
280 315
281 -<!-- <el-dialog :visible.sync="actSpye" custom-class='actSpye_dialog' style="padding: 0;" width="70%" 316 + <!-- <el-dialog :visible.sync="actSpye" custom-class='actSpye_dialog' style="padding: 0;" width="70%"
282 center :close-on-click-modal="false" :show-close="false" :close-on-press-escape="false"> 317 center :close-on-click-modal="false" :show-close="false" :close-on-press-escape="false">
283 <div style="padding:10px 20px;"> 318 <div style="padding:10px 20px;">
284 <div style="display: flex;justify-content: space-between;border-bottom: 1px solid #E5E5E5;padding: 0 0 10px 0;"> 319 <div style="display: flex;justify-content: space-between;border-bottom: 1px solid #E5E5E5;padding: 0 0 10px 0;">
@@ -468,7 +503,6 @@ @@ -468,7 +503,6 @@
468 </div> 503 </div>
469 </div> 504 </div>
470 505
471 -  
472 </div> 506 </div>
473 <div style="display:flex;justify-content: flex-end;padding:20px;"> 507 <div style="display:flex;justify-content: flex-end;padding:20px;">
474 <el-button @click="MsgSp=false" 508 <el-button @click="MsgSp=false"
@@ -660,210 +694,202 @@ @@ -660,210 +694,202 @@
660 </el-dialog> --> 694 </el-dialog> -->
661 </div> 695 </div>
662 696
663 -  
664 </template> 697 </template>
665 698
666 <script> 699 <script>
667 - import {  
668 - async  
669 - } from 'q'  
670 - import axios from 'axios'  
671 - import {  
672 - TerminaGetAll,  
673 - TerminaAdd,  
674 - TerminaEdit,  
675 - TerminaDel,  
676 - QuestionGetAll,  
677 - QuestionAdd,  
678 - } from '../../api/investigation.js'  
679 - import upimg from "@/components/ImageUpload/index"  
680 - export default {  
681 - components: {  
682 - upimg  
683 - },  
684 - data() {  
685 - return {  
686 - detbox: false, //详情  
687 - currentPage: 1,  
688 - total: 10,  
689 - flag: false, 700 +import {
  701 + async
  702 +} from 'q'
  703 +import axios from 'axios'
  704 +import {
  705 + TerminaGetAll,
  706 + TerminaAdd,
  707 + TerminaEdit,
  708 + TerminaDel,
  709 + QuestionGetAll,
  710 + QuestionAdd,
  711 +} from '../../api/investigation.js'
  712 +import upimg from '@/components/ImageUpload/index'
  713 +export default {
  714 + components: {
  715 + upimg
  716 + },
  717 + data () {
  718 + return {
  719 + detbox: false, // 详情
  720 + currentPage: 1,
  721 + total: 10,
  722 + flag: false,
  723 + pageSize: 10,
  724 + tableData: [
  725 + ],
  726 + secondData: {},
  727 + formSel: {
  728 + queryStatus: '1',
  729 + title: '',
  730 + questionnaireType: '',
  731 + reviewStatus: '',
  732 + pageNumber: 0,
  733 + pageSize: 10,
  734 + },
  735 + pageindex: {
  736 + pageNumber: 0,
690 pageSize: 10, 737 pageSize: 10,
691 - tableData: [ 738 + queryStatus: '1'
  739 + },
  740 + actSpye: false, // 审核
  741 + actCard: '1',
  742 + MsgSp: false,
  743 + index: 0,
  744 + liuYe: 1, // 通过or不通过
  745 + Liunie: false,
  746 + wenData: [],
  747 + labelStyle: {
  748 + width: '160px'
  749 + },
  750 + contentStyle: {
  751 + width: '246px'
  752 + },
  753 + shenMsg: {
  754 + reviewStatus: 3,
  755 + reviewComments: '',
  756 + id: ''
  757 + },
  758 + rules: {
  759 + reviewComments: [
  760 + { required: true, message: '请输入意见', trigger: 'blur' },
692 ], 761 ],
693 - secondData: {},  
694 - formSel: {  
695 - queryStatus:'1',  
696 - title:'',  
697 - questionnaireType:'',  
698 - reviewStatus:'',  
699 - pageNumber: 0,  
700 - pageSize: 10,  
701 - },  
702 - pageindex: {  
703 - pageNumber: 0,  
704 - pageSize: 10,  
705 - queryStatus:'1'  
706 - },  
707 - actSpye: false, // 审核  
708 - actCard:'1',  
709 - MsgSp:false,  
710 - index:0,  
711 - liuYe:1,//通过or不通过  
712 - Liunie:false,  
713 - wenData:[],  
714 - labelStyle :{  
715 - width:'160px'  
716 - },  
717 - contentStyle:{  
718 - width:'246px'  
719 - },  
720 - shenMsg:{  
721 - reviewStatus:3,  
722 - reviewComments:'',  
723 - id:''  
724 - },  
725 - rules:{  
726 - reviewComments: [  
727 - { required: true, message: '请输入意见', trigger: 'blur' },  
728 - ],  
729 - reviewStatus: [  
730 - { required: true, message: '请选择审核状态', trigger: 'change' },  
731 - ],  
732 - },  
733 - isbutton: false,  
734 - tikuziyuan:[] 762 + reviewStatus: [
  763 + { required: true, message: '请选择审核状态', trigger: 'change' },
  764 + ],
  765 + },
  766 + isbutton: false,
  767 + tikuziyuan: []
  768 + }
  769 + },
  770 + computed: {
  771 +
  772 + },
  773 + created () {
  774 + this.getAll()
  775 + },
  776 + methods: {
  777 + chenge (val) {
  778 + this.formSel = {
  779 + title: '',
  780 + questionnaireType: '',
  781 + reviewStatus: '',
  782 + pageNumber: 0,
  783 + pageSize: 10,
  784 + queryStatus: '1',
735 } 785 }
736 }, 786 },
737 - created() {  
738 - this.getAll() 787 + async getAll () {
  788 + const res = await TerminaGetAll(this.pageindex)
  789 + this.tableData = res.data.content
  790 + this.total = res.data.totalElements
739 }, 791 },
740 - computed: {  
741 792
742 - },  
743 - methods: {  
744 - chenge(val) {  
745 - this.formSel = {  
746 - title:'',  
747 - questionnaireType:'',  
748 - reviewStatus:'',  
749 - pageNumber: 0,  
750 - pageSize: 10,  
751 - queryStatus:'1', 793 + // 获取时间
  794 + currentTime () {
  795 + const date = new Date();
  796 + const year = date.getFullYear(); // 月份从0~11,所以加一
  797 + const month = date.getMonth();
  798 + const dateArr = [date.getMonth() + 1, date.getDate(), date.getHours()]
  799 + for (let i = 0; i < dateArr.length; i++) {
  800 + if (dateArr[i] >= 1 && dateArr[i] <= 9) {
  801 + dateArr[i] = '0' + dateArr[i]
752 } 802 }
753 - },  
754 - async getAll() {  
755 - const res = await TerminaGetAll(this.pageindex)  
756 - this.tableData = res.data.content  
757 - this.total = res.data.totalElements  
758 -  
759 - },  
760 -  
761 - // 获取时间  
762 - currentTime() {  
763 - let date = new Date();  
764 - let year = date.getFullYear(); //月份从0~11,所以加一  
765 - let month = date.getMonth();  
766 - let dateArr = [date.getMonth() + 1, date.getDate(), date.getHours()]  
767 - for (let i = 0; i < dateArr.length; i++) {  
768 - if (dateArr[i] >= 1 && dateArr[i] <= 9) {  
769 - dateArr[i] = '0' + dateArr[i]  
770 - } 803 + }
  804 + const strDate = year + '-' + dateArr[0] + '-' + dateArr[1]
  805 + return strDate
  806 + },
  807 + objectToArray (obj) {
  808 + return Object.keys(obj).map(key => {
  809 + const item = obj[key];
  810 + return {
  811 + id: key,
  812 + ...item
771 } 813 }
772 - let strDate = year + '-' + dateArr[0] + '-' + dateArr[1]  
773 - return strDate  
774 - },  
775 -objectToArray(obj) {  
776 - return Object.keys(obj).map(key => {  
777 - const item = obj[key];  
778 - return {  
779 - id: key,  
780 - ...item  
781 - }  
782 - })  
783 -},  
784 -  
785 - //详情  
786 - details(val, item) {  
787 - this.detbox = true  
788 - this.secondData = item  
789 - if(typeof item.question =='string'){  
790 - item.question = JSON.parse(item.question)  
791 -  
792 - }  
793 - const array = this.objectToArray(item.question)  
794 -  
795 - this.wenData = array 814 + })
  815 + },
796 816
797 - }, 817 + // 详情
  818 + details (val, item) {
  819 + this.detbox = true
  820 + this.secondData = item
  821 + if (typeof item.question === 'string') {
  822 + item.question = JSON.parse(item.question)
  823 + }
  824 + const array = this.objectToArray(item.question)
798 825
799 - handleSizeChange(val) {  
800 - this.pageSize = val  
801 - },  
802 - handleCurrentChange(val) { 826 + this.wenData = array
  827 + },
803 828
804 - this.pageindex = {  
805 - pageNumber: val - 1,  
806 - pageSize: 10,  
807 - } 829 + handleSizeChange (val) {
  830 + this.pageSize = val
  831 + },
  832 + handleCurrentChange (val) {
  833 + this.pageindex = {
  834 + pageNumber: val - 1,
  835 + pageSize: 10,
  836 + }
808 837
809 - TerminaGetAll(this.pageindex).then(res=>{  
810 - this.tableData = res.data.content  
811 - })  
812 - }, 838 + TerminaGetAll(this.pageindex).then(res => {
  839 + this.tableData = res.data.content
  840 + })
  841 + },
813 842
814 - closeFn(val) { 843 + closeFn (val) {
815 this.detbox = false 844 this.detbox = false
816 - },  
817 -  
818 - // 查询按钮  
819 - async onSubmit() {  
820 - this.isbutton = true;  
821 - const res = await TerminaGetAll(this.formSel)  
822 - this.tableData = res.data.content  
823 - this.total = res.data.totalElements  
824 - this.isbutton = false;  
825 -  
826 - },  
827 - //重置按钮  
828 - resetting() {  
829 - this.formSel = { title:'',  
830 - questionnaireType:'',  
831 - reviewStatus:'',  
832 - queryStatus:'1',  
833 - pageNumber: 0,  
834 - pageSize: 10,  
835 - }  
836 - this.currentPage = 1  
837 - this.pageindex.pageNumber = 0  
838 - this.getAll()  
839 - },  
840 - bianls(item){  
841 - // this.tikuziyuan = item.cereQuestionManagements  
842 - // this.secondData = item  
843 - // this.actSpye = true  
844 - this.shenMsg.id = item.id  
845 - this.Liunie = true  
846 - 845 + },
847 846
848 - },  
849 - MsgShen(val){  
850 - this.index = val  
851 - this.MsgSp =true  
852 - },  
853 - LiuYes(val){  
854 - this.liuYe = val  
855 - this.Liunie = true  
856 - },  
857 -OAshen(){  
858 - if(this.shenMsg.reviewComments == ''){  
859 - this.$message({  
860 - message: '请输入审核意见',  
861 - })  
862 - return  
863 - }  
864 - TerminaEdit(this.shenMsg).then(res=>{  
865 - this.getAll()  
866 - }) 847 + // 查询按钮
  848 + async onSubmit () {
  849 + this.isbutton = true;
  850 + const res = await TerminaGetAll(this.formSel)
  851 + this.tableData = res.data.content
  852 + this.total = res.data.totalElements
  853 + this.isbutton = false;
  854 + },
  855 + // 重置按钮
  856 + resetting () {
  857 + this.formSel = { title: '',
  858 + questionnaireType: '',
  859 + reviewStatus: '',
  860 + queryStatus: '1',
  861 + pageNumber: 0,
  862 + pageSize: 10,
  863 + }
  864 + this.currentPage = 1
  865 + this.pageindex.pageNumber = 0
  866 + this.getAll()
  867 + },
  868 + bianls (item) {
  869 + // this.tikuziyuan = item.cereQuestionManagements
  870 + // this.secondData = item
  871 + // this.actSpye = true
  872 + this.shenMsg.id = item.id
  873 + this.Liunie = true
  874 + },
  875 + MsgShen (val) {
  876 + this.index = val
  877 + this.MsgSp = true
  878 + },
  879 + LiuYes (val) {
  880 + this.liuYe = val
  881 + this.Liunie = true
  882 + },
  883 + OAshen () {
  884 + if (this.shenMsg.reviewComments == '') {
  885 + this.$message({
  886 + message: '请输入审核意见',
  887 + })
  888 + return
  889 + }
  890 + TerminaEdit(this.shenMsg).then(res => {
  891 + this.getAll()
  892 + })
867 // if(this.liuYe == 1){ 893 // if(this.liuYe == 1){
868 // TerminaEdit({id:this.secondData.id,reviewStatus:'3'}).then(res=>{ 894 // TerminaEdit({id:this.secondData.id,reviewStatus:'3'}).then(res=>{
869 // this.getAll() 895 // this.getAll()
@@ -874,16 +900,15 @@ OAshen(){ @@ -874,16 +900,15 @@ OAshen(){
874 // }) 900 // })
875 901
876 // } 902 // }
877 - this.Liunie = false  
878 - // this.actSpye = false  
879 -  
880 -},  
881 -quxiao(){  
882 - this.$refs.ruleFormInfo.resetFields()  
883 - this.Liunie=false  
884 -} 903 + this.Liunie = false
  904 + // this.actSpye = false
  905 + },
  906 + quxiao () {
  907 + this.$refs.ruleFormInfo.resetFields()
  908 + this.Liunie = false
885 } 909 }
886 } 910 }
  911 +}
887 </script> 912 </script>
888 913
889 <style scoped> 914 <style scoped>
@@ -1002,7 +1027,6 @@ quxiao(){ @@ -1002,7 +1027,6 @@ quxiao(){
1002 font-size: 16px; 1027 font-size: 16px;
1003 } 1028 }
1004 1029
1005 -  
1006 ::v-deep .el-dialog__wrapper { 1030 ::v-deep .el-dialog__wrapper {
1007 .el-dialog__header { 1031 .el-dialog__header {
1008 background-color: #FAFAFA; 1032 background-color: #FAFAFA;
@@ -1311,7 +1335,6 @@ quxiao(){ @@ -1311,7 +1335,6 @@ quxiao(){
1311 } 1335 }
1312 } 1336 }
1313 1337
1314 -  
1315 } 1338 }
1316 } 1339 }
1317 </style> 1340 </style>
admin-web-master/src/views/investigation/index.vue
1 <template> 1 <template>
2 - <div style="background-color:#f7f7f7;padding:10px 10px;">  
3 - <div class="zhuti">  
4 - <div style="height:58px;line-height:58px;">  
5 - <div style="color:#0006"> <span>问卷调查</span> <span style="padding:0 5px;">></span> <span  
6 - style="color:#000000e6">问卷管理</span></div>  
7 - </div>  
8 - <!-- 线上 -->  
9 - <div v-if="!tongjiBox">  
10 - <!-- 搜索 -->  
11 - <div class="formSearch">  
12 - <el-form :inline="true" :model="formSel">  
13 - <el-form-item label="问卷标题">  
14 - <el-input v-model="formSel.title" placeholder="请输入" style="width:168px;" />  
15 - </el-form-item>  
16 - <el-form-item label="问卷类型">  
17 - <el-select v-model="formSel.questionnaireType" placeholder="请选择" style="width:168px;margin-right: 15px">  
18 - <el-option label="物业问卷" value="物业问卷" />  
19 - <el-option label="招商问卷" value="招商问卷" />  
20 - <el-option label="满意度问卷" value="满意度问卷" />  
21 - <el-option label="社会调查问卷" value="社会调查问卷" />  
22 - </el-select>  
23 - </el-form-item>  
24 - <el-form-item label="状态">  
25 - <el-select v-model="formSel.reviewStatus" placeholder="请选择" style="width:168px;margin-right: 15px">  
26 - <el-option label="待提交" value="1" />  
27 - <el-option label="待审核" value="2" />  
28 - <el-option label="已通过" value="3" />  
29 - <el-option label="不通过" value="4" />  
30 - <el-option label="已禁用" value="5" />  
31 - </el-select>  
32 - </el-form-item>  
33 - </el-form>  
34 - <div>  
35 - <el-button @click="onSubmit" :disabled="isbutton" style="background-color: #3F9B6A;color: #fff">查询  
36 - </el-button>  
37 - <el-button @click="resetting" class="buttonHover"  
38 - style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置  
39 - </el-button>  
40 - </div>  
41 - </div>  
42 - <div style="margin-bottom: 20px;">  
43 - <div>  
44 - <el-button style="background-color: #3F9B6A;color: #fff;padding:8px 15px;"  
45 - icon="el-icon-circle-plus-outline" @click="addggXin">新增</el-button>  
46 - </div>  
47 - </div>  
48 - <!-- 表格 -->  
49 -  
50 - <el-table :data="tableData.slice((currentPageList - 1) * pageSize, currentPageList * pageSize)"  
51 - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"  
52 - tooltip-effect="dark custom-tooltip-effect">  
53 - <el-table-column label="序号" min-width="80">  
54 - <template slot-scope="scope">  
55 - {{scope.$index +1}}  
56 - </template>  
57 - </el-table-column>  
58 - <!-- <el-table-column label="问卷编号" min-width="150" prop="id"> 2 + <div style="background-color:#f7f7f7;padding:10px 10px;">
  3 + <div class="zhuti">
  4 + <div style="height:58px;line-height:58px;">
  5 + <div style="color:#0006"> <span>问卷调查</span> <span style="padding:0 5px;">></span> <span
  6 + style="color:#000000e6">问卷管理</span></div>
  7 + </div>
  8 + <!-- 线上 -->
  9 + <div v-if="!tongjiBox">
  10 + <!-- 搜索 -->
  11 + <div class="formSearch">
  12 + <el-form :inline="true" :model="formSel">
  13 + <el-form-item label="问卷标题">
  14 + <el-input v-model="formSel.title" placeholder="请输入" style="width:168px;" />
  15 + </el-form-item>
  16 + <el-form-item label="问卷类型">
  17 + <el-select v-model="formSel.questionnaireType" placeholder="请选择"
  18 + style="width:168px;margin-right: 15px">
  19 + <el-option label="物业问卷" value="物业问卷" />
  20 + <el-option label="招商问卷" value="招商问卷" />
  21 + <el-option label="满意度问卷" value="满意度问卷" />
  22 + <el-option label="社会调查问卷" value="社会调查问卷" />
  23 + </el-select>
  24 + </el-form-item>
  25 + <el-form-item label="状态">
  26 + <el-select v-model="formSel.reviewStatus" placeholder="请选择"
  27 + style="width:168px;margin-right: 15px">
  28 + <el-option label="待提交" value="1" />
  29 + <el-option label="待审核" value="2" />
  30 + <el-option label="已通过" value="3" />
  31 + <el-option label="不通过" value="4" />
  32 + <el-option label="已禁用" value="5" />
  33 + </el-select>
  34 + </el-form-item>
  35 + </el-form>
  36 + <div>
  37 + <el-button :disabled="isbutton" style="background-color: #3F9B6A;color: #fff"
  38 + @click="onSubmit">查询
  39 + </el-button>
  40 + <el-button class="buttonHover"
  41 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  42 + @click="resetting">重置
  43 + </el-button>
  44 + </div>
  45 + </div>
  46 + <div style="margin-bottom: 20px;">
  47 + <div>
  48 + <el-button style="background-color: #3F9B6A;color: #fff;padding:8px 15px;"
  49 + icon="el-icon-circle-plus-outline" @click="addggXin">新增</el-button>
  50 + </div>
  51 + </div>
  52 + <!-- 表格 -->
  53 +
  54 + <el-table :data="tableData.slice((currentPageList - 1) * pageSize, currentPageList * pageSize)"
  55 + :header-cell-style="{ fontSize: '14px', color: '#0009', fontWeight: 'normal', backgroundColor: '#F2F3F5' }"
  56 + tooltip-effect="dark custom-tooltip-effect">
  57 + <el-table-column label="序号" min-width="80">
  58 + <template slot-scope="scope">
  59 + {{ scope.$index + 1 }}
  60 + </template>
  61 + </el-table-column>
  62 + <!-- <el-table-column label="问卷编号" min-width="150" prop="id">
59 </el-table-column> --> 63 </el-table-column> -->
60 - <el-table-column label="问卷类型" min-width="130" prop="questionnaireType">  
61 - </el-table-column>  
62 - <el-table-column label="问卷标题" prop="title" min-width="300" :show-overflow-tooltip="true">  
63 - </el-table-column>  
64 - <el-table-column label="开始时间" prop="startDate" min-width="150">  
65 -  
66 - </el-table-column>  
67 - <el-table-column label="结束时间" prop="endDate" min-width="150">  
68 -  
69 - </el-table-column>  
70 - <el-table-column label="已作答人数" prop="countNumber" min-width="100">  
71 - </el-table-column>  
72 - <el-table-column prop="createTime" label="创建时间" min-width="180">  
73 -  
74 - </el-table-column>  
75 - <el-table-column prop="reviewStatus" label="状态" min-width="120">  
76 - <template slot-scope="scope">  
77 - {{scope.row.reviewStatus == '1'?'待提交':scope.row.reviewStatus == '2'?'待审核':scope.row.reviewStatus == '3'?'已通过':scope.row.reviewStatus == '4'?'不通过':'已禁用'}}  
78 - </template>  
79 - </el-table-column>  
80 - <el-table-column label="操作" min-width="280">  
81 - <template slot-scope="scope">  
82 - <div @click="details(0,scope.row)" class="tableBtn greens">查看</div>  
83 - <div @click="bianls(scope.row)" class="tableBtn greens" v-if="scope.row.reviewStatus =='1'">编辑</div>  
84 - <div @click="fabu('2',scope.row)" class="tableBtn greens" v-if="scope.row.reviewStatus =='1'">提交审核</div>  
85 - <div @click="downs(scope.row)" class="tableBtn greens" v-if="scope.row.reviewStatus =='3'">禁用</div>  
86 - <div @click="tongji(scope.row)" class="tableBtn greens"  
87 - v-if="scope.row.reviewStatus =='3' || scope.row.reviewStatus =='5'">统计</div>  
88 - <div @click="delwen(scope.row)" class="tableBtn greens" v-if="scope.row.reviewStatus =='1'">删除</div>  
89 - <div @click="yulan(scope.row)" class="tableBtn greens"  
90 - v-if="scope.row.reviewStatus =='3' || scope.row.reviewStatus =='1'">预览</div>  
91 - <!-- <div @click="addbuss(3,scope.row)" class="tableBtn greens">终止</div> -->  
92 - </template>  
93 - </el-table-column>  
94 - </el-table>  
95 -  
96 - <div class="fenye"> 64 + <el-table-column label="问卷类型" min-width="130" prop="questionnaireType" />
  65 + <el-table-column label="问卷标题" prop="title" min-width="300" :show-overflow-tooltip="true" />
  66 + <el-table-column label="开始时间" prop="startDate" min-width="150" />
  67 + <el-table-column label="结束时间" prop="endDate" min-width="150" />
  68 + <el-table-column label="已作答人数" prop="countNumber" min-width="100" />
  69 + <el-table-column prop="createTime" label="创建时间" min-width="180" />
  70 + <el-table-column prop="reviewStatus" label="状态" min-width="120">
  71 + <template slot-scope="scope">
  72 + {{ scope.row.reviewStatus == '1' ? '待提交' : scope.row.reviewStatus == '2' ? '待审核' : scope.row.reviewStatus
  73 + ==
  74 + '3' ? '已通过' : scope.row.reviewStatus == '4' ?'不通过':'已禁用' }}
  75 + </template>
  76 + </el-table-column>
  77 + <el-table-column label="操作" min-width="280">
  78 + <template slot-scope="scope">
  79 + <div class="tableBtn greens" @click="details(0, scope.row)">查看</div>
  80 + <div v-if="scope.row.reviewStatus == '1'" class="tableBtn greens"
  81 + @click="bianls(scope.row)">编辑</div>
  82 + <div v-if="scope.row.reviewStatus == '1'" class="tableBtn greens"
  83 + @click="fabu('2', scope.row)">提交审核</div>
  84 + <div v-if="scope.row.reviewStatus == '3'" class="tableBtn greens" @click="downs(scope.row)">
  85 + 禁用</div>
  86 + <div v-if="scope.row.reviewStatus == '3' || scope.row.reviewStatus == '5'"
  87 + class="tableBtn greens" @click="tongji(scope.row)">统计</div>
  88 + <div v-if="scope.row.reviewStatus == '1'" class="tableBtn greens"
  89 + @click="delwen(scope.row)">删除</div>
  90 + <div v-if="scope.row.reviewStatus == '3' || scope.row.reviewStatus == '1'"
  91 + class="tableBtn greens" @click="yulan(scope.row)">预览</div>
  92 + <!-- <div @click="addbuss(3,scope.row)" class="tableBtn greens">终止</div> -->
  93 + </template>
  94 + </el-table-column>
  95 + </el-table>
  96 + <div style="display: flex;justify-content: space-between;margin-top: 10px;">
  97 + <div style="font-size: 14px;">共 <span style="color: #3F9B6A;">{{ total }}</span> 条</div>
  98 + <el-pagination :current-page="currentPageList" :page-sizes="[10, 20, 50, 100]" :page-size="pageSize"
  99 + background small layout="prev, pager, next" :total="total" @size-change="handleSizeChange"
  100 + @current-change="handleCurrentChange" />
  101 + </div>
  102 + <!-- <div class="fenye">
97 <el-pagination :hide-on-single-page='flag' background small size="mini" :current-page="currentPageList" 103 <el-pagination :hide-on-single-page='flag' background small size="mini" :current-page="currentPageList"
98 :page-sizes="[10, 20, 50, 100]" layout="prev, pager, next,total" :total="total " 104 :page-sizes="[10, 20, 50, 100]" layout="prev, pager, next,total" :total="total "
99 @size-change="handleSizeChange" @current-change="handleCurrentChange" /> 105 @size-change="handleSizeChange" @current-change="handleCurrentChange" />
100 - </div>  
101 - </div>  
102 - <!-- 统计 -->  
103 - <div v-show="tongjiBox">  
104 - <div>  
105 - <div style="display: flex;">  
106 - <img :src="secondData.coverImage" alt=""  
107 - style="width:150px;height:100px;margin-right: 15px;border-radius:10px;" />  
108 - <div>  
109 - <div style="font-weight: 600;overflow: hidden; text-overflow: ellipsis; display: -webkit-box;-webkit-box-orient: vertical;word-break: break-all;">{{secondData.title}}</div>  
110 - <div style="padding:20px 0;">答卷数量:{{total1 || 0}}</div>  
111 - <div>起止时间:{{secondData.startDate}} 至 {{secondData.endDate}}</div>  
112 - </div>  
113 - </div>  
114 - <div>  
115 - <el-tabs v-model="xiangTabs">  
116 - <el-tab-pane label="作答情况" name="first">  
117 - <div style="width: 100%">  
118 - <div style="display: flex;align-items: center;margin-bottom: 20px;">  
119 - <el-date-picker style="width: 30%;margin-right: 20px;" v-model="tongjiMsg.plan_Time"  
120 - value-format="yyyy-MM-dd" type="daterange" range-separator="至" start-placeholder="开始日期"  
121 - end-placeholder="结束日期" align="right">  
122 - </el-date-picker>  
123 - <el-input v-model="tongjiMsg.userName" style="width:30%;margin-right: 20px;"  
124 - placeholder="搜索提交人"></el-input>  
125 - <el-button @click="tongjiSubmit" style="background-color: #3F9B6A;color: #fff">查询  
126 - </el-button>  
127 - <el-button @click="tongjiSubmitret" class="buttonHover"  
128 - style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置  
129 - </el-button>  
130 - </div>  
131 - <el-table :data="tongjiSshu"  
132 - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">  
133 - <el-table-column label="序号" min-width="100">  
134 - <template slot-scope="scope">  
135 - {{scope.$index + 1}}  
136 - </template>  
137 - </el-table-column>  
138 - <el-table-column label="提交人" min-width="150" prop="userName">  
139 - </el-table-column>  
140 - <el-table-column label="手机号" min-width="200" prop="contactNumber">  
141 - </el-table-column>  
142 - <el-table-column label="作答时长" prop="responseTime" min-width="150">  
143 - <template slot-scope="scope">  
144 - {{secondsToMinutesAndSeconds(scope.row.responseTime)}}  
145 - </template>  
146 - </el-table-column>  
147 - <el-table-column label="提交时间" prop="createTime" min-width="120">  
148 - </el-table-column>  
149 - <el-table-column label="操作" min-width="200">  
150 - <template slot-scope="scope">  
151 - <div class="tableBtn greens" @click="daxiang(scope.row)">详情</div>  
152 - </template>  
153 - </el-table-column>  
154 -  
155 - </el-table>  
156 - <div class="fenye">  
157 - <el-pagination :hide-on-single-page='flag1' background small size="mini"  
158 - :current-page="currentPage1" :page-sizes="[10, 20, 50, 100]" layout="prev, pager, next,total"  
159 - :total="total1" @current-change="handleCurrentChange1" />  
160 - </div>  
161 - </div>  
162 - </el-tab-pane>  
163 - <el-tab-pane label="数据统计" name="second">  
164 - <div style="padding:20px;">  
165 - <div style="margin-bottom: 20px;font-size: 18px;">数据概况</div>  
166 - <div  
167 - style="display: flex;padding:20px 30px;width: 100%;justify-content: space-around;border: 1px solid #dddfe5;">  
168 - <div style="text-align: center;">  
169 - <div style="margin-bottom:10px;">今日新增</div>  
170 - <div style="font-size:16px;">{{tongjiTu.todayNumber}}</div>  
171 - </div>  
172 - <div style="text-align: center;">  
173 - <div style="margin-bottom:10px;">答卷总数</div>  
174 - <div style="font-size:16px;">{{tongjiTu.countNumber}}</div>  
175 - </div>  
176 -  
177 - <div style="text-align: center;">  
178 - <div style="margin-bottom:10px;">平均答题时长</div>  
179 - <div style="font-size:16px;">{{secondsToMinutesAndSeconds(tongjiTu.averageDuration)}}</div>  
180 - </div>  
181 - </div>  
182 - <div style="margin: 20px 0;font-size: 18px;">题目统计</div>  
183 - <!-- {{tuwent}} -->  
184 - <dynamic-chart-table :title="item.title" v-show="item.type !='文本'" :tableData="tongjiTu" :tixingtype="item.type"  
185 - :index="index" v-for="(item,index) in tuwent" :ref="'chat'+index" />  
186 -  
187 -  
188 - <!-- <tiaoxing :title="item.tikuTitle" :tableData="tongjiTu.cereQuestionManagements" v-if="item.questionType=='多选'" v-for="(item,index) in tongjiTu.cereQuestionManagements"> -->  
189 -  
190 - </tiaoxing>  
191 - </div>  
192 - </el-tab-pane>  
193 -  
194 - </el-tabs>  
195 - </div>  
196 -  
197 - <div style="padding-top:20px;display:flex;justify-content: flex-end;">  
198 - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"  
199 - @click="tongjiBoxFan">返回</el-button>  
200 -  
201 -  
202 - </div>  
203 - </div>  
204 - <el-dialog :visible.sync="daxiangBox" custom-class="tongyong_css" style="padding: 0;" width="60%" center  
205 - :close-on-click-modal="false" append-to-body>  
206 - <div style="padding:20px;">  
207 - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">答卷详情</div>  
208 - <div style="display:flex;border-top: 1px solid #dddfe5;">  
209 - <div style="padding:20px 20px 0 0;border-right: 1px solid #dddfe5;width:25%">  
210 - <div style="margin-bottom:20px;">基本信息</div>  
211 - <div>  
212 - <div style="margin-bottom:15px;">提交人:<span style="color:#000">{{daxiangData.userName}}</span></div>  
213 - <div style="margin-bottom:15px;">手机号:<span style="color:#000">{{daxiangData.contactNumber}}</span>  
214 - </div>  
215 - <div style="margin-bottom:15px;">作答时长:<span  
216 - style="color:#000">{{secondsToMinutesAndSeconds(daxiangData.responseTime)}}</span> </div>  
217 - <div style="margin-bottom:15px;">提交时间:<span style="color:#000">{{daxiangData.createTime}}</span>  
218 - </div>  
219 - <div style="margin-bottom:15px;">填写条件:<span style="color:#000">{{secondData.fillingConditions}}</span>  
220 - </div>  
221 - <div style="margin-bottom:15px;">问卷分数:<span  
222 - style="color:#000">{{daxiangData.questionnaireScore}}</span> </div>  
223 - <div>用户意见:<span style="color:#000"></span>{{daxiangData.opinion}} </div>  
224 - </div>  
225 - </div>  
226 - <div style="padding:20px;">  
227 - <div style="margin-bottom:20px;">答卷详情</div>  
228 - <div>  
229 -  
230 -  
231 - <div class="question" v-for="(item,index) in daxiangData.question">  
232 - <p class="question-title"><span v-if="item.required=='必填'"  
233 - style="color: red;">*</span>{{index}}.<span style="">({{item.type}})</span>  
234 - {{item.title}}  
235 - </p>  
236 - <div>  
237 - <el-radio-group v-for="(val, idx) in item.options" v-if="item.type =='单选'" :key="idx"  
238 - style="display: flex;flex-direction: column;" v-model="item.choose">  
239 - <el-radio disabled :label="val.answer">{{val.answer}}</el-radio>  
240 -  
241 - </el-radio-group>  
242 -  
243 - <el-checkbox-group v-for="(val, idx) in item.options" v-if="item.type =='多选'" :key="idx"  
244 - style="display: flex;flex-direction: column;" v-model="val.disabled">  
245 -  
246 - <el-checkbox :label="val.answer" disabled>{{val.answer}}</el-checkbox>  
247 -  
248 - </el-checkbox-group>  
249 -  
250 - <div v-if="item.type =='文本'" style="display: flex;flex-direction: column;">  
251 - {{item.choose}}  
252 -  
253 - </div>  
254 - </div>  
255 - </div>  
256 -  
257 - </div>  
258 - </div>  
259 - </div>  
260 - </div>  
261 - </el-dialog>  
262 - </div>  
263 - </div>  
264 - <!-- 详情框 -->  
265 - <el-dialog :visible.sync="detbox" custom-class='tongyong_css' style="padding: 0;" width="65%" center  
266 - :close-on-click-modal="false" :show-close="false">  
267 - <div style="padding:20px;">  
268 - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">详情页</div>  
269 - <div>  
270 - <div style="padding: 10px 0 20px 0;">基本信息</div>  
271 - <el-descriptions class="margin-top" :column="3" border :labelStyle="labelStyle" :contentStyle="contentStyle">  
272 - <el-descriptions-item :span="2">  
273 - <template slot="label">  
274 - 问卷标题  
275 - </template>  
276 - {{secondData.title}}  
277 - </el-descriptions-item>  
278 - <el-descriptions-item>  
279 - <template slot="label">  
280 - 状态  
281 - </template>  
282 - {{secondData.reviewStatus == '1'?'待提交':secondData.reviewStatus == '2'?'待审核':secondData.reviewStatus == '3'?'审核通过':secondData.reviewStatus == '4'?'不通过':'已禁用'}}  
283 - </el-descriptions-item>  
284 -  
285 - <el-descriptions-item>  
286 - <template slot="label">  
287 - 开始时间  
288 - </template>  
289 - {{secondData.startDate}}  
290 - </el-descriptions-item>  
291 - <el-descriptions-item>  
292 - <template slot="label">  
293 - 结束时间  
294 - </template>  
295 - {{secondData.endDate}}  
296 - </el-descriptions-item>  
297 -  
298 - <el-descriptions-item>  
299 - <template slot="label">  
300 - 预计填写时长(分钟)  
301 - </template>  
302 - {{secondData.estimatedTime}}  
303 - </el-descriptions-item>  
304 - <el-descriptions-item>  
305 - <template slot="label">  
306 - 发布端口  
307 - </template>  
308 - {{secondData.publishPort}}  
309 - </el-descriptions-item>  
310 - <el-descriptions-item>  
311 - <template slot="label">  
312 - 问卷类型  
313 - </template>  
314 - {{secondData.questionnaireType}}  
315 - </el-descriptions-item>  
316 - <el-descriptions-item>  
317 - <template slot="label">  
318 - 填写条件  
319 - </template>  
320 - {{secondData.fillingConditions}}  
321 - </el-descriptions-item>  
322 - <el-descriptions-item> 106 + </div> -->
  107 + </div>
  108 + <!-- 统计 -->
  109 + <div v-if="tongjiBox">
  110 + <div>
  111 + <div style="display: flex;">
  112 + <img :src="this.$hostUrl + secondData.coverImage" alt=""
  113 + style="width:150px;height:100px;margin-right: 15px;border-radius:10px;">
  114 + <div>
  115 + <div
  116 + style="font-weight: 600;overflow: hidden; text-overflow: ellipsis; display: -webkit-box;-webkit-box-orient: vertical;word-break: break-all;">
  117 + {{ secondData.title }}
  118 + </div>
  119 + <div style="padding:20px 0;">答卷数量:{{ total1 || 0 }}</div>
  120 + <div>起止时间:{{ secondData.startDate }} 至 {{ secondData.endDate }}</div>
  121 + </div>
  122 + </div>
  123 + <div>
  124 + <el-tabs v-model="tongjiTabs" @tab-click="tongjiClick">
  125 + <el-tab-pane label="作答情况" name="qingK">
  126 + <div v-loading="loading" style="width: 100%">
  127 + <div style="display: flex;align-items: center;margin-bottom: 20px;">
  128 + <el-date-picker v-model="tongjiMsg.plan_Time"
  129 + style="width: 30%;margin-right: 20px;" value-format="yyyy-MM-dd"
  130 + type="daterange" range-separator="至" start-placeholder="开始日期"
  131 + end-placeholder="结束日期" align="right" />
  132 + <el-input v-model="tongjiMsg.userName" style="width:30%;margin-right: 20px;"
  133 + placeholder="搜索提交人" />
  134 + <el-button style="background-color: #3F9B6A;color: #fff"
  135 + @click="tongjiSubmit">查询
  136 + </el-button>
  137 + <el-button class="buttonHover"
  138 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  139 + @click="tongjiSubmitret">重置
  140 + </el-button>
  141 + </div>
  142 + <el-table
  143 + :data="tongjiSshu.slice((currentPage1 - 1) * pageSize, currentPage1 * pageSize)"
  144 + :header-cell-style="{ fontSize: '14px', color: '#0009', fontWeight: 'normal', backgroundColor: '#F2F3F5' }">
  145 + <el-table-column label="序号" min-width="100">
  146 + <template slot-scope="scope">
  147 + {{ scope.$index + 1 }}
  148 + </template>
  149 + </el-table-column>
  150 + <el-table-column label="提交人" min-width="150" prop="userName" />
  151 + <el-table-column label="手机号" min-width="200" prop="contactNumber" />
  152 + <el-table-column label="作答时长" prop="responseTime" min-width="150">
  153 + <template slot-scope="scope">
  154 + {{ secondsToMinutesAndSeconds(scope.row.responseTime) }}
  155 + </template>
  156 + </el-table-column>
  157 + <el-table-column label="提交时间" prop="createTime" min-width="120" />
  158 + <el-table-column label="操作" min-width="200">
  159 + <template slot-scope="scope">
  160 + <div class="tableBtn greens" @click="daxiang(scope.row)">详情</div>
  161 + </template>
  162 + </el-table-column>
  163 +
  164 + </el-table>
  165 + <div class="fenye">
  166 + <el-pagination :hide-on-single-page="flag1" background small size="mini"
  167 + :current-page="currentPage1" :page-sizes="[10, 20, 50, 100]"
  168 + layout="prev, pager, next,total" :total="total1"
  169 + @current-change="handleCurrentChange1" />
  170 + </div>
  171 + </div>
  172 + </el-tab-pane>
  173 + <el-tab-pane label="数据统计" name="shuju">
  174 + <div v-loading="shujuloading" style="padding:20px;">
  175 + <div style="margin-bottom: 20px;font-size: 18px;">数据概况
  176 + <span>截止{{ tongjiTu.statisticalTime }}</span>
  177 + </div>
  178 + <div
  179 + style="display: flex;padding:20px 30px;width: 100%;justify-content: space-around;border: 1px solid #dddfe5;">
  180 + <div style="text-align: center;">
  181 + <div style="margin-bottom:10px;">今日新增</div>
  182 + <div style="font-size:16px;">{{ tongjiTu.todayNumber || 0 }}</div>
  183 + </div>
  184 + <div style="text-align: center;">
  185 + <div style="margin-bottom:10px;">答卷总数</div>
  186 + <div style="font-size:16px;">{{ tongjiTu.countNumber || 0 }}</div>
  187 + </div>
  188 +
  189 + <div style="text-align: center;">
  190 + <div style="margin-bottom:10px;">平均答题时长</div>
  191 + <div style="font-size:16px;">
  192 + {{ secondsToMinutesAndSeconds(tongjiTu.averageDuration) }}
  193 + </div>
  194 + </div>
  195 + </div>
  196 + <div style="margin: 20px 0;font-size: 18px;">题目统计</div>
  197 + <!-- {{tuwent}} -->
  198 + <dynamic-chart-table v-for="(item, index) in tuwent" v-show="item.type != '文本'"
  199 + :ref="'chat' + index" :key="index" :title="item.title" :table-data="tongjiTu"
  200 + :tixingtype="item.type" :index="index" />
  201 +
  202 + <!-- <tiaoxing :title="item.tikuTitle" :tableData="tongjiTu.cereQuestionManagements" v-if="item.questionType=='多选'" v-for="(item,index) in tongjiTu.cereQuestionManagements"> -->
  203 +
  204 + </tiaoxing>
  205 + </div>
  206 + </el-tab-pane>
  207 +
  208 + </el-tabs>
  209 + </div>
  210 +
  211 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  212 + <el-button class="buttonHover"
  213 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  214 + @click="tongjiBoxFan">返回</el-button>
  215 +
  216 + </div>
  217 + </div>
  218 + <el-dialog :visible.sync="daxiangBox" custom-class="tongyong_css" style="padding: 0;" width="60%" center
  219 + :close-on-click-modal="false" append-to-body>
  220 + <div style="padding:20px;">
  221 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">答卷详情</div>
  222 + <div style="display:flex;border-top: 1px solid #dddfe5;">
  223 + <div style="padding:20px 20px 0 0;border-right: 1px solid #dddfe5;width:25%">
  224 + <div style="margin-bottom:20px;">基本信息</div>
  225 + <div>
  226 + <div style="margin-bottom:15px;">提交人:<span
  227 + style="color:#000">{{ daxiangData.userName }}</span></div>
  228 + <div style="margin-bottom:15px;">手机号:<span
  229 + style="color:#000">{{ daxiangData.contactNumber }}</span>
  230 + </div>
  231 + <div style="margin-bottom:15px;">作答时长:<span style="color:#000">{{
  232 + secondsToMinutesAndSeconds(daxiangData.responseTime) }}</span> </div>
  233 + <div style="margin-bottom:15px;">提交时间:<span
  234 + style="color:#000">{{ daxiangData.createTime }}</span>
  235 + </div>
  236 + <div style="margin-bottom:15px;">填写条件:<span style="color:#000">{{ secondData.fillingConditions
  237 + }}</span>
  238 + </div>
  239 + <div style="margin-bottom:15px;">问卷分数:<span style="color:#000">{{ daxiangData.questionnaireScore
  240 + }}</span>
  241 + </div>
  242 + <div>用户意见:<span style="color:#000" />{{ daxiangData.opinion }} </div>
  243 + </div>
  244 + </div>
  245 + <div style="padding:20px;">
  246 + <div style="margin-bottom:20px;">答卷详情</div>
  247 + <div>
  248 +
  249 + <div v-for="(item, index) in daxiangData.question" class="question">
  250 + <p class="question-title"><span v-if="item.required == '必填'"
  251 + style="color: red;">*</span>{{ index
  252 + }}.<span style="">({{ item.type }})</span>
  253 + {{ item.title }}
  254 + </p>
  255 + <div>
  256 + <el-radio-group v-for="(val, idx) in item.options" v-if="item.type == '单选'"
  257 + :key="idx" v-model="item.choose"
  258 + style="display: flex;flex-direction: column;">
  259 + <el-radio disabled :label="val.answer">{{ val.answer }}</el-radio>
  260 +
  261 + </el-radio-group>
  262 +
  263 + <el-checkbox-group v-for="(val, idx) in item.options"
  264 + v-if="item.type == '多选'" :key="idx" v-model="val.disabled"
  265 + style="display: flex;flex-direction: column;">
  266 +
  267 + <el-checkbox :label="val.answer" disabled>{{ val.answer }}</el-checkbox>
  268 +
  269 + </el-checkbox-group>
  270 +
  271 + <div v-if="item.type == '文本'" style="display: flex;flex-direction: column;">
  272 + {{ item.choose}}
  273 +
  274 + </div>
  275 + </div>
  276 + </div>
  277 +
  278 + </div>
  279 + </div>
  280 + </div>
  281 + </div>
  282 + </el-dialog>
  283 + </div>
  284 + </div>
  285 + <!-- 详情框 -->
  286 + <el-dialog :visible.sync="detbox" custom-class="tongyong_css" style="padding: 0;" width="65%" center
  287 + :close-on-click-modal="false" :show-close="false">
  288 + <div style="padding:20px;">
  289 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">详情页</div>
  290 + <div>
  291 + <div style="padding: 10px 0 20px 0;">基本信息</div>
  292 + <el-descriptions class="margin-top" :column="3" border :label-style="labelStyle"
  293 + :content-style="contentStyle">
  294 + <el-descriptions-item :span="2">
  295 + <template slot="label">
  296 + 问卷标题
  297 + </template>
  298 + {{ secondData.title }}
  299 + </el-descriptions-item>
  300 + <el-descriptions-item>
  301 + <template slot="label">
  302 + 状态
  303 + </template>
  304 + {{ secondData.reviewStatus == '1' ? '待提交' : secondData.reviewStatus == '2' ? '待审核' :
  305 + secondData.reviewStatus
  306 + ==
  307 + '3' ? '审核通过' : secondData.reviewStatus == '4' ?'不通过':'已禁用' }}
  308 + </el-descriptions-item>
  309 +
  310 + <el-descriptions-item>
  311 + <template slot="label">
  312 + 开始时间
  313 + </template>
  314 + {{ secondData.startDate }}
  315 + </el-descriptions-item>
  316 + <el-descriptions-item>
  317 + <template slot="label">
  318 + 结束时间
  319 + </template>
  320 + {{ secondData.endDate }}
  321 + </el-descriptions-item>
  322 +
  323 + <el-descriptions-item>
  324 + <template slot="label">
  325 + 预计填写时长(分钟)
  326 + </template>
  327 + {{ secondData.estimatedTime }}
  328 + </el-descriptions-item>
  329 + <el-descriptions-item>
  330 + <template slot="label">
  331 + 发布端口
  332 + </template>
  333 + {{ secondData.publishPort }}
  334 + </el-descriptions-item>
  335 + <el-descriptions-item>
  336 + <template slot="label">
  337 + 问卷类型
  338 + </template>
  339 + {{ secondData.questionnaireType }}
  340 + </el-descriptions-item>
  341 + <el-descriptions-item>
  342 + <template slot="label">
  343 + 填写条件
  344 + </template>
  345 + {{ secondData.fillingConditions }}
  346 + </el-descriptions-item>
  347 + <!-- <el-descriptions-item>
323 <template slot="label"> 348 <template slot="label">
324 问卷介绍 349 问卷介绍
325 </template> 350 </template>
326 {{secondData.remarks}} 351 {{secondData.remarks}}
327 - </el-descriptions-item>  
328 - </el-descriptions>  
329 - <div style="padding: 20px 0;">问卷封面</div>  
330 - <div>  
331 - <el-image  
332 - style="width: 200px; height: 200px"  
333 - :src="secondData.coverImage"  
334 - fit="fill"></el-image>  
335 - <!-- <img :src="secondData.coverImage" alt="" style="width:25%" /> -->  
336 - </div>  
337 - <div style="padding: 20px 0 ;" v-if="secondData.filler=='会员'">参与答卷奖励</div>  
338 - <el-descriptions class="margin-top" :column="3" border :labelStyle="labelStyle" :contentStyle="contentStyle"  
339 - v-if="secondData.filler=='会员'">  
340 - <el-descriptions-item>  
341 - <template slot="label">  
342 - 提交问卷后  
343 - </template>  
344 - {{secondData.rewardForParticipation}}  
345 - </el-descriptions-item>  
346 - <el-descriptions-item>  
347 - <template slot="label">  
348 - 奖励  
349 - </template>  
350 -  
351 - </el-descriptions-item>  
352 - </el-descriptions>  
353 - <div style="padding: 20px 0 ;">问卷题目</div>  
354 - <el-table :data="wenData"  
355 - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">  
356 - <el-table-column label="序号" min-width="100">  
357 - <template slot-scope="scope">  
358 - {{scope.$index +1}}  
359 - </template>  
360 - </el-table-column>  
361 - <el-table-column label="题目" min-width="300" prop="title" :show-overflow-tooltip="true">  
362 -  
363 - </el-table-column>  
364 - <el-table-column label="题型" min-width="80" prop="type">  
365 - </el-table-column>  
366 - <el-table-column label="是否必填" prop="required" min-width="80">  
367 -  
368 - </el-table-column>  
369 - <el-table-column label="选项" min-width="120">  
370 - <template slot-scope="scope">  
371 - <div v-for="(value, index) in scope.row.options " :key="index" v-if="scope.row.type !='文本'">  
372 - {{ index +1 }}:{{ value.answer }}  
373 - </div>  
374 - <div v-else>  
375 - -  
376 - </div>  
377 - </template>  
378 -  
379 - </el-table-column>  
380 -  
381 - </el-table>  
382 - <div style="padding: 20px 0 ;">系统信息</div>  
383 - <el-descriptions class="margin-top" :column="3" border :labelStyle="labelStyle" :contentStyle="contentStyle">  
384 - <el-descriptions-item>  
385 - <template slot="label">  
386 - 创建人  
387 - </template>  
388 - {{secondData.createUser}}  
389 - </el-descriptions-item>  
390 - <el-descriptions-item>  
391 - <template slot="label">  
392 - 创建时间  
393 - </template>  
394 - {{secondData.createTime}}  
395 - </el-descriptions-item>  
396 - <el-descriptions-item>  
397 - <template slot="label">  
398 - 更新时间  
399 - </template>  
400 - {{secondData.updateTime}}  
401 - </el-descriptions-item>  
402 - </el-descriptions>  
403 - <div style="padding: 20px 0 ;">审核信息</div>  
404 - <el-descriptions class="margin-top" :column="3" border :labelStyle="labelStyle" :contentStyle="contentStyle">  
405 - <el-descriptions-item>  
406 - <template slot="label">  
407 - 审核状态  
408 - </template>  
409 - {{secondData.reviewStatus == '1'?'待提交':secondData.reviewStatus == '2'?'待审核':secondData.reviewStatus == '3'?'审核通过':secondData.reviewStatus == '4'?'不通过':'已禁用'}}  
410 - </el-descriptions-item>  
411 - <el-descriptions-item>  
412 - <template slot="label">  
413 - 审核意见  
414 - </template>  
415 - <div>{{secondData.reviewComments}}</div>  
416 - </el-descriptions-item>  
417 -  
418 - </el-descriptions>  
419 - </div>  
420 -  
421 - <div style="padding-top:20px;display:flex;justify-content: flex-end;">  
422 - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"  
423 - @click="detbox = false ">返回</el-button>  
424 - </div>  
425 - </div>  
426 -  
427 - </el-dialog>  
428 -  
429 - <!-- 新增 -->  
430 - <el-dialog :visible.sync="ggXin" custom-class="tongyong_css" style="padding: 0;" width="60%" class="dialog_css_Xq"  
431 - center :close-on-click-modal="false" :show-close="false">  
432 - <div style="padding:20px;max-height: calc(100vh - 200px); 352 + </el-descriptions-item> -->
  353 + </el-descriptions>
  354 + <div style="padding: 20px 0;">问卷介绍</div>
  355 + <div v-html="secondData.remarks" />
  356 + <div style="padding: 20px 0;">问卷封面</div>
  357 + <div>
  358 + <el-image style="width: 280px; height: 200px" :src="this.$hostUrl + secondData.coverImage"
  359 + fit="fill" />
  360 + <!-- <img :src="secondData.coverImage" alt="" style="width:25%" /> -->
  361 + </div>
  362 + <div style="padding: 20px 0 ;">参与答卷奖励</div>
  363 + <el-descriptions class="margin-top" :column="3" border :label-style="labelStylejiang"
  364 + :content-style="contentStylejiang">
  365 + <el-descriptions-item>
  366 + <template slot="label">
  367 + 提交问卷后
  368 + </template>
  369 +
  370 + {{ secondData.rewardForParticipation!=''?'转盘抽奖':'不设置奖励'}}
  371 + </el-descriptions-item>
  372 + <el-descriptions-item>
  373 + <template slot="label">
  374 + 奖励
  375 + </template>
  376 + <div>
  377 + <span>{{ secondData.rewardForParticipation!=''?getStatusText(secondData.actStyle):'无'}}</span>
  378 + <span v-if="jiangli.id && jiangli.id!=''"
  379 + style="padding: 0 20px;color: #3F9B6A;cursor: pointer;" @click="actGo(1)">查看</span>
  380 + </div>
  381 + </el-descriptions-item>
  382 + </el-descriptions>
  383 + <div style="padding: 20px 0 ;">问卷题目</div>
  384 + <el-table :data="wenData"
  385 + :header-cell-style="{ fontSize: '14px', color: '#0009', fontWeight: 'normal', backgroundColor: '#F2F3F5' }">
  386 + <el-table-column label="序号" min-width="100">
  387 + <template slot-scope="scope">
  388 + {{ scope.$index + 1 }}
  389 + </template>
  390 + </el-table-column>
  391 + <el-table-column label="题目" min-width="300" prop="title" :show-overflow-tooltip="true" />
  392 + <el-table-column label="题型" min-width="80" prop="type" />
  393 + <el-table-column label="是否必填" prop="required" min-width="80" />
  394 + <el-table-column label="选项" min-width="120">
  395 + <template slot-scope="scope">
  396 + <div v-for="(value, index) in scope.row.options " v-if="scope.row.type != '文本'"
  397 + :key="index">
  398 + {{ index + 1 }}:{{ value.answer }}
  399 + </div>
  400 + <div v-else>
  401 + -
  402 + </div>
  403 + </template>
  404 +
  405 + </el-table-column>
  406 +
  407 + </el-table>
  408 + <div style="padding: 20px 0 ;">系统信息</div>
  409 + <el-descriptions class="margin-top" :column="3" border :label-style="labelStyle"
  410 + :content-style="contentStyle">
  411 + <el-descriptions-item>
  412 + <template slot="label">
  413 + 创建人
  414 + </template>
  415 + {{ secondData.createUser }}
  416 + </el-descriptions-item>
  417 + <el-descriptions-item>
  418 + <template slot="label">
  419 + 创建时间
  420 + </template>
  421 + {{ secondData.createTime }}
  422 + </el-descriptions-item>
  423 + <el-descriptions-item>
  424 + <template slot="label">
  425 + 更新时间
  426 + </template>
  427 + {{ secondData.updateTime }}
  428 + </el-descriptions-item>
  429 + </el-descriptions>
  430 + <div style="padding: 20px 0 ;">审核信息</div>
  431 + <el-descriptions class="margin-top" :column="3" border :label-style="labelStyle"
  432 + :content-style="contentStyle">
  433 + <el-descriptions-item>
  434 + <template slot="label">
  435 + 审核状态
  436 + </template>
  437 + {{ secondData.reviewStatus == '1' ? '待提交' : secondData.reviewStatus == '2' ? '待审核' :
  438 + secondData.reviewStatus
  439 + ==
  440 + '3' ? '审核通过' : secondData.reviewStatus == '4' ?'不通过':'已禁用' }}
  441 + </el-descriptions-item>
  442 + <el-descriptions-item>
  443 + <template slot="label">
  444 + 审核意见
  445 + </template>
  446 + <div>{{ secondData.reviewComments }}</div>
  447 + </el-descriptions-item>
  448 +
  449 + </el-descriptions>
  450 + </div>
  451 +
  452 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  453 + <el-button class="buttonHover"
  454 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  455 + @click="detbox = false">返回</el-button>
  456 + </div>
  457 + </div>
  458 +
  459 + </el-dialog>
  460 +
  461 + <!-- 新增 -->
  462 + <el-dialog :visible.sync="ggXin" custom-class="tongyong_css" style="padding: 0;" width="60%"
  463 + class="dialog_css_Xq" center :close-on-click-modal="false" :show-close="false">
  464 + <div style="padding:20px;max-height: calc(100vh - 200px);
433 overflow-y: auto;"> 465 overflow-y: auto;">
434 - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">新建问卷</div>  
435 - <div>  
436 - <el-tabs v-model="xiangTabs">  
437 - <el-tab-pane label="基本信息" name="first">  
438 - <div style="width: 100%">  
439 - <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">  
440 - <div  
441 - style="padding:10px 20px;border-bottom:1px solid #DCDFE6;display:flex;justify-content: space-between;">  
442 - <div>基本信息</div>  
443 - </div>  
444 -  
445 - <el-form :model="formInline" :rules="rules" ref="inlineform" label-width="155px"  
446 - style="padding:20px;">  
447 - <el-form-item label="问卷标题" prop="title">  
448 - <el-input v-model="formInline.title" maxlength="50"></el-input>  
449 - </el-form-item>  
450 - <el-form-item label="问卷起止时间" prop="">  
451 - <el-date-picker style="width: 100%;" v-model="Xin_Time" value-format="yyyy-MM-dd" type="daterange"  
452 - range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right"  
453 - >  
454 - :picker-options="pickerOptions">  
455 - </el-date-picker>  
456 - </el-form-item>  
457 - <el-form-item label="发布端口" prop="publishPort">  
458 - <el-select v-model="formInline.publishPort" placeholder="请选择">  
459 - <el-option label="用户端" value="用户端" />  
460 - <el-option label="商家端" value="商家端" />  
461 - <el-option label="H5端" value="H5端" />  
462 - </el-select>  
463 - </el-form-item>  
464 - <el-form-item label="问卷类型" prop="questionnaireType">  
465 - <el-select v-model="formInline.questionnaireType" placeholder="请选择">  
466 - <el-option label="物业问卷" value="物业问卷" />  
467 - <el-option label="招商问卷" value="招商问卷" />  
468 - <el-option label="满意度问卷" value="满意度问卷" />  
469 - <el-option label="社会调查问卷" value="社会调查问卷" />  
470 - </el-select>  
471 - </el-form-item>  
472 - <el-form-item label="预计填写时长(分钟)" prop="estimatedTime">  
473 - <el-input v-model.number="formInline.estimatedTime" maxlength="10"></el-input>  
474 - </el-form-item>  
475 -  
476 - <el-form-item label="问卷介绍" prop="remarks">  
477 - <el-input v-model="formInline.remarks" maxlength="255"></el-input>  
478 - </el-form-item>  
479 - <el-form-item label="填写人" prop="filler">  
480 - <el-select v-model="formInline.filler" placeholder="请选择">  
481 - <!-- <el-option label="会员" value="会员" /> -->  
482 - <el-option label="公众" value="公众" />  
483 - </el-select>  
484 - </el-form-item>  
485 - <el-form-item label="填写条件" prop="fillingConditions">  
486 - <!-- <el-select v-model="formInline.fillingConditions" placeholder="请选择">  
487 - <el-option label="可重复填写" value="可重复填写" />  
488 -  
489 - </el-select> -->  
490 - <el-radio-group v-model="formInline.fillingConditions" style="margin-top:13px;">  
491 - <el-radio label="可重复填写">可重复填写</el-radio>  
492 -  
493 - </el-radio-group>  
494 - </el-form-item>  
495 - <el-form-item label="创建人" prop="createUser">  
496 - <el-input v-model="formInline.createUser" placeholder="请输入" maxlength="50"></el-input>  
497 - </el-select>  
498 - </el-form-item>  
499 - <el-form-item label="问卷封面" prop="coverImage">  
500 - <div style="position: relative;">  
501 - <upimg v-model="formInline.coverImage" :limit="1" :fileSize="1" :isShowTip="true"></upimg>  
502 - <!-- <div style="position: absolute;left:160px;height:80px;">()</div> -->  
503 - </div>  
504 - </el-form-item>  
505 - <el-form-item label="姓名" prop="needName">  
506 - <el-radio-group v-model="formInline.needName" style="margin-top:13px;">  
507 - <el-radio label="必填">必填</el-radio>  
508 - <el-radio label="不填">不填</el-radio>  
509 - </el-radio-group>  
510 - </el-form-item>  
511 - <el-form-item label="电话" prop="needPhone">  
512 - <el-radio-group v-model="formInline.needPhone" style="margin-top:13px;">  
513 - <el-radio label="必填">必填</el-radio>  
514 - <el-radio label="不填">不填</el-radio>  
515 - </el-radio-group>  
516 - </el-form-item>  
517 - <el-form-item label="性别" prop="needGender">  
518 - <el-radio-group v-model="formInline.needGender" style="margin-top:13px;">  
519 - <el-radio label="必填">必填</el-radio>  
520 - <el-radio label="不填">不填</el-radio>  
521 - </el-radio-group>  
522 - </el-form-item>  
523 -  
524 - <el-form-item label="意见" prop="needOpinion">  
525 - <el-radio-group v-model="formInline.needOpinion" style="margin-top:13px;">  
526 - <el-radio label="必填">必填</el-radio>  
527 - <el-radio label="不填">不填</el-radio>  
528 - </el-radio-group>  
529 - </el-form-item>  
530 - </el-form>  
531 - </div>  
532 - <div v-if="formInline.filler=='会员'">  
533 - <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">  
534 - <div  
535 - style="padding:10px 20px;border-bottom:1px solid #DCDFE6;display:flex;justify-content: space-between;">  
536 - <div>参与答卷奖励</div>  
537 - </div>  
538 - <el-form ref="form" :model="formInline" label-width="140px" style="padding:20px;">  
539 - <el-radio-group v-model="formInline.rewardForParticipation" @change="radioClick">  
540 - <el-radio label="不设置奖励" value="不设置奖励">不设置奖励</el-radio>  
541 - <el-radio label="奖励积分" value="奖励积分">奖励积分</el-radio>  
542 - <el-radio label="转盘抽奖" value="转盘抽奖">转盘抽奖</el-radio>  
543 - <el-radio label="优惠券" value="优惠券">优惠券</el-radio>  
544 - </el-radio-group>  
545 - </el-form>  
546 - </div>  
547 - <div v-if="formInline.rewardForParticipation === '奖励积分'" style="padding: 0 0 20px 20px;">  
548 - <div>  
549 - 奖励 <el-input v-model="jifen" style="width:50px;"></el-input>积分  
550 - </div>  
551 - </div>  
552 - <div v-if="formInline.rewardForParticipation === '转盘抽奖'" style="padding: 0 0 20px 20px;">  
553 - <div>  
554 - 奖励 <el-input v-model="choujiang" style="width:50px;"></el-input>次  
555 - </div>  
556 - </div>  
557 - <div v-if="formInline.rewardForParticipation === '优惠券'" style="padding: 0 0 20px 20px;">  
558 - <div>  
559 - <el-select v-model="yhq" placeholder="请选择" style="width:20%">  
560 - <el-option :label="item" :value="item" v-for="item in yhqSel" />  
561 - </el-select>  
562 - </div>  
563 - </div>  
564 - </div>  
565 - </div>  
566 - </el-tab-pane>  
567 - <el-tab-pane label="问卷内容" name="second">  
568 - <div style="width: 100%">  
569 - <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">  
570 - <div  
571 - style="padding:10px 20px;border-bottom:1px solid #DCDFE6;display:flex;justify-content: space-between;">  
572 - <div>问卷内容</div>  
573 - <div>  
574 - <div class="greens tableBtn" @click="addTikuShow">新增</div>  
575 - <div class="greens tableBtn" @click="selTiku">从题库中选择</div>  
576 - </div>  
577 -  
578 - </div>  
579 -  
580 - <div style="padding:20px;">  
581 - <el-table :data="wenConstData"  
582 - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"  
583 - :height="tableHeight" style="overflow-y: auto;">  
584 - <el-table-column label="序号" min-width="100">  
585 - <template slot-scope="scope">  
586 - {{scope.$index + 1}}  
587 - </template>  
588 - </el-table-column>  
589 - <el-table-column label="题目" min-width="300" prop="tikuTitle" show-overflow-tooltip>  
590 - </el-table-column>  
591 - <el-table-column label="题型" min-width="150" prop="questionType">  
592 - </el-table-column>  
593 - <el-table-column label="是否必填" prop="isRequired" min-width="150">  
594 - </el-table-column>  
595 - <el-table-column label="操作" min-width="200">  
596 - <template slot-scope="scope">  
597 - <!-- <div class="tableBtn greens">编辑</div> -->  
598 - <div class="tableBtn greens" @click="delWenCon('1',scope.$index)">删除</div>  
599 - </template>  
600 - </el-table-column>  
601 - </el-table>  
602 - </div>  
603 - </div>  
604 - </div>  
605 - </el-tab-pane>  
606 -  
607 - </el-tabs>  
608 - </div>  
609 -  
610 - <!-- <span slot="footer" class="dialog-footer"> 466 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">新建问卷</div>
  467 + <div>
  468 + <el-tabs v-model="xiangTabs">
  469 + <el-tab-pane label="基本信息" name="first">
  470 + <div style="width: 100%">
  471 + <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">
  472 + <div
  473 + style="padding:10px 20px;border-bottom:1px solid #DCDFE6;display:flex;justify-content: space-between;">
  474 + <div>基本信息</div>
  475 + </div>
  476 +
  477 + <el-form ref="inlineform" :model="formInline" :rules="rules" label-width="155px"
  478 + style="padding:20px;">
  479 + <el-form-item label="问卷标题" prop="title">
  480 + <el-input v-model="formInline.title" maxlength="50" />
  481 + </el-form-item>
  482 + <el-form-item label="问卷起止时间" prop="">
  483 + <el-date-picker v-model="Xin_Time" style="width: 100%;"
  484 + value-format="yyyy-MM-dd" type="daterange" range-separator="至"
  485 + start-placeholder="开始日期" end-placeholder="结束日期" align="right">
  486 + :picker-options="pickerOptions">
  487 + </el-date-picker>
  488 + </el-form-item>
  489 + <el-form-item label="发布端口" prop="publishPort">
  490 + <el-select v-model="formInline.publishPort" placeholder="请选择">
  491 + <el-option label="用户端" value="用户端" />
  492 + <el-option label="商家端" value="商家端" />
  493 + <el-option label="H5端" value="H5端" />
  494 + </el-select>
  495 + </el-form-item>
  496 + <el-form-item label="问卷类型" prop="questionnaireType">
  497 + <el-select v-model="formInline.questionnaireType" placeholder="请选择">
  498 + <el-option label="物业问卷" value="物业问卷" />
  499 + <el-option label="招商问卷" value="招商问卷" />
  500 + <el-option label="满意度问卷" value="满意度问卷" />
  501 + <el-option label="社会调查问卷" value="社会调查问卷" />
  502 + </el-select>
  503 + </el-form-item>
  504 + <el-form-item label="预计填写时长(分钟)" prop="estimatedTime">
  505 + <el-input v-model.number="formInline.estimatedTime" maxlength="10" />
  506 + </el-form-item>
  507 +
  508 + <el-form-item label="问卷介绍" prop="remarks">
  509 + <!-- <el-input v-model="formInline.remarks" maxlength="255"></el-input> -->
  510 + <wang-editor ref="editor" v-model="formInline.remarks" :height="200" />
  511 + </el-form-item>
  512 + <el-form-item label="填写人" prop="filler">
  513 + <el-select v-model="formInline.filler" placeholder="请选择">
  514 + <!-- <el-option label="会员" value="会员" /> -->
  515 + <el-option label="公众" value="公众" />
  516 + </el-select>
  517 + </el-form-item>
  518 + <el-form-item label="填写条件" prop="fillingConditions">
  519 + <el-radio-group v-model="formInline.fillingConditions"
  520 + style="margin-top:13px;">
  521 + <el-radio label="可重复填写">可重复填写</el-radio>
  522 + <el-radio label="不可重复填写">不可重复填写</el-radio>
  523 + </el-radio-group>
  524 + </el-form-item>
  525 + <el-form-item label="创建人" prop="createUser">
  526 + <el-input v-model="formInline.createUser" placeholder="请输入"
  527 + maxlength="50" />
  528 + </el-select>
  529 + </el-form-item>
  530 + <el-form-item label="问卷封面" prop="coverImage">
  531 +
  532 + <div style="position: relative;">
  533 +
  534 + <upimg :limit="1" :file-size="1" :is-show-tip="true"
  535 + :value="formInline.coverImage" @input="e => input(e, '1')" />
  536 + <!-- <div style="position: absolute;left:160px;height:80px;">()</div> -->
  537 + <!-- @input="e=>input(e,'ing')" @input="input" -->
  538 + </div>
  539 + </el-form-item>
  540 + <el-form-item label="姓名" prop="needName">
  541 + <el-radio-group v-model="formInline.needName" style="margin-top:13px;">
  542 + <el-radio label="必填">必填</el-radio>
  543 + <el-radio label="不填">不填</el-radio>
  544 + </el-radio-group>
  545 + </el-form-item>
  546 + <el-form-item label="电话" prop="needPhone">
  547 + <el-radio-group v-model="formInline.needPhone" style="margin-top:13px;">
  548 + <el-radio label="必填">必填</el-radio>
  549 + <el-radio label="不填">不填</el-radio>
  550 + </el-radio-group>
  551 + </el-form-item>
  552 + <el-form-item label="性别" prop="needGender">
  553 + <el-radio-group v-model="formInline.needGender" style="margin-top:13px;">
  554 + <el-radio label="必填">必填</el-radio>
  555 + <el-radio label="不填">不填</el-radio>
  556 + </el-radio-group>
  557 + </el-form-item>
  558 +
  559 + <el-form-item label="意见" prop="needOpinion">
  560 + <el-radio-group v-model="formInline.needOpinion" style="margin-top:13px;">
  561 + <el-radio label="必填">必填</el-radio>
  562 + <el-radio label="不填">不填</el-radio>
  563 + </el-radio-group>
  564 + </el-form-item>
  565 + </el-form>
  566 + </div>
  567 + <div>
  568 + <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">
  569 + <div
  570 + style="padding:10px 20px;border-bottom:1px solid #DCDFE6;display:flex;justify-content: space-between;">
  571 + <div>参与答卷奖励</div>
  572 + </div>
  573 + <el-form ref="form" :model="formInline" label-width="140px"
  574 + style="padding:20px;">
  575 + <el-radio-group v-model="radioreward" @change="radioClick">
  576 + <el-radio label="不设置奖励" value="不设置奖励">不设置奖励</el-radio>
  577 + <!-- <el-radio label="奖励积分" value="奖励积分">奖励积分</el-radio> -->
  578 + <el-radio label="转盘抽奖" value="转盘抽奖">转盘抽奖</el-radio>
  579 + <!-- <el-radio label="优惠券" value="优惠券">优惠券</el-radio> -->
  580 + </el-radio-group>
  581 + </el-form>
  582 + <!-- <div v-if="formInline.rewardForParticipation === '奖励积分'"
  583 + style="padding: 0 0 20px 20px;">
  584 + <div>
  585 + 奖励 <el-input v-model="jifen" style="width:50px;" />积分
  586 + </div>
  587 + </div> -->
  588 + <div v-if="radioreward === '转盘抽奖'" style="padding: 0 0 20px 20px;">
  589 + <div v-if="jiangli.id && jiangli.id!=''" style="padding: 10px 0;">
  590 + <span>{{jiangli.actName}}</span>
  591 + <span style="padding: 0 20px;color: #3F9B6A;cursor: pointer;"
  592 + @click="actGo(1)">查看</span>
  593 + <span style="color: #3F9B6A;cursor: pointer;"
  594 + @click="actGo(2)">编辑</span>
  595 + </div>
  596 + <div v-else>
  597 + <el-button style="color: #fff;background-color: #3F9B6A;"
  598 + @click="actGo(0)">创建活动</el-button>
  599 + </div>
  600 + </div>
  601 + <!-- <div v-if="formInline.rewardForParticipation === '优惠券'"
  602 + style="padding: 0 0 20px 20px;">
  603 + <div>
  604 + <el-select v-model="yhq" placeholder="请选择" style="width:20%">
  605 + <el-option v-for="item in yhqSel" :label="item" :value="item" />
  606 + </el-select>
  607 + </div>
  608 + </div> -->
  609 + </div>
  610 +
  611 + </div>
  612 + </div>
  613 +
  614 + </el-tab-pane>
  615 + <el-tab-pane label="问卷内容" name="second">
  616 + <div style="width: 100%">
  617 + <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">
  618 + <div
  619 + style="padding:10px 20px;border-bottom:1px solid #DCDFE6;display:flex;justify-content: space-between;">
  620 + <div>问卷内容</div>
  621 + <div>
  622 + <div class="greens tableBtn" @click="addTikuShow">新增</div>
  623 + <div class="greens tableBtn" @click="selTiku">从题库中选择</div>
  624 + </div>
  625 +
  626 + </div>
  627 +
  628 + <div style="padding:20px;">
  629 + <el-table :data="wenConstData"
  630 + :header-cell-style="{ fontSize: '14px', color: '#0009', fontWeight: 'normal', backgroundColor: '#F2F3F5' }"
  631 + class="xddTable">
  632 + <el-table-column label="序号" min-width="100">
  633 + <template slot-scope="scope">
  634 + {{ scope.$index + 1 }}
  635 + </template>
  636 + </el-table-column>
  637 + <el-table-column label="题目" min-width="300" prop="tikuTitle"
  638 + show-overflow-tooltip />
  639 + <el-table-column label="题型" min-width="80" prop="questionType" />
  640 + <el-table-column label="是否必填" prop="isRequired" min-width="120" />
  641 + <el-table-column label="" min-width="120">
  642 + <template #default="scope">
  643 + <span style="cursor: pointer;margin-right: 5px; color: #3F9B6A;"
  644 + @click="moveUp(scope.$index)" v-if="scope.$index != 0">↑</span>
  645 + <span style="cursor: pointer; color: #3F9B6A;"
  646 + @click="moveDown(scope.$index)"
  647 + v-if="scope.$index != (wenConstData.length - 1)">↓</span>
  648 + </template>
  649 + </el-table-column>
  650 + <el-table-column label="操作" min-width="80">
  651 + <template slot-scope="scope">
  652 + <!-- <div class="tableBtn greens">编辑</div> -->
  653 + <div class="tableBtn greens" @click="delWenCon('1', scope.$index)">
  654 + 删除</div>
  655 + </template>
  656 + </el-table-column>
  657 + </el-table>
  658 + </div>
  659 + </div>
  660 + </div>
  661 + </el-tab-pane>
  662 +
  663 + </el-tabs>
  664 + </div>
  665 +
  666 + <!-- <span slot="footer" class="dialog-footer">
611 <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" 667 <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
612 @click="closeFn(1)">返回</el-button> 668 @click="closeFn(1)">返回</el-button>
613 <el-button @click="addCheck(2)" style="background-color: #3F9B6A;color: #fff">确认</el-button> 669 <el-button @click="addCheck(2)" style="background-color: #3F9B6A;color: #fff">确认</el-button>
614 670
615 </span> --> 671 </span> -->
616 - </div>  
617 - <el-dialog :visible.sync="tikuBox" custom-class="tongyong_css" style="padding: 0;" width="60%" center  
618 - :close-on-click-modal="false" append-to-body>  
619 - <div style="padding:20px;">  
620 - <div style="padding:20px;">  
621 - <div style="display: flex;justify-content: space-between;margin-bottom: 20px;">  
622 -  
623 - <div>  
624 - 从题库中选择  
625 - <el-select v-model="tikuNie" style="width:28%;margin-right: 15px;" @change="tikuchange">  
626 - <el-option label="用户端题库" value="用户端题库" />  
627 - <el-option label="商户端题库" value="商户端题库" />  
628 - <el-option label="公共端题库" value="公共端题库" />  
629 - </el-select>  
630 - <el-select v-model="danxuan" style="width:28%;margin-right: 15px;" placeholder="请选择题型">  
631 - <el-option label="单选" value="单选" />  
632 - <el-option label="多选" value="多选" />  
633 - <el-option label="文本" value="文本" />  
634 - </el-select>  
635 - <!-- <el-select v-model="manyi" style="width:20%;" placeholder="请选择题型"> 672 + </div>
  673 + <el-dialog :visible.sync="tikuBox" custom-class="tongyong_css" style="padding: 0;" width="60%" center
  674 + :close-on-click-modal="false" append-to-body @close="tikuquxiao(1)">
  675 + <div style="padding:20px;">
  676 + <div style="padding:20px;">
  677 + <div style="display: flex;justify-content: space-between;margin-bottom: 20px;">
  678 +
  679 + <div>
  680 + 从题库中选择
  681 + <el-select v-model="tikuNie" style="width:28%;margin-right: 15px;" @change="tikuchange">
  682 + <el-option label="用户端题库" value="用户端题库" />
  683 + <el-option label="商户端题库" value="商户端题库" />
  684 + <el-option label="公共端题库" value="公共端题库" />
  685 + </el-select>
  686 + <el-select v-model="danxuan" style="width:28%;margin-right: 15px;" placeholder="请选择题型">
  687 + <el-option label="单选" value="单选" />
  688 + <el-option label="多选" value="多选" />
  689 + <el-option label="文本" value="文本" />
  690 + </el-select>
  691 + <!-- <el-select v-model="manyi" style="width:20%;" placeholder="请选择题型">
636 <el-option label="物业满意度" value="物业满意度" /> 692 <el-option label="物业满意度" value="物业满意度" />
637 </el-select> --> 693 </el-select> -->
638 - </div>  
639 - <div style="width: 68%;">  
640 - <el-input v-model="timuMsg" style="width:50%;margin-right: 15px;" placeholder="请输入题目"></el-input>  
641 - <el-button @click="tikusous" style="background-color: #3F9B6A;color: #fff" placeholder="请输入题目">查询  
642 - </el-button>  
643 - <el-button @click="tikuclose" class="buttonHover"  
644 - style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置  
645 - </el-button>  
646 - </div>  
647 - </div>  
648 -  
649 - <div style="padding:20px;overflow-y: auto;height:495px;" v-infinite-scroll="load">  
650 -  
651 - <el-table :data="tikuziyuan"  
652 - ref="ziyuanData"  
653 - :row-key="row=>row.id"  
654 - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"  
655 - @selection-change="handleSelectionChange" tooltip-effect="dark"  
656 - @toggleRowSelection="hangSelchange" >  
657 - <el-table-column type="selection" width="55" :reserve-selection="true">  
658 - </el-table-column>  
659 - <el-table-column label="序号" min-width="100">  
660 - <template slot-scope="scope">  
661 - {{scope.$index +1 }}  
662 - </template>  
663 - </el-table-column>  
664 - <el-table-column label="题目" min-width="400" prop="tikuTitle">  
665 - </el-table-column>  
666 - <el-table-column label="题型" min-width="80" prop="questionType">  
667 - </el-table-column>  
668 - <el-table-column label="操作" min-width="120">  
669 - <template slot-scope="scope">  
670 - <div class="tableBtn greens" @click="gotimuxiang(scope.row)">详情</div>  
671 - </template>  
672 - </el-table-column>  
673 - </el-table>  
674 - </div>  
675 - </div>  
676 - <div style="padding-top:20px;display:flex;justify-content: flex-end;">  
677 - <el-button style="background-color: #3F9B6A;color: #fff" @click="tiSelQue(1)">确定</el-button>  
678 - </div>  
679 - </div>  
680 - <el-dialog :visible.sync="timuXiang" custom-class='tongyong_css' style="padding: 0;" width="50%" center  
681 - :close-on-click-modal="false" append-to-body>  
682 - <div style="padding:20px;">  
683 - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">详情页</div>  
684 - <div>  
685 - <el-descriptions class="margin-top" :column="1" border :labelStyle="labelStyle"  
686 - :contentStyle="contentStyle">  
687 - <el-descriptions-item>  
688 - <template slot="label">  
689 - 题目  
690 - </template>  
691 - {{timuData.tikuTitle}}  
692 - </el-descriptions-item>  
693 - <el-descriptions-item>  
694 - <template slot="label">  
695 - 题型  
696 - </template>  
697 - {{timuData.questionType}}  
698 - </el-descriptions-item>  
699 - <el-descriptions-item>  
700 - <template slot="label">  
701 - 隶属题库  
702 - </template>  
703 - {{timuData.questionBank}}  
704 - </el-descriptions-item>  
705 - </el-descriptions>  
706 - <el-descriptions class="margin-top" :column="1" border :labelStyle="labelStyle"  
707 - :contentStyle="contentStyle">  
708 - <el-descriptions-item>  
709 - <template slot="label">  
710 - 默认是否必填  
711 - </template>  
712 - {{timuData.isRequired}}  
713 - </el-descriptions-item>  
714 - <el-descriptions-item>  
715 - <template slot="label">  
716 - 选项  
717 - </template>  
718 - <div v-for="(value, key) in timuData.optionSettings" :key="key">  
719 - {{ key }}:{{ value }}  
720 - </div>  
721 - </el-descriptions-item>  
722 -  
723 - </el-descriptions>  
724 - </div>  
725 - <div style="padding-top:20px;display:flex;justify-content: flex-end;">  
726 - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"  
727 - @click="timuXiang = false">返回</el-button>  
728 - </div>  
729 - </div>  
730 -  
731 - </el-dialog>  
732 - </el-dialog>  
733 - <el-dialog :visible.sync="tikuAdd" custom-class="tongyong_css" style="padding: 0;" width="60%" center  
734 - :close-on-click-modal="false" append-to-body @close="quxiao(1)">  
735 - <div style="padding:20px;">  
736 - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">  
737 - 新增题目  
738 - </div>  
739 - <div style="padding:20px;">  
740 - <el-form ref="tixform" :model="zhong" :rules="tixrules" label-width="140px">  
741 - <el-form-item label="题目" prop="tikuTitle">  
742 - <el-input v-model="zhong.tikuTitle" maxlength="100"></el-input>  
743 - </el-form-item>  
744 - <el-form-item label="题型" prop="questionType">  
745 - <el-select v-model="zhong.questionType" placeholder="请选择">  
746 - <el-option label="单选" value="单选" />  
747 - <el-option label="多选" value="多选" />  
748 - <el-option label="文本" value="文本" />  
749 - </el-select>  
750 - </el-form-item>  
751 - <el-form-item label="隶属题库" prop="questionBank">  
752 - <el-select v-model="zhong.questionBank" placeholder="请选择">  
753 - <el-option label="用户端题库" value="用户端题库" />  
754 - <el-option label="商户端题库" value="商户端题库" />  
755 - <el-option label="公共端题库" value="公共端题库" />  
756 - </el-select>  
757 - </el-form-item>  
758 - <el-form-item label="是否必填" prop="isRequired">  
759 - <!-- <el-select v-model="zhong.isRequired" placeholder="请选择"> 694 + </div>
  695 + <div style="width: 68%;">
  696 + <el-input v-model="timuMsg" style="width:50%;margin-right: 15px;" placeholder="请输入题目" />
  697 + <el-button style="background-color: #3F9B6A;color: #fff" placeholder="请输入题目"
  698 + @click="tikusous">查询
  699 + </el-button>
  700 + <el-button class="buttonHover"
  701 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  702 + @click="tikuclose">重置
  703 + </el-button>
  704 + </div>
  705 + </div>
  706 + <!-- v-infinite-scroll="load" -->
  707 + <div style="padding:20px;overflow-y: auto;height:495px;">
  708 +
  709 + <el-table ref="ziyuanData"
  710 + :data="tikuziyuan.slice((currentPageListTi - 1) * pageSizeTi, currentPageListTi * pageSizeTi)"
  711 + :row-key="row => row.id"
  712 + :header-cell-style="{ fontSize: '14px', color: '#0009', fontWeight: 'normal', backgroundColor: '#F2F3F5' }"
  713 + tooltip-effect="dark" @selection-change="handleSelectionChange"
  714 + @toggleRowSelection="hangSelchange">
  715 + <el-table-column type="selection" width="55" :reserve-selection="true" />
  716 + <el-table-column label="序号" min-width="100">
  717 + <template slot-scope="scope">
  718 + {{ scope.$index + 1 }}
  719 + </template>
  720 + </el-table-column>
  721 + <el-table-column label="题目" min-width="400" prop="tikuTitle" />
  722 + <el-table-column label="题型" min-width="80" prop="questionType" />
  723 + <el-table-column label="操作" min-width="120">
  724 + <template slot-scope="scope">
  725 + <div class="tableBtn greens" @click="gotimuxiang(scope.row)">详情</div>
  726 + </template>
  727 + </el-table-column>
  728 +
  729 + </el-table>
  730 + <div style="display: flex;justify-content: space-between;margin-top: 10px;">
  731 + <div style="font-size: 14px;">共 <span style="color: #3F9B6A;">{{ totalTi }}</span> 条
  732 + </div>
  733 + <el-pagination :current-page="currentPageListTi" :page-sizes="[10, 20, 50, 100]"
  734 + :page-size="pageSizeTi" background small layout="prev, pager, next" :total="totalTi"
  735 + @size-change="handleSizeChangeTi" @current-change="handleCurrentChangeTi" />
  736 + </div>
  737 + </div>
  738 + </div>
  739 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  740 + <el-button style="background-color: #3F9B6A;color: #fff" @click="tiSelQue(1)">确定</el-button>
  741 + </div>
  742 + </div>
  743 + <el-dialog :visible.sync="timuXiang" custom-class="tongyong_css" style="padding: 0;" width="50%" center
  744 + :close-on-click-modal="false" append-to-body>
  745 + <div style="padding:20px;">
  746 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">详情页</div>
  747 + <div>
  748 + <el-descriptions class="margin-top" :column="1" border :label-style="labelStyle"
  749 + :content-style="contentStyle">
  750 + <el-descriptions-item>
  751 + <template slot="label">
  752 + 题目
  753 + </template>
  754 + {{ timuData.tikuTitle }}
  755 + </el-descriptions-item>
  756 + <el-descriptions-item>
  757 + <template slot="label">
  758 + 题型
  759 + </template>
  760 + {{ timuData.questionType }}
  761 + </el-descriptions-item>
  762 + <el-descriptions-item>
  763 + <template slot="label">
  764 + 隶属题库
  765 + </template>
  766 + {{ timuData.questionBank }}
  767 + </el-descriptions-item>
  768 + </el-descriptions>
  769 + <el-descriptions class="margin-top" :column="1" border :label-style="labelStyle"
  770 + :content-style="contentStyle">
  771 + <el-descriptions-item>
  772 + <template slot="label">
  773 + 默认是否必填
  774 + </template>
  775 + {{ timuData.isRequired }}
  776 + </el-descriptions-item>
  777 + <el-descriptions-item>
  778 + <template slot="label">
  779 + 选项
  780 + </template>
  781 + <div v-for="(value, key) in timuData.optionSettings" :key="key">
  782 + {{ key }}:{{ value }}
  783 + </div>
  784 + </el-descriptions-item>
  785 +
  786 + </el-descriptions>
  787 + </div>
  788 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  789 + <el-button class="buttonHover"
  790 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  791 + @click="timuXiang = false">返回</el-button>
  792 + </div>
  793 + </div>
  794 +
  795 + </el-dialog>
  796 + </el-dialog>
  797 + <el-dialog :visible.sync="tikuAdd" custom-class="tongyong_css" style="padding: 0;" width="60%" center
  798 + :close-on-click-modal="false" append-to-body @close="quxiao(1)">
  799 + <div style="padding:20px;">
  800 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">
  801 + 新增题目
  802 + </div>
  803 + <div style="padding:20px;">
  804 + <el-form ref="tixform" :model="zhong" :rules="tixrules" label-width="140px">
  805 + <el-form-item label="题目" prop="tikuTitle">
  806 + <el-input v-model="zhong.tikuTitle" maxlength="100" />
  807 + </el-form-item>
  808 + <el-form-item label="题型" prop="questionType">
  809 + <el-select v-model="zhong.questionType" placeholder="请选择">
  810 + <el-option label="单选" value="单选" />
  811 + <el-option label="多选" value="多选" />
  812 + <el-option label="文本" value="文本" />
  813 + </el-select>
  814 + </el-form-item>
  815 +
  816 + <el-form-item v-if="zhong.questionType == '多选'" label="最多可选" prop="maxChoose">
  817 + <el-input-number v-model="zhong.maxChoose" :min="0" :max="options.length" /> 0为不限制填写数量
  818 + </el-form-item>
  819 + <el-form-item label="隶属题库" prop="questionBank">
  820 + <el-select v-model="zhong.questionBank" placeholder="请选择">
  821 + <el-option label="用户端题库" value="用户端题库" />
  822 + <el-option label="商户端题库" value="商户端题库" />
  823 + <el-option label="公共端题库" value="公共端题库" />
  824 + </el-select>
  825 + </el-form-item>
  826 + <el-form-item label="布局类型" prop="layoutType">
  827 + <el-radio-group v-model="zhong.layoutType" style="margin-top:13px;">
  828 + <el-radio :label="1">垂直布局</el-radio>
  829 + <el-radio :label="2">自由布局</el-radio>
  830 + </el-radio-group>
  831 + </el-form-item>
  832 + <el-form-item label="是否必填" prop="isRequired">
  833 + <!-- <el-select v-model="zhong.isRequired" placeholder="请选择">
760 <el-option label="必填" value="必填" /> 834 <el-option label="必填" value="必填" />
761 <el-option label="非必填" value="非必填" /> 835 <el-option label="非必填" value="非必填" />
762 </el-select> --> 836 </el-select> -->
763 - <el-radio-group v-model="zhong.isRequired" style="margin-top:13px;">  
764 - <el-radio label="必填">必填</el-radio>  
765 - <el-radio label="非必填">非必填</el-radio>  
766 -  
767 - </el-radio-group>  
768 - </el-form-item>  
769 -  
770 -  
771 - <el-form-item label="选项" v-if="zhong.questionType !='文本'" prop="optionSettings">  
772 - <el-table :data="options"  
773 - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">  
774 - <el-table-column prop="index" label="序号" width="180">  
775 - <template #default="scope">  
776 - {{scope.$index + 1}}  
777 - </template>  
778 - </el-table-column>  
779 - <el-table-column prop="name" label="选项名称" width="300">  
780 - <template #default="scope">  
781 - <el-input v-model="scope.row.name" :readonly="scope.row.readonly"></el-input>  
782 - </template>  
783 - </el-table-column>  
784 - <el-table-column prop="name" label="分数">  
785 - <template #default="scope">  
786 - <el-input v-model.number="scope.row.num" :min="0" :max="100" @input="validateScore(scope.row)"  
787 - :readonly="scope.row.readonly"></el-input>  
788 - </template>  
789 - </el-table-column>  
790 - <el-table-column label="操作">  
791 - <template #default="scope">  
792 - <div class="tableBtn greens" @click="deleteOption(scope.$index)">删除</div>  
793 - </template>  
794 - </el-table-column>  
795 - </el-table>  
796 - <el-button @click="addOption" style="width:100%;background-color: #3F9B6A;color: #fff">+ 添加</el-button>  
797 - </el-form-item>  
798 - </el-form>  
799 - </div>  
800 - <div style="display: flex;justify-content: flex-end;">  
801 - <el-button @click="Addtiku(1)" style="background-color: #3F9B6A;color: #fff">确定  
802 - </el-button>  
803 - </div>  
804 - </div>  
805 - </el-dialog>  
806 - <template #footer>  
807 - <div style="display: flex; justify-content: flex-end; align-items: center;">  
808 - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"  
809 - @click="closeFn(1)">返回</el-button>  
810 - <el-button @click="addCheck(2)" style="background-color: #3F9B6A;color: #fff">确认</el-button>  
811 -  
812 - </div>  
813 - </template>  
814 - </el-dialog>  
815 - <!-- 编辑 -->  
816 - <el-dialog :visible.sync="bainjiBox" custom-class="tongyong_css" style="padding: 0;" width="60%" center  
817 - :close-on-click-modal="false" :show-close="false">  
818 - <div style="padding:20px;max-height: calc(100vh - 200px); 837 + <el-radio-group v-model="zhong.isRequired" style="margin-top:13px;">
  838 + <el-radio label="必填">必填</el-radio>
  839 + <el-radio label="非必填">非必填</el-radio>
  840 +
  841 + </el-radio-group>
  842 + </el-form-item>
  843 +
  844 + <el-form-item v-if="zhong.questionType != '文本'" label="选项" prop="optionSettings">
  845 + <el-table :data="options"
  846 + :header-cell-style="{ fontSize: '14px', color: '#0009', fontWeight: 'normal', backgroundColor: '#F2F3F5' }">
  847 + <el-table-column prop="index" label="序号" width="180">
  848 + <template #default="scope">
  849 + {{ scope.$index + 1 }}
  850 + </template>
  851 + </el-table-column>
  852 + <el-table-column prop="name" label="选项名称" width="300">
  853 + <template #default="scope">
  854 + <el-input v-model="scope.row.name" :readonly="scope.row.readonly" />
  855 + </template>
  856 + </el-table-column>
  857 + <el-table-column prop="name" label="分数">
  858 + <template #default="scope">
  859 + <el-input v-model.number="scope.row.num" :min="0" :max="100"
  860 + :readonly="scope.row.readonly" @input="validateScore(scope.row)" />
  861 + </template>
  862 + </el-table-column>
  863 +  <el-table-column label=""  min-width="120">
  864 +                     <template #default="{ $index }">
  865 +                       <span
  866 + style="cursor: pointer;margin-right: 5px; color: #3F9B6A;"
  867 + @click="answerMoveUp($index)" v-if="$index != 0">↑</span>
  868 +                       <span style="cursor: pointer; color: #3F9B6A;"
  869 + @click="answerMoveDown($index)"
  870 + v-if="$index != (options.length - 1)">↓</span>
  871 +                     </template>
  872 +                   </el-table-column>
  873 + <el-table-column label="操作">
  874 + <template #default="scope">
  875 + <div class="tableBtn greens" @click="deleteOption(scope.$index)">删除</div>
  876 + </template>
  877 + </el-table-column>
  878 + </el-table>
  879 + <el-button style="width:100%;background-color: #3F9B6A;color: #fff" @click="addOption">+
  880 + 添加</el-button>
  881 + </el-form-item>
  882 + </el-form>
  883 + </div>
  884 + <div style="display: flex;justify-content: flex-end;">
  885 + <el-button style="background-color: #3F9B6A;color: #fff" @click="Addtiku(1)">确定
  886 + </el-button>
  887 + </div>
  888 + </div>
  889 + </el-dialog>
  890 + <template #footer>
  891 + <div style="display: flex; justify-content: flex-end; align-items: center;">
  892 + <el-button class="buttonHover"
  893 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  894 + @click="closeFn(1)">返回</el-button>
  895 + <el-button style="background-color: #3F9B6A;color: #fff" @click="addCheck(2)">确认</el-button>
  896 +
  897 + </div>
  898 + </template>
  899 + </el-dialog>
  900 + <!-- 编辑 -->
  901 + <el-dialog :visible.sync="bainjiBox" custom-class="tongyong_css" style="padding: 0;" width="60%" center
  902 + :close-on-click-modal="false" :show-close="false">
  903 + <div style="padding:20px;max-height: calc(100vh - 300px);
819 overflow-y: auto;"> 904 overflow-y: auto;">
820 - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">编辑问卷</div>  
821 - <div>  
822 - <el-tabs v-model="bianjiTabs" @tab-click="">  
823 - <el-tab-pane label="基本信息" name="first">  
824 - <div style="width: 100%">  
825 - <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">  
826 - <div  
827 - style="padding:10px 20px;border-bottom:1px solid #DCDFE6;display:flex;justify-content: space-between;">  
828 - <div>基本信息</div>  
829 - </div>  
830 - <el-form ref="bianform" :model="secondData" :rules="rules" label-width="155px" style="padding:20px;">  
831 - <el-form-item label="问卷标题" prop="title">  
832 - <el-input v-model="secondData.title" maxlength="50"></el-input>  
833 - </el-form-item>  
834 - <el-form-item label="问卷起止时间">  
835 - <el-date-picker style="width: 100%;" v-model="plan_Time" value-format="yyyy-MM-dd"  
836 - type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"  
837 - align="right" :picker-options="pickerOptions">  
838 - </el-date-picker>  
839 - </el-form-item>  
840 - <el-form-item label="发布端口" prop="publishPort">  
841 - <el-select v-model="secondData.publishPort" placeholder="请选择">  
842 - <el-option label="用户端" value="用户端" />  
843 - <el-option label="商家端" value="商家端" />  
844 - <el-option label="H5端" value="H5端" />  
845 - </el-select>  
846 - </el-form-item>  
847 - <el-form-item label="问卷类型" prop="questionnaireType">  
848 - <el-select v-model="secondData.questionnaireType" placeholder="请选择">  
849 - <el-option label="物业问卷" value="物业问卷" />  
850 - <el-option label="招商问卷" value="招商问卷" />  
851 - <el-option label="满意度问卷" value="满意度问卷" />  
852 - <el-option label="社会调查问卷" value="社会调查问卷" />  
853 -  
854 - </el-select>  
855 - </el-form-item>  
856 - <el-form-item label="预计填写时长(分钟)" prop="estimatedTime">  
857 - <el-input v-model.number="secondData.estimatedTime" maxlength="1000"></el-input>  
858 - </el-form-item>  
859 -  
860 - <el-form-item label="问卷介绍" prop="remarks" maxlength="255">  
861 - <el-input v-model="secondData.remarks"></el-input>  
862 - </el-form-item>  
863 - <el-form-item label="填写人" prop="filler">  
864 - <el-select v-model="secondData.filler" placeholder="请选择">  
865 - <!-- <el-option label="会员" value="会员" /> -->  
866 - <el-option label="公众" value="公众" />  
867 - </el-select>  
868 - </el-form-item>  
869 - <el-form-item label="填写条件" prop="fillingConditions">  
870 - <!-- <el-select v-model="secondData.fillingConditions" placeholder="请选择">  
871 - <el-option label="可重复填写" value="可重复填写" />  
872 -  
873 - </el-select> -->  
874 - <el-radio-group v-model="secondData.fillingConditions" style="margin-top:13px;">  
875 - <el-radio label="可重复填写">可重复填写</el-radio>  
876 -  
877 - </el-radio-group>  
878 - </el-form-item>  
879 -  
880 - <el-form-item label="问卷封面" prop="coverImage">  
881 - <upimg v-model="secondData.coverImage" :limit="1" :fileSize="1" :isShowTip="false"></upimg>  
882 - </el-form-item>  
883 - <el-form-item label="姓名" prop="needName">  
884 - <el-radio-group v-model="secondData.needName" style="margin-top:13px;">  
885 - <el-radio label="必填">必填</el-radio>  
886 - <el-radio label="不填">不填</el-radio>  
887 - </el-radio-group>  
888 - </el-form-item>  
889 - <el-form-item label="电话" prop="needPhone">  
890 - <el-radio-group v-model="secondData.needPhone" style="margin-top:13px;">  
891 - <el-radio label="必填">必填</el-radio>  
892 - <el-radio label="不填">不填</el-radio>  
893 - </el-radio-group>  
894 - </el-form-item>  
895 - <el-form-item label="性别" prop="needGender">  
896 - <el-radio-group v-model="secondData.needGender" style="margin-top:13px;">  
897 - <el-radio label="必填">必填</el-radio>  
898 - <el-radio label="不填">不填</el-radio>  
899 - </el-radio-group>  
900 - </el-form-item>  
901 -  
902 - <el-form-item label="意见" prop="needOpinion">  
903 - <el-radio-group v-model="secondData.needOpinion" style="margin-top:13px;">  
904 - <el-radio label="必填">必填</el-radio>  
905 - <el-radio label="不填">不填</el-radio>  
906 - </el-radio-group>  
907 - </el-form-item>  
908 - </el-form>  
909 - </div>  
910 - <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;" v-if="secondData.filler=='会员'">  
911 - <div  
912 - style="padding:10px 20px;border-bottom:1px solid #DCDFE6;display:flex;justify-content: space-between;">  
913 - <div>参与答卷奖励</div>  
914 - </div>  
915 - <el-form ref="form" :model="secondData" label-width="140px" style="padding:20px;">  
916 - <el-radio-group v-model="secondData.rewardForParticipation" @change="radioClick">  
917 - <el-radio label="不设置奖励" value="不设置奖励">不设置奖励</el-radio>  
918 - <el-radio label="奖励积分" value="奖励积分">奖励积分</el-radio>  
919 - <el-radio label="转盘抽奖" value="转盘抽奖">转盘抽奖</el-radio>  
920 - <el-radio label="优惠券" value="优惠券">优惠券</el-radio>  
921 - </el-radio-group>  
922 - </el-form>  
923 - <div v-if="secondData.rewardForParticipation === '奖励积分'" style="padding: 0 0 20px 20px;">  
924 - <div>  
925 - 奖励 <el-input v-model="jifen" style="width:50px;"></el-input>积分  
926 - </div>  
927 - </div>  
928 - <div v-if="secondData.rewardForParticipation === '转盘抽奖'" style="padding: 0 0 20px 20px;">  
929 - <div>  
930 - 奖励 <el-input v-model="choujiang" style="width:50px;"></el-input>次  
931 - </div>  
932 - </div>  
933 - <div v-if="secondData.rewardForParticipation === '优惠券'" style="padding: 0 0 20px 20px;">  
934 - <div>  
935 - <el-select v-model="yhq" placeholder="请选择" style="width:20%">  
936 - <el-option :label="item" :value="item" v-for="item in yhqSel" />  
937 - </el-select>  
938 - </div>  
939 - </div>  
940 - </div>  
941 - </div>  
942 - </el-tab-pane>  
943 - <el-tab-pane label="问卷内容" name="second">  
944 - <div style="width: 100%">  
945 - <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">  
946 - <div  
947 - style="padding:10px 20px;border-bottom:1px solid #DCDFE6;display:flex;justify-content: space-between;">  
948 - <div>问卷内容</div>  
949 - <div>  
950 - <div class="greens tableBtn" @click="tikuAdd = true">新增</div>  
951 - <div class="greens tableBtn" @click="selTiku">从题库中选择</div>  
952 - </div>  
953 -  
954 - </div>  
955 -  
956 - <div style="padding:20px;">  
957 - <el-table :data="secondDataTi"  
958 - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"  
959 - :height="tableHeight" style="overflow-y: auto;">  
960 - <el-table-column label="序号" min-width="100">  
961 - <template slot-scope="scope">  
962 - {{scope.$index + 1}}  
963 - </template>  
964 - </el-table-column>  
965 - <el-table-column label="题目" min-width="150" prop="tikuTitle" show-overflow-tooltip>  
966 - </el-table-column>  
967 - <el-table-column label="题型" min-width="150" prop="questionType">  
968 - </el-table-column>  
969 - <el-table-column label="是否必填" prop="isRequired" min-width="150">  
970 - </el-table-column>  
971 - <el-table-column label="操作" min-width="200">  
972 - <template slot-scope="scope">  
973 - <div class="tableBtn greens" @click="delWenCon('2',scope.$index)">删除</div>  
974 - </template>  
975 - </el-table-column>  
976 - </el-table>  
977 - </div>  
978 - </div>  
979 - </div>  
980 - </el-tab-pane>  
981 -  
982 - </el-tabs>  
983 - </div>  
984 -  
985 -  
986 - </div>  
987 - <el-dialog :visible.sync="tikuBox" custom-class="tongyong_css" style="padding: 0;" width="60%" center  
988 - :close-on-click-modal="false" append-to-body>  
989 - <div style="padding:20px;">  
990 -  
991 - <div style="padding:20px;">  
992 - <div style="display: flex;justify-content: space-between;margin-bottom: 20px;">  
993 - <div>  
994 - 从题库中选择  
995 - <el-select v-model="tikuNie" style="width:28%;margin-right: 15px;" @change="tikuchange">  
996 - <el-option label="用户端题库" value="用户端题库" />  
997 - <el-option label="商户端题库" value="商户端题库" />  
998 - <el-option label="公共端题库" value="公共端题库" />  
999 - </el-select>  
1000 - <el-select v-model="danxuan" style="width:28%;margin-right: 15px;" placeholder="请选择题型">  
1001 - <el-option label="单选" value="单选" />  
1002 - <el-option label="多选" value="多选" />  
1003 - <el-option label="文本" value="文本" />  
1004 - </el-select>  
1005 -  
1006 - </div>  
1007 -  
1008 - <div style="width: 68%;">  
1009 - <el-input v-model="timuMsg" style="width:50%;margin-right: 15px;"></el-input>  
1010 - <el-button @click="tikusous" style="background-color: #3F9B6A;color: #fff">查询  
1011 - </el-button>  
1012 - <el-button @click="tikuclose" class="buttonHover"  
1013 - style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置  
1014 - </el-button>  
1015 - </div>  
1016 - </div>  
1017 - <div style="padding:20px;overflow-y: auto;height:495px" v-infinite-scroll="load">  
1018 -  
1019 - <el-table :data="tikuziyuan"  
1020 - ref="ziyuanData"  
1021 - :row-key="row=>row.id"  
1022 - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"  
1023 - @selection-change="handleSelectionChange" tooltip-effect="dark" @toggleRowSelection="hangSelchange">  
1024 - <el-table-column type="selection" width="55" :reserve-selection="true">  
1025 - </el-table-column>  
1026 - <el-table-column label="序号" min-width="100">  
1027 - <template slot-scope="scope">  
1028 - {{scope.$index +1 }}  
1029 - </template>  
1030 - </el-table-column>  
1031 - <el-table-column label="题目" min-width="400" prop="tikuTitle" show-overflow-tooltip>  
1032 - </el-table-column>  
1033 - <el-table-column label="题型" min-width="80" prop="questionType">  
1034 - </el-table-column>  
1035 - <el-table-column label="操作" min-width="120">  
1036 - <template slot-scope="scope">  
1037 - <div class="tableBtn greens" @click="gotimuxiang(scope.row)">详情</div>  
1038 - </template>  
1039 - </el-table-column>  
1040 - </el-table>  
1041 - </div>  
1042 -  
1043 - </div>  
1044 - <div style="padding-top:20px;display:flex;justify-content: flex-end;">  
1045 - <el-button style="background-color: #3F9B6A;color: #fff" @click="tiSelQue(2)">确定</el-button>  
1046 - </div>  
1047 - </div>  
1048 - <el-dialog :visible.sync="timuXiang" custom-class='tongyong_css' style="padding: 0;" width="50%" center  
1049 - :close-on-click-modal="false" append-to-body>  
1050 - <div style="padding:20px;">  
1051 - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">详情页</div>  
1052 - <div>  
1053 - <el-descriptions class="margin-top" :column="1" border :labelStyle="labelStyle"  
1054 - :contentStyle="contentStyle">  
1055 - <el-descriptions-item>  
1056 - <template slot="label">  
1057 - 题目  
1058 - </template>  
1059 - {{timuData.tikuTitle}}  
1060 - </el-descriptions-item>  
1061 - <el-descriptions-item>  
1062 - <template slot="label">  
1063 - 题型  
1064 - </template>  
1065 - {{timuData.questionType}}  
1066 - </el-descriptions-item>  
1067 - <el-descriptions-item>  
1068 - <template slot="label">  
1069 - 隶属题库  
1070 - </template>  
1071 - {{timuData.questionBank}}  
1072 - </el-descriptions-item>  
1073 - </el-descriptions>  
1074 - <el-descriptions class="margin-top" :column="1" border :labelStyle="labelStyle"  
1075 - :contentStyle="contentStyle">  
1076 - <el-descriptions-item>  
1077 - <template slot="label">  
1078 - 默认是否必填  
1079 - </template>  
1080 - {{timuData.isRequired}}  
1081 - </el-descriptions-item>  
1082 -  
1083 - <el-descriptions-item>  
1084 - <template slot="label">  
1085 - 选项  
1086 - </template>  
1087 - <div v-for="(value, key) in timuData.optionSettings" :key="key">  
1088 - {{ key }}:{{ value }}  
1089 - </div>  
1090 - </el-descriptions-item>  
1091 -  
1092 - </el-descriptions>  
1093 - </div>  
1094 - <div style="padding-top:20px;display:flex;justify-content: flex-end;">  
1095 - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"  
1096 - @click="timuXiang = false">返回</el-button>  
1097 - </div>  
1098 - </div>  
1099 -  
1100 - </el-dialog>  
1101 - </el-dialog>  
1102 - <el-dialog :visible.sync="tikuAdd" custom-class="tongyong_css" style="padding: 0;" width="60%" center  
1103 - :close-on-click-modal="false" append-to-body @close="quxiao(2)">  
1104 - <div style="padding:20px;">  
1105 - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">  
1106 - 新增题目  
1107 - </div>  
1108 - <div style="padding:20px;">  
1109 - <el-form ref="form" label-width="140px">  
1110 - <el-form-item label="题目">  
1111 - <el-input v-model="zhong.tikuTitle" maxlength="100"></el-input>  
1112 - </el-form-item>  
1113 - <el-form-item label="题型">  
1114 - <el-select v-model="zhong.questionType" placeholder="请选择">  
1115 - <el-option label="单选" value="单选" />  
1116 - <el-option label="多选" value="多选" />  
1117 - <el-option label="文本" value="文本" />  
1118 - </el-select>  
1119 - </el-form-item>  
1120 - <el-form-item label="隶属题库">  
1121 - <el-select v-model="zhong.questionBank" placeholder="请选择">  
1122 - <el-option label="用户端题库" value="用户端题库" />  
1123 - <el-option label="商户端题库" value="商户端题库" />  
1124 - <el-option label="公共端题库" value="公共端题库" />  
1125 - </el-select>  
1126 - </el-form-item>  
1127 - <el-form-item label="是否必填">  
1128 - <!-- <el-select v-model="zhong.isRequired" placeholder="请选择">  
1129 - <el-option label="必填" value="必填" />  
1130 - <el-option label="非必填" value="非必填" />  
1131 - </el-select> -->  
1132 - <el-radio-group v-model="zhong.isRequired" style="margin-top:13px;">  
1133 - <el-radio label="必填">必填</el-radio>  
1134 - <el-radio label="非必填">非必填</el-radio>  
1135 - </el-radio-group>  
1136 - </el-form-item>  
1137 - <el-form-item label="选项" v-if="zhong.questionType !='文本'" prop="optionSettings">  
1138 - <el-table :data="options"  
1139 - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">  
1140 - <el-table-column prop="index" label="序号" width="180">  
1141 - <template #default="scope">  
1142 - {{scope.$index + 1}}  
1143 - </template>  
1144 - </el-table-column>  
1145 - <el-table-column prop="name" label="选项名称" width="300">  
1146 - <template #default="scope">  
1147 - <el-input v-model="scope.row.name" :readonly="scope.row.readonly" maxlength="50"></el-input>  
1148 - </template>  
1149 - </el-table-column>  
1150 - <el-table-column prop="name" label="分数">  
1151 - <template #default="scope">  
1152 - <el-input v-model.number="scope.row.num" :min="0" :max="100" @input="validateScore(scope.row)"  
1153 - :readonly="scope.row.readonly"></el-input>  
1154 - </template>  
1155 - </el-table-column>  
1156 - <el-table-column label="操作">  
1157 - <template #default="scope">  
1158 - <div class="tableBtn greens" @click="deleteOption(scope.$index)">删除</div>  
1159 - </template>  
1160 - </el-table-column>  
1161 - </el-table>  
1162 - <el-button @click="addOption" style="width:100%;background-color: #3F9B6A;color: #fff">+ 添加</el-button>  
1163 - </el-form-item>  
1164 - </el-form>  
1165 - </div>  
1166 - <div style="display: flex;justify-content: flex-end;">  
1167 - <el-button @click="Addtiku(2)" style="background-color: #3F9B6A;color: #fff">确定  
1168 - </el-button>  
1169 - </div>  
1170 - </div>  
1171 - </el-dialog>  
1172 - <template #footer>  
1173 - <div style="display: flex; justify-content: flex-end; align-items: center;">  
1174 - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"  
1175 - @click="closeFn(2)">返回</el-button>  
1176 - <el-button @click="bianCheck" style="background-color: #3F9B6A;color: #fff">确认</el-button>  
1177 - </div>  
1178 - </template>  
1179 - </el-dialog>  
1180 -  
1181 -  
1182 - <!-- 禁用 -->  
1183 -  
1184 -  
1185 - <el-dialog :visible.sync="downShow" custom-class="tongyong_css" style="padding: 0;" width="50%" center  
1186 - :close-on-click-modal="false" append-to-body>  
1187 - <div style="padding:20px;">  
1188 - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">禁用</div>  
1189 - <div style="padding:30px 0px 0px">  
1190 - <el-form ref="opinionForm" :model="opinionDel" label-width="120px" style="position: relative">  
1191 - <el-form-item label="禁用原因" class="grid-content bg-purple" prop="name">  
1192 - <el-input type="textarea" v-model="opinionDel.opinionDelisting" placeholder="请输入禁用原因" />  
1193 - </el-form-item>  
1194 -  
1195 - </el-form>  
1196 - </div>  
1197 - <div style="display:flex;justify-content: flex-end;padding:20px;">  
1198 - <el-button @click="downShow=false" style="background-color: #3F9B6A;color: #fff;">取消</el-button>  
1199 - <el-button @click="downShowCheck" style="background-color: #3F9B6A;color: #fff;">确定</el-button>  
1200 - </div>  
1201 - </div>  
1202 - </el-dialog>  
1203 - <el-dialog :visible.sync="yulanShow" custom-class="tongyong_css" style="padding: 0;" width="43%" center  
1204 - :close-on-click-modal="false" append-to-body>  
1205 - <div style="padding:20px;">  
1206 - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">预览</div>  
1207 - <div style="margin:auto;width:50%;height:600px;overflow-y: auto;overflow-x: hidden;">  
1208 - <div style="padding:20px;background-color: #f6f6f6;">  
1209 - <div>  
1210 - <h2 style="color: #000;">{{secondData.title}}</h2>  
1211 -  
1212 - <div class="" style="padding: 10px 0;">  
1213 - <img :src="secondData.coverImage" style="width:100%;border-radius: 10px;"></img>  
1214 - </div>  
1215 - </div>  
1216 - <div style="padding: 15px;background-color: #fff;border-radius: 10px;">  
1217 - <div>  
1218 - {{secondData.remarks}}  
1219 - <div> 905 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">编辑问卷</div>
  906 + <div>
  907 + <el-tabs v-model="bianjiTabs" @tab-click="">
  908 + <el-tab-pane label="基本信息" name="first">
  909 + <div style="width: 100%">
  910 + <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">
  911 + <div
  912 + style="padding:10px 20px;border-bottom:1px solid #DCDFE6;display:flex;justify-content: space-between;">
  913 + <div>基本信息</div>
  914 + </div>
  915 + <el-form ref="bianform" :model="secondData" :rules="rules" label-width="155px"
  916 + style="padding:20px;">
  917 + <el-form-item label="问卷标题" prop="title">
  918 + <el-input v-model="secondData.title" maxlength="50" />
  919 + </el-form-item>
  920 + <el-form-item label="问卷起止时间">
  921 + <el-date-picker v-model="plan_Time" style="width: 100%;"
  922 + value-format="yyyy-MM-dd" type="daterange" range-separator="至"
  923 + start-placeholder="开始日期" end-placeholder="结束日期" align="right"
  924 + :picker-options="pickerOptions" />
  925 + </el-form-item>
  926 + <el-form-item label="发布端口" prop="publishPort">
  927 + <el-select v-model="secondData.publishPort" placeholder="请选择">
  928 + <el-option label="用户端" value="用户端" />
  929 + <el-option label="商家端" value="商家端" />
  930 + <el-option label="H5端" value="H5端" />
  931 + </el-select>
  932 + </el-form-item>
  933 + <el-form-item label="问卷类型" prop="questionnaireType">
  934 + <el-select v-model="secondData.questionnaireType" placeholder="请选择">
  935 + <el-option label="物业问卷" value="物业问卷" />
  936 + <el-option label="招商问卷" value="招商问卷" />
  937 + <el-option label="满意度问卷" value="满意度问卷" />
  938 + <el-option label="社会调查问卷" value="社会调查问卷" />
  939 +
  940 + </el-select>
  941 + </el-form-item>
  942 + <el-form-item label="预计填写时长(分钟)" prop="estimatedTime">
  943 + <el-input v-model.number="secondData.estimatedTime" maxlength="1000" />
  944 + </el-form-item>
  945 +
  946 + <el-form-item label="问卷介绍" prop="remarks">
  947 + <!-- <el-input v-model="secondData.remarks"></el-input> -->
  948 + <wang-editor ref="editor" v-model="secondData.remarks" :height="200" />
  949 + </el-form-item>
  950 + <el-form-item label="填写人" prop="filler">
  951 + <el-select v-model="secondData.filler" placeholder="请选择">
  952 + <!-- <el-option label="会员" value="会员" /> -->
  953 + <el-option label="公众" value="公众" />
  954 + </el-select>
  955 + </el-form-item>
  956 + <el-form-item label="填写条件" prop="fillingConditions">
  957 + <el-radio-group v-model="secondData.fillingConditions"
  958 + style="margin-top:13px;">
  959 + <el-radio label="可重复填写">可重复填写</el-radio>
  960 + <el-radio label="不可重复填写">不可重复填写</el-radio>
  961 + </el-radio-group>
  962 + </el-form-item>
  963 +
  964 + <el-form-item label="问卷封面" prop="coverImage">
  965 + <upimg :value="secondData.coverImage" :limit="1" :file-size="1"
  966 + :is-show-tip="false" @input="e => input(e, '2')" />
  967 + </el-form-item>
  968 + <el-form-item label="姓名" prop="needName">
  969 + <el-radio-group v-model="secondData.needName" style="margin-top:13px;">
  970 + <el-radio label="必填">必填</el-radio>
  971 + <el-radio label="不填">不填</el-radio>
  972 + </el-radio-group>
  973 + </el-form-item>
  974 + <el-form-item label="电话" prop="needPhone">
  975 + <el-radio-group v-model="secondData.needPhone" style="margin-top:13px;">
  976 + <el-radio label="必填">必填</el-radio>
  977 + <el-radio label="不填">不填</el-radio>
  978 + </el-radio-group>
  979 + </el-form-item>
  980 + <el-form-item label="性别" prop="needGender">
  981 + <el-radio-group v-model="secondData.needGender" style="margin-top:13px;">
  982 + <el-radio label="必填">必填</el-radio>
  983 + <el-radio label="不填">不填</el-radio>
  984 + </el-radio-group>
  985 + </el-form-item>
  986 +
  987 + <el-form-item label="意见" prop="needOpinion">
  988 + <el-radio-group v-model="secondData.needOpinion" style="margin-top:13px;">
  989 + <el-radio label="必填">必填</el-radio>
  990 + <el-radio label="不填">不填</el-radio>
  991 + </el-radio-group>
  992 + </el-form-item>
  993 + </el-form>
  994 + </div>
  995 + <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">
  996 + <div
  997 + style="padding:10px 20px;border-bottom:1px solid #DCDFE6;display:flex;justify-content: space-between;">
  998 + <div>参与答卷奖励</div>
  999 + </div>
  1000 + <el-form ref="form" :model="secondData" label-width="140px" style="padding:20px;">
  1001 + <el-radio-group v-model="radioreward" @change="radioClick">
  1002 + <el-radio label="不设置奖励" value="不设置奖励">不设置奖励</el-radio>
  1003 + <!-- <el-radio label="奖励积分" value="奖励积分">奖励积分</el-radio> -->
  1004 + <el-radio label="转盘抽奖" value="转盘抽奖">转盘抽奖</el-radio>
  1005 + <!-- <el-radio label="优惠券" value="优惠券">优惠券</el-radio> -->
  1006 + </el-radio-group>
  1007 + <div v-if="radioreward === '转盘抽奖'" style="padding: 0 0 20px 20px;">
  1008 + <div v-if="jiangli.id && jiangli.id!=''" style="padding: 10px 0;">
  1009 + <span>{{jiangli.actName}}</span>
  1010 + <span style="padding: 0 20px;color: #3F9B6A;cursor: pointer;"
  1011 + @click="actGo(1)">查看</span>
  1012 + <span style="color: #3F9B6A;cursor: pointer;"
  1013 + @click="actGo(2)">编辑</span>
  1014 + </div>
  1015 + <div v-else>
  1016 + <el-button style="color: #fff;background-color: #3F9B6A;"
  1017 + @click="actGo(0)">创建活动</el-button>
  1018 + </div>
  1019 +
  1020 +
  1021 + </div>
  1022 + </el-form>
  1023 + </div>
  1024 + </div>
  1025 + </el-tab-pane>
  1026 + <el-tab-pane label="问卷内容" name="second">
  1027 + <div style="width: 100%">
  1028 + <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">
  1029 + <div
  1030 + style="padding:10px 20px;border-bottom:1px solid #DCDFE6;display:flex;justify-content: space-between;">
  1031 + <div>问卷内容</div>
  1032 + <div>
  1033 + <div class="greens tableBtn" @click="tikuAdd = true">新增</div>
  1034 + <div class="greens tableBtn" @click="selTiku">从题库中选择</div>
  1035 + </div>
  1036 +
  1037 + </div>
  1038 +
  1039 + <div style="padding:20px;">
  1040 + <el-table :data="secondDataTi"
  1041 + :header-cell-style="{ fontSize: '14px', color: '#0009', fontWeight: 'normal', backgroundColor: '#F2F3F5' }"
  1042 + class="xddTable">
  1043 + <el-table-column label="序号" min-width="100">
  1044 + <template slot-scope="scope">
  1045 + {{ scope.$index + 1 }}
  1046 + </template>
  1047 + </el-table-column>
  1048 + <el-table-column label="题目" min-width="150" prop="tikuTitle"
  1049 + show-overflow-tooltip />
  1050 + <el-table-column label="题型" min-width="80" prop="questionType" />
  1051 + <el-table-column label="是否必填" prop="isRequired" min-width="120" />
  1052 + <el-table-column label="" min-width="120">
  1053 + <template #default="scope">
  1054 + <span style="cursor: pointer;margin-right: 5px; color: #3F9B6A;"
  1055 + @click="moveUp2(scope.$index)" v-if="scope.$index != 0">↑</span>
  1056 + <span style="cursor: pointer; color: #3F9B6A;"
  1057 + @click="moveDown2(scope.$index)"
  1058 + v-if="scope.$index != (secondDataTi.length - 1)">↓</span>
  1059 + </template>
  1060 + </el-table-column>
  1061 + <el-table-column label="操作" min-width="80">
  1062 + <template slot-scope="scope">
  1063 + <div class="tableBtn greens" @click="delWenCon('2', scope.$index)">
  1064 + 删除</div>
  1065 + </template>
  1066 + </el-table-column>
  1067 + </el-table>
  1068 + </div>
  1069 + </div>
  1070 + </div>
  1071 + </el-tab-pane>
  1072 +
  1073 + </el-tabs>
  1074 + </div>
  1075 +
  1076 + </div>
  1077 + <el-dialog :visible.sync="tikuBox" custom-class="tongyong_css" style="padding: 0;" width="60%" center
  1078 + :close-on-click-modal="false" append-to-body @close="tikuquxiao(2)">
  1079 + <div style="padding:20px;">
  1080 +
  1081 + <div style="padding:20px;">
  1082 + <div style="display: flex;justify-content: space-between;margin-bottom: 20px;">
  1083 + <div>
  1084 + 从题库中选择
  1085 + <el-select v-model="tikuNie" style="width:28%;margin-right: 15px;" @change="tikuchange">
  1086 + <el-option label="用户端题库" value="用户端题库" />
  1087 + <el-option label="商户端题库" value="商户端题库" />
  1088 + <el-option label="公共端题库" value="公共端题库" />
  1089 + </el-select>
  1090 + <el-select v-model="danxuan" style="width:28%;margin-right: 15px;" placeholder="请选择题型">
  1091 + <el-option label="单选" value="单选" />
  1092 + <el-option label="多选" value="多选" />
  1093 + <el-option label="文本" value="文本" />
  1094 + </el-select>
  1095 +
  1096 + </div>
  1097 +
  1098 + <div style="width: 68%;">
  1099 + <el-input v-model="timuMsg" style="width:50%;margin-right: 15px;" />
  1100 + <el-button style="background-color: #3F9B6A;color: #fff" @click="tikusous">查询
  1101 + </el-button>
  1102 + <el-button class="buttonHover"
  1103 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  1104 + @click="tikuclose">重置
  1105 + </el-button>
  1106 + </div>
  1107 + </div>
  1108 + <div style="padding:20px;overflow-y: auto;height:495px">
  1109 +
  1110 + <el-table ref="ziyuanData"
  1111 + :data="tikuziyuan.slice((currentPageListTi - 1) * pageSizeTi, currentPageListTi * pageSizeTi)"
  1112 + :row-key="row => row.id"
  1113 + :header-cell-style="{ fontSize: '14px', color: '#0009', fontWeight: 'normal', backgroundColor: '#F2F3F5' }"
  1114 + tooltip-effect="dark" @selection-change="handleSelectionChange"
  1115 + @toggleRowSelection="hangSelchange">
  1116 + <el-table-column type="selection" width="55" :reserve-selection="true" />
  1117 + <el-table-column label="序号" min-width="100">
  1118 + <template slot-scope="scope">
  1119 + {{ scope.$index + 1 }}
  1120 + </template>
  1121 + </el-table-column>
  1122 + <el-table-column label="题目" min-width="400" prop="tikuTitle" show-overflow-tooltip />
  1123 + <el-table-column label="题型" min-width="80" prop="questionType" />
  1124 + <el-table-column label="操作" min-width="120">
  1125 + <template slot-scope="scope">
  1126 + <div class="tableBtn greens" @click="gotimuxiang(scope.row)">详情</div>
  1127 + </template>
  1128 + </el-table-column>
  1129 + </el-table>
  1130 + <div style="display: flex;justify-content: space-between;margin-top: 10px;">
  1131 + <div style="font-size: 14px;">共 <span style="color: #3F9B6A;">{{ totalTi }}</span> 条
  1132 + </div>
  1133 + <el-pagination :current-page="currentPageListTi" :page-sizes="[10, 20, 50, 100]"
  1134 + :page-size="pageSizeTi" background small layout="prev, pager, next" :total="totalTi"
  1135 + @size-change="handleSizeChangeTi" @current-change="handleCurrentChangeTi" />
  1136 + </div>
  1137 + </div>
  1138 +
  1139 + </div>
  1140 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  1141 + <el-button style="background-color: #3F9B6A;color: #fff" @click="tiSelQue(2)">确定</el-button>
  1142 + </div>
  1143 + </div>
  1144 + <el-dialog :visible.sync="timuXiang" custom-class="tongyong_css" style="padding: 0;" width="50%" center
  1145 + :close-on-click-modal="false" append-to-body>
  1146 + <div style="padding:20px;">
  1147 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">详情页</div>
  1148 + <div>
  1149 + <el-descriptions class="margin-top" :column="1" border :label-style="labelStyle"
  1150 + :content-style="contentStyle">
  1151 + <el-descriptions-item>
  1152 + <template slot="label">
  1153 + 题目
  1154 + </template>
  1155 + {{ timuData.tikuTitle }}
  1156 + </el-descriptions-item>
  1157 + <el-descriptions-item>
  1158 + <template slot="label">
  1159 + 题型
  1160 + </template>
  1161 + {{ timuData.questionType }}
  1162 + </el-descriptions-item>
  1163 + <el-descriptions-item>
  1164 + <template slot="label">
  1165 + 隶属题库
  1166 + </template>
  1167 + {{ timuData.questionBank }}
  1168 + </el-descriptions-item>
  1169 + </el-descriptions>
  1170 + <el-descriptions class="margin-top" :column="1" border :label-style="labelStyle"
  1171 + :content-style="contentStyle">
  1172 + <el-descriptions-item>
  1173 + <template slot="label">
  1174 + 默认是否必填
  1175 + </template>
  1176 + {{ timuData.isRequired }}
  1177 + </el-descriptions-item>
  1178 +
  1179 + <el-descriptions-item>
  1180 + <template slot="label">
  1181 + 选项
  1182 + </template>
  1183 + <div v-for="(value, key) in timuData.optionSettings" :key="key">
  1184 + {{ key }}:{{ value }}
  1185 + </div>
  1186 + </el-descriptions-item>
  1187 +
  1188 + </el-descriptions>
  1189 + </div>
  1190 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  1191 + <el-button class="buttonHover"
  1192 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  1193 + @click="timuXiang = false">返回</el-button>
  1194 + </div>
  1195 + </div>
  1196 +
  1197 + </el-dialog>
  1198 + </el-dialog>
  1199 + <el-dialog :visible.sync="tikuAdd" custom-class="tongyong_css" style="padding: 0;" width="60%" center
  1200 + :close-on-click-modal="false" append-to-body @close="quxiao(2)">
  1201 + <div style="padding:20px;">
  1202 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">
  1203 + 新增题目
  1204 + </div>
  1205 + <div style="padding:20px;">
  1206 + <el-form ref="tixform" :model="zhong" :rules="tixrules" label-width="140px">
  1207 + <el-form-item label="题目">
  1208 + <el-input v-model="zhong.tikuTitle" maxlength="100" />
  1209 + </el-form-item>
  1210 + <el-form-item label="题型">
  1211 + <el-select v-model="zhong.questionType" placeholder="请选择">
  1212 + <el-option label="单选" value="单选" />
  1213 + <el-option label="多选" value="多选" />
  1214 + <el-option label="文本" value="文本" />
  1215 + </el-select>
  1216 + </el-form-item>
  1217 + <el-form-item v-if="zhong.questionType == '多选'" label="最多可选" prop="maxChoose">
  1218 + <el-input-number v-model="zhong.maxChoose" :min="0" :max="options.length" /> 0为不限制填写数量
  1219 + </el-form-item>
  1220 + <el-form-item label="隶属题库">
  1221 + <el-select v-model="zhong.questionBank" placeholder="请选择">
  1222 + <el-option label="用户端题库" value="用户端题库" />
  1223 + <el-option label="商户端题库" value="商户端题库" />
  1224 + <el-option label="公共端题库" value="公共端题库" />
  1225 + </el-select>
  1226 + </el-form-item>
  1227 + <el-form-item label="布局类型">
  1228 + <el-radio-group v-model="zhong.layoutType" style="margin-top:13px;">
  1229 + <el-radio :label="1">垂直布局</el-radio>
  1230 + <el-radio :label="2">自由布局</el-radio>
  1231 + </el-radio-group>
  1232 + </el-form-item>
  1233 + <el-form-item label="是否必填">
  1234 + <el-radio-group v-model="zhong.isRequired" style="margin-top:13px;">
  1235 + <el-radio label="必填">必填</el-radio>
  1236 + <el-radio label="非必填">非必填</el-radio>
  1237 + </el-radio-group>
  1238 + </el-form-item>
  1239 + <el-form-item v-if="zhong.questionType != '文本'" label="选项" prop="optionSettings">
  1240 + <el-table :data="options"
  1241 + :header-cell-style="{ fontSize: '14px', color: '#0009', fontWeight: 'normal', backgroundColor: '#F2F3F5' }">
  1242 + <el-table-column prop="index" label="序号" width="180">
  1243 + <template #default="scope">
  1244 + {{ scope.$index + 1 }}
  1245 + </template>
  1246 + </el-table-column>
  1247 + <el-table-column prop="name" label="选项名称" width="300">
  1248 + <template #default="scope">
  1249 + <el-input v-model="scope.row.name" :readonly="scope.row.readonly"
  1250 + maxlength="50" />
  1251 + </template>
  1252 + </el-table-column>
  1253 + <el-table-column prop="name" label="分数">
  1254 + <template #default="scope">
  1255 + <el-input v-model.number="scope.row.num" :min="0" :max="100"
  1256 + :readonly="scope.row.readonly" @input="validateScore(scope.row)" />
  1257 + </template>
  1258 + </el-table-column>
  1259 + <el-table-column label=""  min-width="120">
  1260 + <template #default="{ $index }">
  1261 + <span style="cursor: pointer;margin-right: 5px; color: #3F9B6A;"
  1262 + @click="answerMoveUp($index)" v-if="$index != 0">↑</span>
  1263 + <span style="cursor: pointer; color: #3F9B6A;"
  1264 + @click="answerMoveDown($index)"
  1265 + v-if="$index != (options.length - 1)">↓</span>
  1266 + </template>
  1267 + </el-table-column>
  1268 + <el-table-column label="操作">
  1269 + <template #default="scope">
  1270 + <div class="tableBtn greens" @click="deleteOption(scope.$index)">删除</div>
  1271 + </template>
  1272 + </el-table-column>
  1273 + </el-table>
  1274 + <el-button style="width:100%;background-color: #3F9B6A;color: #fff" @click="addOption">+
  1275 + 添加</el-button>
  1276 + </el-form-item>
  1277 + </el-form>
  1278 + </div>
  1279 + <div style="display: flex;justify-content: flex-end;">
  1280 + <el-button style="background-color: #3F9B6A;color: #fff" @click="Addtiku(2)">确定
  1281 + </el-button>
  1282 + </div>
  1283 + </div>
  1284 + </el-dialog>
  1285 + <template #footer>
  1286 + <div style="display: flex; justify-content: flex-end; align-items: center;">
  1287 + <el-button class="buttonHover"
  1288 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  1289 + @click="closeFn(2)">返回</el-button>
  1290 + <el-button style="background-color: #3F9B6A;color: #fff" @click="bianCheck">确认</el-button>
  1291 + </div>
  1292 + </template>
  1293 + </el-dialog>
  1294 +
  1295 + <!-- 禁用 -->
  1296 +
  1297 + <el-dialog :visible.sync="downShow" custom-class="tongyong_css" style="padding: 0;" width="50%" center
  1298 + :close-on-click-modal="false" append-to-body>
  1299 + <div style="padding:20px;">
  1300 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">禁用</div>
  1301 + <div style="padding:30px 0px 0px">
  1302 + <el-form ref="opinionForm" :model="opinionDel" :rules="pinForm" label-width="120px"
  1303 + style="position: relative">
  1304 + <el-form-item label="禁用原因" class="grid-content bg-purple" prop="name">
  1305 + <el-input v-model="opinionDel.opinionDelisting" type="textarea" placeholder="请输入禁用原因" />
  1306 + </el-form-item>
  1307 +
  1308 + </el-form>
  1309 + </div>
  1310 + <div style="display:flex;justify-content: flex-end;padding:20px;">
  1311 + <el-button style="background-color: #3F9B6A;color: #fff;" @click="downShow = false">取消</el-button>
  1312 + <el-button style="background-color: #3F9B6A;color: #fff;" @click="downShowCheck">确定</el-button>
  1313 + </div>
  1314 + </div>
  1315 + </el-dialog>
  1316 + <el-dialog :visible.sync="yulanShow" custom-class="tongyong_css" style="padding: 0;" width="43%" center
  1317 + :close-on-click-modal="false" append-to-body>
  1318 + <div style="padding:20px;">
  1319 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">预览</div>
  1320 + <div style="margin:auto;width:50%;height:600px;overflow-y: auto;overflow-x: hidden;">
  1321 + <div style="padding:20px;background-color: #f6f6f6;">
  1322 + <div>
  1323 + <h2 style="color: #000;text-align:center">{{ secondData.title }}</h2>
  1324 +
  1325 + <div class="" style="padding: 10px 0;">
  1326 + <img :src="this.$hostUrl + secondData.coverImage"
  1327 + style="width:100%;border-radius: 10px;"></img>
  1328 + </div>
  1329 + </div>
  1330 + <div style="padding: 15px;background-color: #fff;border-radius: 10px;">
  1331 + <div v-html="secondData.remarks">
  1332 +
  1333 + <!-- <div>
1220 <div style="display:flex;padding:10px 0;justify-content: space-between;"> 1334 <div style="display:flex;padding:10px 0;justify-content: space-between;">
1221 <div style="display:flex;"> 1335 <div style="display:flex;">
1222 1336
@@ -1226,44 +1340,59 @@ @@ -1226,44 +1340,59 @@
1226 {{secondData.createTime}} 1340 {{secondData.createTime}}
1227 </div> 1341 </div>
1228 </div> 1342 </div>
1229 - </div>  
1230 - </div>  
1231 - </div>  
1232 -  
1233 - <div class="question" v-for="(item,index) in secondData.question">  
1234 - <p class="question-title">  
1235 - <span v-if="item.required == '必填'" style="color: red;">*</span>  
1236 - {{index}}.<span style="">({{item.type}})</span>  
1237 - {{item.title}}  
1238 - </p>  
1239 - <div>  
1240 -  
1241 - <el-radio-group v-for="(val, idx) in item.options" v-if="item.type =='单选'" :key="idx"  
1242 - style="display: content;flex-direction: column;width:100%;margin:0 0 4px 0">  
1243 - <el-radio disabled>  
1244 - <snap style=" white-space: normal !important; 1343 + </div> -->
  1344 + </div>
  1345 + </div>
  1346 + <div v-for="(item, index) in secondData.question" class="question">
  1347 + <p class="question-title">
  1348 + <span v-if="item.required == '必填'" style="color: red;">*</span>
  1349 + {{ index }}.<span style="">({{ item.type }})</span>
  1350 + {{ item.title }}
  1351 + </p>
  1352 + <div>
  1353 +
  1354 +
  1355 + <el-radio-group v-for="(val, idx) in item.options"
  1356 + v-if="item.type == '单选' && item.layoutType != 2" :key="idx"
  1357 + style="display: content;flex-direction: column;width:100%;margin:0 0 4px 0">
  1358 + <el-radio disabled>
  1359 + <snap style=" white-space: normal !important;
1245 word-break: break-all !important;"> 1360 word-break: break-all !important;">
1246 - {{val.answer}}  
1247 - </snap>  
1248 - </el-radio>  
1249 -  
1250 - </el-radio-group>  
1251 - <el-checkbox-group v-for="(val, idx) in item.options" v-if="item.type =='多选'" :key="idx"  
1252 - style="display: content;flex-direction: column;width:100%;margin:0 0 4px 0">  
1253 - <el-checkbox disabled>  
1254 - <snap style=" white-space: normal !important; 1361 + {{ val.answer }}
  1362 + </snap>
  1363 + </el-radio>
  1364 +
  1365 + </el-radio-group>
  1366 + <div v-if="item.type == '单选' && item.layoutType == 2"
  1367 + style="display: flex;width: 100%;flex-wrap: wrap;">
  1368 + <div class="answerItem" v-for="(val, idx) in item.options" :key="idx">
  1369 + {{ val.answer }}
  1370 + </div>
  1371 + </div>
  1372 + <el-checkbox-group v-for="(val, idx) in item.options"
  1373 + v-if="item.type == '多选' && item.layoutType != 2" :key="idx"
  1374 + style="display: content;flex-direction: column;width:100%;margin:0 0 4px 0">
  1375 + <el-checkbox disabled>
  1376 + <snap style=" white-space: normal !important;
1255 word-break: break-all !important;"> 1377 word-break: break-all !important;">
1256 - {{val.answer}}  
1257 - </snap>  
1258 - </el-checkbox>  
1259 - </el-checkbox-group>  
1260 - <div v-if="item.type =='文本'">  
1261 - <el-input v-model="model1.name" placeholder="请输入" disabled style="width:80%"></el-input>  
1262 -  
1263 - </div>  
1264 - </div>  
1265 - </div>  
1266 - <!-- <div class="question" v-for="(item,index) in secondData.cereQuestionManagements"> 1378 + {{ val.answer }}
  1379 + </snap>
  1380 + </el-checkbox>
  1381 + </el-checkbox-group>
  1382 +
  1383 + <div v-if="item.type == '多选' && item.layoutType == 2"
  1384 + style="display: flex;width: 100%;flex-wrap: wrap;">
  1385 + <div class="answerItem" v-for="(val, idx) in item.options" :key="idx">
  1386 + {{ val.answer }}
  1387 + </div>
  1388 + </div>
  1389 + <div v-if="item.type == '文本'">
  1390 + <el-input v-model="model1.name" placeholder="请输入" disabled style="width:80%" />
  1391 +
  1392 + </div>
  1393 + </div>
  1394 + </div>
  1395 + <!-- <div class="question" v-for="(item,index) in secondData.cereQuestionManagements">
1267 <p class="question-title"><span v-if="item.isRequired.includes('必填')" 1396 <p class="question-title"><span v-if="item.isRequired.includes('必填')"
1268 style="color: red;">*</span>{{index + 1}}.<span style="">({{item.questionType}})</span> 1397 style="color: red;">*</span>{{index + 1}}.<span style="">({{item.questionType}})</span>
1269 {{item.tikuTitle}} 1398 {{item.tikuTitle}}
@@ -1286,1604 +1415,1835 @@ @@ -1286,1604 +1415,1835 @@
1286 </div> 1415 </div>
1287 </div> --> 1416 </div> -->
1288 1417
1289 - <!-- 文本填写问题 -->  
1290 - <div class="">  
1291 - <!-- <p class="question-title">您的建议:</p > 1418 + <!-- 文本填写问题 -->
  1419 + <div class="">
  1420 + <!-- <p class="question-title">您的建议:</p >
1292 <textarea v-model="suggestion"></textarea> --> 1421 <textarea v-model="suggestion"></textarea> -->
1293 - <el-form label-position="right" :model="model1" style="background-color:#fff;border-radius: 10px;">  
1294 - <el-form-item label="姓名" prop="name" v-if="secondData.needName == '必填'"  
1295 - style="padding:10px 10px 0 10px;">  
1296 - <el-input v-model="model1.name" placeholder="请输入姓名" disabled style="width:80%"></el-input>  
1297 - </el-form-item>  
1298 - <el-form-item label="电话" prop="phone" v-if="secondData.needPhone == '必填'" style="padding: 0 10px;">  
1299 - <el-input v-model="model1.phone" placeholder="请输入电话" disabled style="width:80%"></el-input>  
1300 - </el-form-item>  
1301 - <el-form-item label="性别" prop="sex" v-if="secondData.needGender == '必填'" style="padding: 0 10px ;">  
1302 - <el-input v-model="model1.sex" placeholder="请输入性别" disabled style="width:80%"></el-input>  
1303 - </el-form-item>  
1304 - <el-form-item label="意见" prop="yij" v-if="secondData.needOpinion == '必填'"  
1305 - style="padding:0 10px 10px 10px;">  
1306 - <el-input type="textarea" v-model="model1.yij" placeholder="请输入内容" disabled  
1307 - style="width:80%"></el-input>  
1308 - </el-form-item>  
1309 - </el-form>  
1310 -  
1311 - </div>  
1312 -  
1313 - <el-button style="background-color: #3F9B6A;color: #fff;width:100%">提交问卷</el-button>  
1314 - </div>  
1315 - </div>  
1316 - <div style="padding:30px 0px 0px" v-if="secondData.reviewStatus == '3'">  
1317 -  
1318 - 问卷作答地址:{{wenjuanUrl}} <span style="color:#3F9B6A" @click="copyUrl(wenjuanUrl)">复制</span>  
1319 - </div>  
1320 - <div style="display:flex;justify-content: flex-end;padding:20px;">  
1321 - <el-button @click="yulanShow=false" style="background-color: #3F9B6A;color: #fff;">取消</el-button>  
1322 -  
1323 - </div>  
1324 - </div>  
1325 - </el-dialog>  
1326 - </div>  
1327 - 1422 + <el-form label-position="right" :model="model1"
  1423 + style="background-color:#fff;border-radius: 10px;">
  1424 + <el-form-item v-if="secondData.needName == '必填'" label="姓名" prop="name"
  1425 + style="padding:10px 10px 0 10px;">
  1426 + <el-input v-model="model1.name" placeholder="请输入姓名" disabled style="width:80%" />
  1427 + </el-form-item>
  1428 + <el-form-item v-if="secondData.needPhone == '必填'" label="电话" prop="phone"
  1429 + style="padding: 0 10px;">
  1430 + <el-input v-model="model1.phone" placeholder="请输入电话" disabled style="width:80%" />
  1431 + </el-form-item>
  1432 + <el-form-item v-if="secondData.needGender == '必填'" label="性别" prop="sex"
  1433 + style="padding: 0 10px ;">
  1434 + <el-input v-model="model1.sex" placeholder="请输入性别" disabled style="width:80%" />
  1435 + </el-form-item>
  1436 + <el-form-item v-if="secondData.needOpinion == '必填'" label="意见" prop="yij"
  1437 + style="padding:0 10px 10px 10px;">
  1438 + <el-input v-model="model1.yij" type="textarea" placeholder="请输入内容" disabled
  1439 + style="width:80%" />
  1440 + </el-form-item>
  1441 + </el-form>
  1442 +
  1443 + </div>
  1444 +
  1445 + <el-button style="background-color: #3F9B6A;color: #fff;width:100%">提交问卷</el-button>
  1446 + </div>
  1447 + </div>
  1448 + <!-- <div style="padding:30px 0px 0px" v-if="secondData.reviewStatus == '3'"> -->
  1449 + <div style="padding:30px 0px 0px">
  1450 + 问卷作答地址:{{ wenjuanUrl }} <span style="color:#3F9B6A" @click="copyUrl(wenjuanUrl)">复制</span>
  1451 + </div>
  1452 + <div style="display:flex;justify-content: flex-end;padding:20px;">
  1453 + <el-button style="background-color: #3F9B6A;color: #fff;" @click="yulanShow = false">取消</el-button>
  1454 +
  1455 + </div>
  1456 + </div>
  1457 + </el-dialog>
  1458 + <el-dialog :visible.sync="iframaShow" title="创建活动" width="90%" center top="1%" :close-on-click-modal="false"
  1459 + append-to-body>
  1460 + <div style="padding:20px;">
  1461 + <iframe :src="iframaUrl" ref="iframe" frameborder="0" width="100%" height="700px" />
  1462 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  1463 + </div>
  1464 + </div>
  1465 +
  1466 + </el-dialog>
  1467 + </div>
1328 1468
1329 </template> 1469 </template>
1330 1470
1331 <script> 1471 <script>
1332 - import {  
1333 - async  
1334 - } from 'q'  
1335 - import Vue from 'vue'  
1336 - import axios from 'axios'  
1337 - import DynamicChartTable from '@/components/dajuanTongji/index.vue'  
1338 - import tiaoxing from '@/components/dajuanTongji/tiaoxing.vue'  
1339 - import {  
1340 - TerminaGetAll,  
1341 - TerminaAdd,  
1342 - TerminaEdit,  
1343 - TerminaDel,  
1344 - QuestionGetAll,  
1345 - QuestionAdd,  
1346 - } from '../../api/investigation.js'  
1347 - import upimg from "@/components/ImageUpload/index"  
1348 - export default {  
1349 - components: {  
1350 - upimg,  
1351 - DynamicChartTable,  
1352 - tiaoxing  
1353 - },  
1354 - data() {  
1355 - return {  
1356 -  
1357 - tableHeight: 600, // 设置为你想要的表格高度,单位是像素  
1358 - rid: '男',  
1359 - checkList: ['服务态度差'],  
1360 - chartTitle: '题目',  
1361 - chartOptions: {},  
1362 - listOne: [],  
1363 - listTwo: [],  
1364 - listThree: [],  
1365 -  
1366 - hetongBox: false,  
1367 - detbox: false, //详情  
1368 - leixing: true, //切换  
1369 - index: 1,  
1370 - currentPage: 1,  
1371 - total: 10,  
1372 - flag: false,  
1373 - flag1: false,  
1374 - currentPage1: 1,  
1375 - total1: 10,  
1376 - pageSize: 10,  
1377 - ggXin: false,  
1378 - formInline: {  
1379 - createUser: '',  
1380 - title: '',  
1381 - startDate: '',  
1382 - endDate: '',  
1383 - publishPort: '',  
1384 - questionnaireType: '',  
1385 - estimatedTime: null,  
1386 - remarks: '',  
1387 - filler: '',  
1388 - fillingConditions: '可重复填写',  
1389 - coverImage: '',  
1390 - rewardForParticipation: '不设置奖励',  
1391 - questionId: '',  
1392 - responseStatus: '',  
1393 - reviewStatus: '1',  
1394 - needName: '必填',  
1395 - needPhone: '必填',  
1396 - needGender: '必填',  
1397 - needOpinion: '必填',  
1398 - },  
1399 - Xin_Time: [],  
1400 - plan_Time: [],  
1401 - followUpTime: [],  
1402 - tableData: [],  
1403 - secondData: {},  
1404 - formSel: {  
1405 - title: '',  
1406 - questionnaireType: '',  
1407 - reviewStatus: '',  
1408 - pageNumber: 0,  
1409 - pageSize: 10,  
1410 - },  
1411 - pageindex: {  
1412 - pageNumber: 0,  
1413 - pageSize: 10,  
1414 - },  
1415 - bianjiBox: 1,  
1416 - chengeTatle: 1,  
1417 - zhong: {  
1418 - tikuTitle: '',  
1419 - questionType: '',  
1420 - questionBank: '用户端题库',  
1421 - isRequired: '必填',  
1422 - questionDescription: '',  
1423 - optionSettings: {},  
1424 - },  
1425 - detaiList: {},  
1426 - xiangTabs: 'first',  
1427 - bianjiTabs: 'first',  
1428 - bainjiBox: false,  
1429 - radioValue: 'A', //参与答卷奖励  
1430 - jifen: '', //积分奖励  
1431 - choujiang: '', //转盘抽奖  
1432 - yhq: [], //优惠券确定  
1433 - yhqSel: [], //优惠券选择  
1434 - tikuBox: false, //选择题库框  
1435 - tikuNie: '用户端题库',  
1436 - danxuan: '',  
1437 - manyi: '',  
1438 - timuMsg: '', //题目搜索  
1439 - options: [  
1440 - // { index: 1, name: '男', readonly: true },  
1441 - // { index: 2, name: '女', readonly: true }  
1442 - ],  
1443 - tikuAdd: false, //新增题目  
1444 - tongjiBox: false, //统计  
1445 - daxiangData: {},  
1446 - daxiangBox: false,  
1447 - wenData: [],  
1448 - wenConstData: [],  
1449 - tikuziyuan: [], //题目资源  
1450 - secondDataTi: [], //详情题库  
1451 - labelStyle: {  
1452 - width: '240px'  
1453 - },  
1454 - contentStyle: {  
1455 - width: '246px'  
1456 - },  
1457 - timuXiang: false,  
1458 - timuData: {},  
1459 - multipleSelection: [],  
1460 - xuanzheData: [],  
1461 - rules: {  
1462 - title: [{  
1463 - required: true,  
1464 - message: '请输入问卷标题',  
1465 - trigger: 'blur'  
1466 - }, ],  
1467 - startDate: [{  
1468 - required: true,  
1469 - message: '请选择问卷起止时间',  
1470 - trigger: 'change'  
1471 - }],  
1472 - publishPort: [{  
1473 - required: true,  
1474 - message: '请选择发布端口',  
1475 - trigger: 'change'  
1476 - }],  
1477 - questionnaireType: [{  
1478 - required: true,  
1479 - message: '请选择问卷类型',  
1480 - trigger: 'change'  
1481 - }],  
1482 - estimatedTime: [{  
1483 - required: true,  
1484 - message: '请输入预计填写时长'  
1485 - },  
1486 - {  
1487 - type: 'number',  
1488 - message: '必须为数字值'  
1489 - },  
1490 - {  
1491 - validator: (rule, value, callback) => {  
1492 - if (value <= 0) {  
1493 - callback(new Error('预计填写时长必须大于0'));  
1494 - } else {  
1495 - callback();  
1496 - }  
1497 - }  
1498 - }  
1499 - ],  
1500 -  
1501 - filler: [{  
1502 - required: true,  
1503 - message: '请选择填写人',  
1504 - trigger: 'change'  
1505 - }],  
1506 - fillingConditions: [{  
1507 - required: true,  
1508 - message: '请选择填写条件',  
1509 - trigger: 'change'  
1510 - }],  
1511 - coverImage: [{  
1512 - required: true,  
1513 - message: '请上传问卷封面',  
1514 - trigger: 'change'  
1515 - }],  
1516 - createUser: [{  
1517 - required: true,  
1518 - message: '请输入创建人',  
1519 - trigger: 'blur'  
1520 - }, ],  
1521 - },  
1522 -  
1523 - tixrules: {  
1524 - tikuTitle: [{  
1525 - required: true,  
1526 - message: '请输入题目',  
1527 - trigger: 'blur'  
1528 - }, ],  
1529 - questionType: [{  
1530 - required: true,  
1531 - message: '请选择题型',  
1532 - trigger: 'change'  
1533 - }],  
1534 - questionBank: [{  
1535 - required: true,  
1536 - message: '请选择所属题库',  
1537 - trigger: 'change'  
1538 - }],  
1539 - optionSettings: [{  
1540 - required: true,  
1541 - message: '请设置答案',  
1542 - trigger: 'change'  
1543 - }],  
1544 -  
1545 - },  
1546 - xiajiaId: '',  
1547 - downShow: false,  
1548 - opinionDel: {  
1549 - opinionDelisting: ''  
1550 - },  
1551 - yulanShow: false,  
1552 - wenjuanUrl: '',  
1553 - model1: {},  
1554 - tongjiSshu: [],  
1555 - tongjiTu: {},  
1556 - daanDui: [],  
1557 - tuwent: [],  
1558 -  
1559 - tongjiMsg: {  
1560 - plan_Time: [],  
1561 - userName: '',  
1562 - pageNumber: 0,  
1563 - pageSize: 10,  
1564 - },  
1565 - tiNum: 0,  
1566 - isbutton: false,  
1567 - currentPageList: 1,  
1568 - pickerOptions: {  
1569 - disabledDate(time) {  
1570 - return time.getTime() < Date.now() - 8.64e7; // 禁用当前时间之前的日期  
1571 - }  
1572 - }  
1573 -  
1574 - }  
1575 - },  
1576 - created() {  
1577 -  
1578 - this.getAll()  
1579 - },  
1580 - computed: {  
1581 -  
1582 - },  
1583 - methods: {  
1584 - chenge(val) {  
1585 - this.formSel = {  
1586 - title: '',  
1587 - questionnaireType: '',  
1588 - reviewStatus: '',  
1589 - pageNumber: 0,  
1590 - pageSize: 10,  
1591 - }  
1592 - this.leixing = !this.leixing  
1593 - this.chengeTatle = val  
1594 - },  
1595 - async getAll() {  
1596 - const res = await TerminaGetAll(this.pageindex)  
1597 - this.tableData = res.data.content  
1598 - this.total = res.data.totalElements  
1599 - },  
1600 -  
1601 - // 新增确定按钮  
1602 - addCheck(val) {  
1603 -  
1604 - this.$refs.inlineform.validate((valid) => {  
1605 - if (valid) {  
1606 -  
1607 - if (this.Xin_Time != null) {  
1608 - this.formInline.startDate = this.Xin_Time[0]  
1609 - this.formInline.endDate = this.Xin_Time[1]  
1610 - } else {  
1611 - this.$message({  
1612 - message: '请选择问卷时间',  
1613 - })  
1614 - return false;  
1615 - }  
1616 - if (this.formInline.rewardForParticipation == '奖励积分') {  
1617 - if (this.jifen == '') {  
1618 - this.$message({  
1619 - message: '请输入设置的积分',  
1620 - })  
1621 - return false;  
1622 - }  
1623 - } else {  
1624 - // this.formInline.rewardForParticipation =  
1625 - }  
1626 - if (this.formInline.rewardForParticipation == '转盘抽奖') {  
1627 - if (this.choujiang == '') {  
1628 - this.$message({  
1629 - message: '请输入转盘抽奖次数',  
1630 - })  
1631 - return false;  
1632 - }  
1633 - }  
1634 - let ids = null  
1635 - if (this.wenConstData.length != 0) {  
1636 - ids = this.wenConstData.map(item => item.id);  
1637 - this.formInline.questionId = ids.join(',')  
1638 - } else {  
1639 - this.$message({  
1640 - message: '请选择问题',  
1641 - })  
1642 - return false;  
1643 - }  
1644 - this.formInline.createTime = this.currentTime()  
1645 - TerminaAdd(this.formInline).then(res => {  
1646 - if (res.data.code == '500') {  
1647 - this.$message({  
1648 - message: res.data.message,  
1649 - type: 'error'  
1650 - })  
1651 - } else {  
1652 - this.$message({  
1653 - message: '保存成功',  
1654 - type: 'success'  
1655 - })  
1656 - this.ggXin = false  
1657 - this.getAll()  
1658 - this.$refs.inlineform.resetFields()  
1659 - this.$refs.ziyuanData.clearSelection();  
1660 - this.multipleSelection =[]  
1661 - }  
1662 -  
1663 -  
1664 - })  
1665 -  
1666 -  
1667 - } else {  
1668 - this.$message({  
1669 - message: '请填写完整信息',  
1670 - type: 'error'  
1671 - })  
1672 - return false;  
1673 - }  
1674 - })  
1675 - },  
1676 - // 获取时间  
1677 - currentTime() {  
1678 - let date = new Date();  
1679 - let year = date.getFullYear();  
1680 - let month = date.getMonth() + 1; // 月份从0~11,所以加一  
1681 - let day = date.getDate();  
1682 - let hours = date.getHours();  
1683 - let minutes = date.getMinutes();  
1684 - let seconds = date.getSeconds();  
1685 -  
1686 - // 为月、日、小时、分钟和秒添加前导零(如果需要)  
1687 - month = month < 10 ? '0' + month : month;  
1688 - day = day < 10 ? '0' + day : day;  
1689 - hours = hours < 10 ? '0' + hours : hours;  
1690 - minutes = minutes < 10 ? '0' + minutes : minutes;  
1691 - seconds = seconds < 10 ? '0' + seconds : seconds;  
1692 -  
1693 - // 返回格式化的日期和时间字符串  
1694 - return `${year}-${month}-${day} ${hours}:${minutes}`;  
1695 - },  
1696 -objectToArray(obj) {  
1697 - return Object.keys(obj).map(key => {  
1698 - const item = obj[key];  
1699 - return {  
1700 - id: key,  
1701 - ...item  
1702 - }  
1703 - })  
1704 -},  
1705 -  
1706 - //详情  
1707 - details(val, item) {  
1708 -  
1709 - this.detbox = true  
1710 - this.secondData = item  
1711 - if(typeof item.question =='string'){  
1712 - item.question = JSON.parse(item.question)  
1713 -  
1714 - }  
1715 - const array = this.objectToArray(item.question)  
1716 -  
1717 - this.wenData = array  
1718 - // this.secondData.cereQuestionManagements.map((res, index) => {  
1719 - // if (typeof res.optionSettings == 'string') {  
1720 - // res.optionSettings = JSON.parse(res.optionSettings)  
1721 -  
1722 - // }  
1723 - // })  
1724 - },  
1725 -  
1726 - addbuss(val, item) {  
1727 - this.index = val  
1728 - this.detbox = false  
1729 - this.ggXin = true  
1730 -  
1731 -  
1732 - },  
1733 -  
1734 - handleCurrentChange1(val) {  
1735 - this.tongjiMsg.pageNumber = val - 1  
1736 - if (this.tongjiMsg.plan_Time.length > 0) {  
1737 - this.tongjiMsg.createTime = this.tongjiMsg.plan_Time[0]  
1738 - }  
1739 - this.tongjiMsg.questionnaireId = this.secondData.id  
1740 - axios.post(`${this.$API}/cereQuestionnaireAnswering/queryByPage`, this.tongjiMsg)  
1741 - .then(  
1742 - response => {  
1743 - // console.log(response.data.data.)  
1744 - this.tongjiSshu = response.data.data.content  
1745 - this.total1 = response.data.data.totalElements  
1746 - })  
1747 - },  
1748 - handleSizeChange(val) {  
1749 - this.pageSize = val  
1750 - },  
1751 - handleCurrentChange(val) {  
1752 -  
1753 - this.pageindex = {  
1754 - pageNumber: val - 1,  
1755 - pageSize: 10,  
1756 - }  
1757 -  
1758 - TerminaGetAll(this.pageindex).then(res => {  
1759 - this.tableData = res.data.content  
1760 - })  
1761 - },  
1762 - closeFn(val) {  
1763 - this.bianjiBox = 1  
1764 - if (val == 1) {  
1765 - this.$refs.inlineform.resetFields()  
1766 - this.ggXin = false  
1767 - } else {  
1768 - this.$refs.bianform.resetFields()  
1769 - this.bainjiBox = false  
1770 - }  
1771 - },  
1772 - // 详情编辑  
1773 - async bianji() {  
1774 - if (this.bianjiBox == 1) {  
1775 - this.bianjiBox = 2  
1776 - } else {  
1777 - this.bianjiBox = 1  
1778 -  
1779 - let formList = {}  
1780 - let res = await TerminaEdit(formList)  
1781 -  
1782 - this.detbox = false  
1783 - }  
1784 -  
1785 - },  
1786 - //查看合同  
1787 - lookHetong(val) {  
1788 - this.hetongBox = true  
1789 - },  
1790 - // 查询按钮  
1791 - async onSubmit() {  
1792 - this.isbutton = true;  
1793 - const res = await TerminaGetAll(this.formSel)  
1794 - this.tableData = res.data.content  
1795 - this.total = res.data.totalElements  
1796 - this.isbutton = false;  
1797 - },  
1798 - //重置按钮  
1799 - resetting() {  
1800 - this.formSel = {  
1801 - title: '',  
1802 - questionnaireType: '',  
1803 - reviewStatus: '',  
1804 - pageNumber: 0,  
1805 - pageSize: 10,  
1806 - },  
1807 - this.currentPageList = 1  
1808 - this.pageindex.pageNumber = 0  
1809 - this.getAll()  
1810 - },  
1811 - radioClick(value) {  
1812 -  
1813 - if (value === '不设置奖励') {  
1814 - this.jifen = '' //积分奖励  
1815 - this.choujiang = '' //转盘抽奖  
1816 - this.yhq = [] //优惠券确定  
1817 - } else if (value === '奖励积分') {  
1818 - this.choujiang = '' //转盘抽奖  
1819 - this.yhq = [] //优惠券确定  
1820 - } else if (value === '转盘抽奖') {  
1821 - this.jifen = ''  
1822 - this.yhq = []  
1823 - } else if (value === '优惠券') {  
1824 - this.jifen = '' //积分奖励  
1825 - this.choujiang = '' //转盘抽奖  
1826 - }  
1827 - },  
1828 - async selTiku() {  
1829 - this.tiNum = 0  
1830 - // this.zhong = {  
1831 - // tikuTitle:'',  
1832 - // questionType:'',  
1833 - // questionBank:'用户端题库',  
1834 - // isRequired:'',  
1835 - // questionDescription:'',  
1836 - // optionSettings:{},  
1837 - // }  
1838 - this.tikuNie = '用户端题库'  
1839 - this.tikuBox = true  
1840 - let page = {  
1841 - pageNumber: 0,  
1842 - pageSize: 10,  
1843 - questionBank: '用户端题库',  
1844 - }  
1845 -  
1846 - const tiku = await QuestionGetAll(page)  
1847 - this.tikuziyuan = tiku.data.content  
1848 -  
1849 - },  
1850 - addOption() {  
1851 - const newOption = {  
1852 - index: this.options.length + 1,  
1853 - name: '',  
1854 - readonly: false  
1855 - };  
1856 - this.options.push(newOption);  
1857 - },  
1858 - deleteOption(index) {  
1859 - this.options.splice(index, 1);  
1860 - },  
1861 - bianls(item) {  
1862 - this.secondData = item  
1863 - Vue.set(this.plan_Time, 0, this.secondData.startDate)  
1864 - Vue.set(this.plan_Time, 1, this.secondData.endDate)  
1865 - if (typeof item.question == 'string') {  
1866 - item.question = JSON.parse(item.question)  
1867 - }  
1868 -  
1869 - console.log(item.question)  
1870 - this.secondDataTi = item.cereQuestionManagements  
1871 - this.bainjiBox = true  
1872 -  
1873 - },  
1874 - bianCheck() {  
1875 -  
1876 - if (this.secondData && this.secondData.cereQuestionManagements) {  
1877 - delete this.secondData.cereQuestionManagements;  
1878 - }  
1879 - if (typeof this.secondData.question == 'object') {  
1880 - this.secondData.question = JSON.stringify(this.secondData.question)  
1881 - }  
1882 - if (this.plan_Time.length != 0) {  
1883 - this.secondData.startDate = this.plan_Time[0]  
1884 - this.secondData.endDate = this.plan_Time[1]  
1885 - }  
1886 -  
1887 - let ids = []  
1888 - if (this.secondDataTi.length != 0) {  
1889 - ids = this.secondDataTi.map(item => item.id);  
1890 - }  
1891 - this.secondData.questionId = ids.join(',')  
1892 - this.secondData.updateTime = this.currentTime()  
1893 - TerminaEdit(this.secondData).then(res => {  
1894 - this.bainjiBox = false  
1895 - this.getAll()  
1896 - })  
1897 -  
1898 -  
1899 - },  
1900 - tongji(item) {  
1901 - this.tongjiMsg = {  
1902 - plan_Time: [],  
1903 - userName: '',  
1904 - pageNumber: 0,  
1905 - pageSize: 10,  
1906 -  
1907 - }  
1908 - var that = this;  
1909 - this.secondData = item  
1910 - this.secondData.cereQuestionManagements.map((res, index) => {  
1911 - if (typeof res.optionSettings == 'string') {  
1912 - res.optionSettings = JSON.parse(res.optionSettings)  
1913 - }  
1914 - this.secondData.cereQuestionManagements[index].ziduan = []  
1915 - })  
1916 -  
1917 -  
1918 - const postData = {  
1919 - questionnaireId: item.id,  
1920 - }  
1921 -  
1922 - const postList = {  
1923 - pageNumber: 0,  
1924 - pageSize: 10,  
1925 - questionnaireId: item.id,  
1926 - }  
1927 - // axios.post('https://jy.scjysm.asia:18086/meserver/api/cereQuestionnaireAnswering/queryByPage', postData).then(  
1928 - // axios.post('https://jy.scjysm.asia:18086/meserver/api', postData)  
1929 - axios.post(`${this.$API}/cereQuestionnaireAnswering/queryByPage`, postList).then(  
1930 - response => {  
1931 -  
1932 - this.tongjiSshu = response.data.data.content  
1933 - this.total1 = response.data.data.totalElements  
1934 - })  
1935 - axios.post(`${this.$API}/cereQuestionnaireAnswering/statistics`, postData).then(  
1936 - response => {  
1937 -  
1938 - let obj = response.data.data  
1939 -  
1940 -  
1941 - // for(let i =0;i<obj.cereQuestionnaireTable.cereQuestionManages.length;i++){  
1942 - // if(obj.cereQuestionnaireTable.cereQuestionManages[i].questionType=='文本'){  
1943 - // obj.cereQuestionnaireTable.cereQuestionManages.splice(i, 1)  
1944 - // }  
1945 - // }  
1946 -  
1947 -  
1948 - // let NewArr = obj.cereQuestionnaireTable.cereQuestionManagements.filter((res, index) => {  
1949 - // return res.questionType != '文本';  
1950 - // })  
1951 - // obj.cereQuestionnaireTable.cereQuestionManagements = NewArr  
1952 - // let groundkey = response.data.data.groupKeys.filter((res, index) => {  
1953 - // return res.answer != '';  
1954 - // })  
1955 - // obj.groupKeys = groundkey  
1956 - this.tongjiTu = obj  
1957 - var tuwent = [],  
1958 - tlist = [];  
1959 - if (typeof response.data.data.cereQuestionnaireTable.question == 'string') {  
1960 - this.tuwent = JSON.parse(response.data.data.cereQuestionnaireTable.question)  
1961 - }  
1962 -  
1963 - // console.log('11111111111111111111111',this.tuwent);  
1964 - // var i = 1;  
1965 - // for(item in tuwent){  
1966 - // var tm = tuwent[item];  
1967 - // if(tm.type !='文本') {  
1968 - // var titem = {};  
1969 - // titem[i] = tm; tlist.push(titem);  
1970 -  
1971 - // }  
1972 - // }  
1973 - this.tongjiBox = true  
1974 - var that = this;  
1975 -  
1976 - this.$nextTick(function() {  
1977 - try {  
1978 - if(that.tuwent)  
1979 - for (var i in that.tuwent) {  
1980 - try {  
1981 - that.$refs['chat' + i][0].init(obj)  
1982 - } catch (e) {  
1983 - console.error('chat refs init error',e);  
1984 - }  
1985 -  
1986 - }  
1987 - else {  
1988 - console.log('tuwent is null',that.tuwent)  
1989 - }  
1990 - } catch (e) {  
1991 - console.error('chat error',e);  
1992 - }  
1993 -  
1994 -  
1995 - });  
1996 - // this.tuwent = tlist;  
1997 - // console.log('tlist=',tlist);  
1998 - // this.tuwent = Object.values(this.tuwent).filter(res => res.type !== '文本');  
1999 - })  
2000 -  
2001 - },  
2002 - xuanxiang(obj) {  
2003 - const result = [];  
2004 -  
2005 - for (const key in obj) {  
2006 - if (obj.hasOwnProperty(key)) {  
2007 - const item = obj[key];  
2008 - const [type, titleAndOptions] = item.split('$');  
2009 -  
2010 - const [isRequired, options] = titleAndOptions.split('#');  
2011 -  
2012 - const [title, values] = options.split(':');  
2013 -  
2014 - const [optionsPart, valuesPart] = values.split('>');  
2015 -  
2016 - const optionArray = optionsPart.split('^').map(part => part.split('|')[1]);  
2017 -  
2018 - const valueArray = valuesPart ? valuesPart.split('^').map(part => part.split('|')[1]) : [];  
2019 -  
2020 - result.push({  
2021 - type: type.trim(),  
2022 - ispu: isRequired.trim(),  
2023 - timu: title.trim(),  
2024 - xuanxiang: optionArray,  
2025 - xuanval: valueArray  
2026 - });  
2027 - }  
2028 - }  
2029 -  
2030 - return result;  
2031 - },  
2032 - daxiang(item) {  
2033 - this.daxiangData = item  
2034 -  
2035 - let selectoptions = null  
2036 -  
2037 - if (typeof this.daxiangData.question == 'string') {  
2038 - this.daxiangData.question = JSON.parse(this.daxiangData.question)  
2039 - }  
2040 - // this.daxiangData.question = this.xuanxiang(question)  
2041 -  
2042 - // for (const key in this.daxiangData.question) {  
2043 - // if(this.daxiangData.question[key].type=='多选' && typeof this.daxiangData.question[key] =='string'){  
2044 - // this.daxiangData.question[key].choose = this.daxiangData.question[key].choose.split(",")  
2045 - // }  
2046 - // }  
2047 -  
2048 - this.secondData.cereQuestionManagements.map((res, index) => {  
2049 -  
2050 - if (this.daanDui[index]) {  
2051 - let obj = this.daanDui[index].split(',')  
2052 - res.ziduan = obj  
2053 - }  
2054 -  
2055 -  
2056 - })  
2057 -  
2058 -  
2059 - this.daxiangBox = true  
2060 - },  
2061 -  
2062 - // 新增题库  
2063 - Addtiku(val) {  
2064 - let that = this  
2065 -  
2066 - if (this.zhong.tikuTitle == '') {  
2067 - this.$message({  
2068 - message: '请输入题目',  
2069 - })  
2070 - return;  
2071 - }  
2072 - if (this.zhong.questionType == '') {  
2073 - this.$message({  
2074 - message: '请选择题型',  
2075 - })  
2076 - return;  
2077 - }  
2078 - if (this.zhong.questionType != '文本' && this.options.length == 0) {  
2079 - this.$message({  
2080 - message: '请添加答案选项',  
2081 - })  
2082 - return;  
2083 - }  
2084 - for(let i =0;i<this.options.length;i++){  
2085 - if(this.options[i].name == ''){  
2086 - this.$message({  
2087 - message: '答案选项不能为空',  
2088 - })  
2089 - return  
2090 - }  
2091 - }  
2092 - this.zhong.optionSettings = this.options.reduce((accumulator, current) => {  
2093 - accumulator[current.index] = current.name;  
2094 - return accumulator;  
2095 - }, {}) // 初始化累加器为空对象  
2096 -  
2097 -  
2098 - this.zhong.score = this.options.reduce((accumulator, current) => {  
2099 - accumulator[current.index] = Number(current.num);  
2100 - return accumulator;  
2101 - }, {}) // 初始化累加器为空对象  
2102 -  
2103 - this.zhong.optionSettings = JSON.stringify(this.zhong.optionSettings)  
2104 - this.zhong.score = JSON.stringify(this.zhong.score)  
2105 - this.zhong.createDate = this.currentTime()  
2106 -  
2107 - QuestionAdd(this.zhong).then((res) => {  
2108 -  
2109 - if (val == 1) {  
2110 - that.wenConstData.push(res.data)  
2111 - } else {  
2112 - that.secondDataTi.push(res.data)  
2113 - }  
2114 - this.$message({  
2115 - message: '保存成功',  
2116 - type: 'success'  
2117 - })  
2118 - this.getAll()  
2119 - this.options = []  
2120 -  
2121 - this.multipleSelection =[]  
2122 - this.tikuAdd = false  
2123 - })  
2124 -  
2125 -  
2126 - },  
2127 - // 题库切换选择  
2128 - async tikuchange(val) {  
2129 -  
2130 - let page = {  
2131 - pageNumber: 0,  
2132 - pageSize: 10,  
2133 - questionBank: val,  
2134 - }  
2135 - const tiku = await QuestionGetAll(page)  
2136 - this.tikuziyuan = tiku.data.content  
2137 - },  
2138 -  
2139 - async tikusous() {  
2140 - let page = {  
2141 - pageNumber: 0,  
2142 - pageSize: 10,  
2143 - questionBank: this.tikuNie,  
2144 - questionType: this.danxuan,  
2145 - tikuTitle: this.timuMsg,  
2146 - }  
2147 - const tiku = await QuestionGetAll(page)  
2148 - this.tikuziyuan = tiku.data.content  
2149 - },  
2150 - async tikuclose() {  
2151 -  
2152 - this.tikuNie = '用户端题库'  
2153 - this.danxuan = ''  
2154 - this.timuMsg = ''  
2155 - this.manyi = ''  
2156 - let page = {  
2157 - pageNumber: 0,  
2158 - pageSize: 10,  
2159 - questionBank: this.tikuNie,  
2160 - }  
2161 - const tiku = await QuestionGetAll(page)  
2162 - this.tikuziyuan = tiku.data.content  
2163 - },  
2164 - gotimuxiang(item) {  
2165 - this.timuData = item  
2166 - if (typeof item.optionSettings != 'object') {  
2167 - this.timuData.optionSettings = JSON.parse(item.optionSettings)  
2168 - }  
2169 - this.timuXiang = true  
2170 - },  
2171 - handleSelectionChange(val) {  
2172 -  
2173 - // if(this.tikuNie =='用户端题库'){  
2174 - // this.listOne = val  
2175 - // }else if(this.tikuNie =='商户端题库'){  
2176 - // this.listTwo = val  
2177 -  
2178 - // }else{  
2179 - // this.listThree = val  
2180 - // }  
2181 -  
2182 -  
2183 -  
2184 - this.multipleSelection = val  
2185 -  
2186 - // this.xuanzheData = this.xuanzheData.concat(val)  
2187 - // this.xuanzheData = [...new Set(this.xuanzheData)]  
2188 -  
2189 - },  
2190 - tiSelQue(val) {  
2191 -  
2192 - if (val == 1) {  
2193 - // wenConstData secondDataTi  
2194 -  
2195 - // this.wenConstData = [...this.listOne, ...this.listTwo, ...this.listThree]  
2196 - this.multipleSelection.forEach(item => {  
2197 - const isDuplicate = this.wenConstData.some(existingItem => existingItem.id === item.id);  
2198 - if (!isDuplicate) {  
2199 - this.wenConstData.push(item);  
2200 - }  
2201 - })  
2202 - } else {  
2203 -  
2204 - this.multipleSelection.forEach(item => {  
2205 - const isDuplicate = this.secondDataTi.some(existingItem => existingItem.id === item.id);  
2206 - if (!isDuplicate) {  
2207 - this.secondDataTi.push(item);  
2208 - }  
2209 - });  
2210 -  
2211 -  
2212 - }  
2213 - this.tikuBox = false  
2214 - },  
2215 - delWenCon(val, index) {  
2216 - if (val == '1') {  
2217 - this.xuanzheData.splice(index, 1)  
2218 - this.wenConstData.splice(index, 1)  
2219 - } else {  
2220 - this.secondDataTi.splice(index, 1)  
2221 - }  
2222 - },  
2223 - fabu(val, item) {  
2224 - const h = this.$createElement;  
2225 - this.$msgbox({  
2226 - title: '消息',  
2227 - message: h('p', null, [  
2228 - h('span', null, '是否提交 '),  
2229 - ]),  
2230 - showCancelButton: true,  
2231 - showClose: false,  
2232 - confirmButtonText: '确定',  
2233 - cancelButtonText: '取消',  
2234 - customClass: 'oe-dialog-btn',  
2235 - beforeClose: (action, instance, done) => {  
2236 - if (action === 'confirm') {  
2237 - TerminaEdit({  
2238 - id: item.id,  
2239 - reviewStatus: val  
2240 - }).then(res => {  
2241 - this.getAll()  
2242 - done();  
2243 - })  
2244 - } else {  
2245 - done();  
2246 - }  
2247 - }  
2248 - })  
2249 - },  
2250 - downs(item) {  
2251 - this.xiajiaId = item.id  
2252 - this.downShow = true  
2253 - },  
2254 - async downShowCheck() {  
2255 - if (this.opinionDel.opinionDelisting == '') {  
2256 - this.$message({  
2257 - message: '请输入禁用原因',  
2258 - })  
2259 - return;  
2260 - }  
2261 - await TerminaEdit({  
2262 - id: this.xiajiaId,  
2263 - reviewStatus: '5',  
2264 - opinionDelisting: this.opinionDel.opinionDelisting  
2265 - })  
2266 - this.downShow = false  
2267 - this.getAll()  
2268 - },  
2269 - delwen(item) {  
2270 - const h = this.$createElement;  
2271 - this.$msgbox({  
2272 - title: '消息',  
2273 - message: h('p', null, [  
2274 - h('span', null, '是否删除 '),  
2275 - ]),  
2276 - showCancelButton: true,  
2277 - showClose: false,  
2278 - confirmButtonText: '确定',  
2279 - cancelButtonText: '取消',  
2280 - customClass: 'oe-dialog-btn',  
2281 - beforeClose: (action, instance, done) => {  
2282 - if (action === 'confirm') {  
2283 - TerminaDel({  
2284 - id: item.id  
2285 - }).then(res => {  
2286 - this.getAll()  
2287 - done();  
2288 - })  
2289 - } else {  
2290 - done();  
2291 - }  
2292 - }  
2293 - })  
2294 - },  
2295 - addyu() {  
2296 -  
2297 - },  
2298 - parseData(obj) {  
2299 - const result = [];  
2300 -  
2301 - for (const key in obj) {  
2302 - if (obj.hasOwnProperty(key)) {  
2303 -  
2304 - const item = obj[key];  
2305 - const [type, titleAndOptions] = item.split('$');  
2306 - const [isRequired, options] = titleAndOptions.split('#');  
2307 - const [title, dansi] = options.split(':');  
2308 - const xuanxiang = dansi.split('^').map(option => {  
2309 - const [index, value, score] = option.split('|');  
2310 - return value;  
2311 - });  
2312 -  
2313 - result.push({  
2314 - timu: title,  
2315 - type: type,  
2316 - isphu: isRequired,  
2317 - xuanxiang: xuanxiang  
2318 - });  
2319 - }  
2320 - }  
2321 -  
2322 - return result;  
2323 - },  
2324 - yulan(item) {  
2325 -  
2326 - this.secondData = item  
2327 -  
2328 - if (typeof this.secondData.question != 'object') {  
2329 - this.secondData.question = JSON.parse(this.secondData.question)  
2330 - }  
2331 -  
2332 - const host = window.location.host  
2333 - if (host == '172.16.61.126:8080' || host == '8.130.38.56:8027') {  
2334 - this.wenjuanUrl = `http://${host}/cdwlMall/meh5/pages_category_page1/question/question?ids=${item.id}`  
2335 - // this.wenjuanUrl = `https://${host}/cdwlMall/meh5/pages_category_page1/question/question?ids=${item.id}`  
2336 - } else {  
2337 - this.wenjuanUrl = `https://${host}/cdwlMall/meh5/pages_category_page1/question/question?ids=${item.id}`  
2338 - }  
2339 -  
2340 - this.yulanShow = true  
2341 - },  
2342 - addggXin() {  
2343 - this.formInline = {  
2344 - createUser: '',  
2345 - title: '',  
2346 - startDate: '',  
2347 - endDate: '',  
2348 - publishPort: '',  
2349 - questionnaireType: '',  
2350 - estimatedTime: null,  
2351 - remarks: '',  
2352 - filler: '',  
2353 - fillingConditions: '可重复填写',  
2354 - coverImage: '',  
2355 - rewardForParticipation: '不设置奖励',  
2356 - questionId: '',  
2357 - responseStatus: '',  
2358 - reviewStatus: '1',  
2359 - needName: '必填',  
2360 - needPhone: '必填',  
2361 - needGender: '必填',  
2362 - needOpinion: '必填',  
2363 - }  
2364 - this.xuanzheData = []  
2365 -  
2366 - const today = new Date();  
2367 - const startOfToday = new Date(today.getFullYear(), today.getMonth(), today.getDate());  
2368 - const endOfToday = new Date(today.getFullYear(), today.getMonth(), today.getDate());  
2369 - this.Xin_Time = [this.getCurrentDate(),this.getNextDayDate()]  
2370 - this.wenConstData = []  
2371 - this.ggXin = true  
2372 - },  
2373 - addTikuShow() {  
2374 - this.zhong = {  
2375 - tikuTitle: '',  
2376 - questionType: '',  
2377 - questionBank: '用户端题库',  
2378 - isRequired: '必填',  
2379 - questionDescription: '',  
2380 - optionSettings: {},  
2381 - }  
2382 - this.options = []  
2383 -  
2384 - this.tikuAdd = true  
2385 - },  
2386 - quxiao(val) {  
2387 - this.multipleSelection = []  
2388 - this.options = []  
2389 - if (val == 1) {  
2390 - this.$refs.tixform.resetFields()  
2391 - } else {  
2392 -  
2393 - this.$refs.form.resetFields()  
2394 - }  
2395 - },  
2396 -  
2397 - hangSelchange() {  
2398 - const postList = {  
2399 - pageNumber: 0,  
2400 - pageSize: 10,  
2401 - questionnaireId: item.id,  
2402 - }  
2403 - // axios.post('https://jy.scjysm.asia:18086/meserver/api/cereQuestionnaireAnswering/queryByPage', postData).then(  
2404 - // axios.post('https://jy.scjysm.asia:18086/meserver/api', postData)  
2405 - axios.post(`${this.$API}/cereQuestionnaireAnswering/queryByPage`, postList).then(  
2406 - response => {  
2407 -  
2408 - this.tongjiSshu = response.data.data.content  
2409 - this.total1 = response.data.data.content.length  
2410 - })  
2411 - },  
2412 - secondsToMinutesAndSeconds(s) {  
2413 - // 将输入的秒数转换为数值类型并取整  
2414 - s = Math.floor(Number(s));  
2415 -  
2416 - // 计算分钟和剩余的秒数  
2417 - const minutes = Math.floor(s / 60);  
2418 - let remainingSeconds = s % 60;  
2419 -  
2420 - // 确保剩余的秒数始终是整数  
2421 - remainingSeconds = Math.floor(remainingSeconds);  
2422 -  
2423 - // 根据是否有分钟来返回相应的字符串  
2424 - if (minutes === 0) {  
2425 - return `${remainingSeconds} 秒`;  
2426 - } else {  
2427 - return `${minutes} 分 ${remainingSeconds} 秒`;  
2428 - }  
2429 - },  
2430 -  
2431 - tongjiSubmit() {  
2432 -  
2433 - let page = {  
2434 - pageNumber: 0,  
2435 - pageSize: 10,  
2436 - userName: this.tongjiMsg.userName,  
2437 - questionnaireId: this.secondData.id,  
2438 - }  
2439 -  
2440 - if(this.tongjiMsg.plan_Time.length!=0){  
2441 - page.startTime =this.tongjiMsg.plan_Time[0]  
2442 - page.endTime =this.tongjiMsg.plan_Time[1]  
2443 - }  
2444 -  
2445 -  
2446 - axios.post(`${this.$API}/cereQuestionnaireAnswering/queryByPage`, page).then(  
2447 - response => {  
2448 -  
2449 - this.tongjiSshu = response.data.data.content  
2450 - this.total1 = response.data.data.totalElements  
2451 - })  
2452 - },  
2453 - tongjiSubmitret() {  
2454 - this.tongjiMsg = {  
2455 - plan_Time: [],  
2456 - userName: '',  
2457 - pageNumber: 0,  
2458 - pageSize: 10,  
2459 -  
2460 - }  
2461 - let page = {  
2462 - pageNumber: 0,  
2463 - pageSize: 10,  
2464 - questionnaireId: this.secondData.id,  
2465 - }  
2466 - axios.post(`${this.$API}/cereQuestionnaireAnswering/queryByPage`, page).then(  
2467 - response => {  
2468 -  
2469 - this.tongjiSshu = response.data.data.content  
2470 - this.total1 = response.data.data.totalElements  
2471 - })  
2472 - },  
2473 - copyUrl(url) {  
2474 - const tempTextArea = document.createElement('textarea');  
2475 - // 设置 textarea 的值为要复制的 URL  
2476 - tempTextArea.value = url;  
2477 - // 将 textarea 添加到 DOM 中  
2478 - document.body.appendChild(tempTextArea);  
2479 - // 选中 textarea 中的内容  
2480 - tempTextArea.select();  
2481 - // 执行浏览器的复制命令  
2482 - document.execCommand('copy');  
2483 - // 从 DOM 中移除临时的 textarea 元素  
2484 - document.body.removeChild(tempTextArea);  
2485 - this.$message({  
2486 - message: '复制成功',  
2487 - type: 'success'  
2488 - })  
2489 - },  
2490 - tongjiBoxFan() {  
2491 - this.tongjiBox = false  
2492 - //this.getAll()  
2493 - // location.reload();  
2494 -  
2495 - },  
2496 - async load() {  
2497 -  
2498 - let page = {  
2499 - pageNumber: this.tiNum + 1,  
2500 - pageSize: 10,  
2501 - questionBank: this.tikuNie,  
2502 - }  
2503 -  
2504 - const tiku = await QuestionGetAll(page)  
2505 - // this.tikuziyuan = this.tikuziyuan.concat(tiku.data.content)  
2506 - const uniqueIds = new Set(this.tikuziyuan.map(item => item.id)); // 获取当前tikuziyuan中的所有唯一ID  
2507 -  
2508 - this.tikuziyuan = this.tikuziyuan.concat(  
2509 - tiku.data.content.reduce((acc, cur) => {  
2510 - if (!uniqueIds.has(cur.id)) { // 如果当前元素的ID不在uniqueIds集合中,则将其添加到acc数组中  
2511 - acc.push(cur);  
2512 - uniqueIds.add(cur.id); // 并将ID添加到uniqueIds集合中  
2513 - }  
2514 - return acc;  
2515 - }, [])  
2516 - )  
2517 -  
2518 - },  
2519 - getCurrentDate() {  
2520 - const now = new Date();  
2521 - const year = now.getFullYear();  
2522 - const month = String(now.getMonth() + 1).padStart(2, '0'); // 月份从0开始,所以要+1  
2523 - const day = String(now.getDate()).padStart(2, '0');  
2524 - return `${year}-${month}-${day}`;  
2525 -},  
2526 -  
2527 - getNextDayDate() {  
2528 - const now = new Date();  
2529 - now.setDate(now.getDate() + 1); // 设置到下一天  
2530 - const year = now.getFullYear();  
2531 - const month = String(now.getMonth() + 1).padStart(2, '0'); // 月份从0开始,所以要+1  
2532 - const day = String(now.getDate()).padStart(2, '0');  
2533 - return `${year}-${month}-${day}`;  
2534 -},  
2535 -  
2536 - validateScore(row) {  
2537 -  
2538 - // 如果输入的不是数字或者是NaN,则重置为1  
2539 - if (isNaN(row.num) || row.num < 0) {  
2540 - row.num = 0;  
2541 - }  
2542 - // 如果输入的数字大于100,则重置为100  
2543 - if (row.num > 100) {  
2544 - row.num = 100;  
2545 - }  
2546 - },  
2547 -  
2548 - }  
2549 -  
2550 - } 1472 + import {
  1473 + async
  1474 + } from 'q'
  1475 + import Vue from 'vue'
  1476 + import axios from 'axios'
  1477 + import DynamicChartTable from '@/components/dajuanTongji/index.vue'
  1478 + import tiaoxing from '@/components/dajuanTongji/tiaoxing.vue'
  1479 + import wangEditor from '@/components/editor/index';
  1480 + import {
  1481 + TerminaGetAll,
  1482 + TerminaAdd,
  1483 + TerminaEdit,
  1484 + TerminaDel,
  1485 + QuestionGetAll,
  1486 + QuestionAdd,
  1487 + } from '../../api/investigation.js'
  1488 + import upimg from '@/components/ImageUpload/index'
  1489 + export default {
  1490 + components: {
  1491 + upimg,
  1492 + DynamicChartTable,
  1493 + tiaoxing,
  1494 + wangEditor
  1495 + },
  1496 + data() {
  1497 + return {
  1498 +
  1499 + tableHeight: 600, // 设置为你想要的表格高度,单位是像素
  1500 + rid: '男',
  1501 + checkList: ['服务态度差'],
  1502 + chartTitle: '题目',
  1503 + chartOptions: {},
  1504 + listOne: [],
  1505 + listTwo: [],
  1506 + listThree: [],
  1507 +
  1508 + hetongBox: false,
  1509 + detbox: false, // 详情
  1510 + leixing: true, // 切换
  1511 + index: 1,
  1512 + currentPage: 1,
  1513 + total: 0,
  1514 + flag: false,
  1515 + flag1: false,
  1516 + currentPage1: 1,
  1517 + total1: 0,
  1518 + pageSize: 10,
  1519 + totalTi: 0,
  1520 + currentPageListTi: 1,
  1521 + pageSizeTi: 10,
  1522 + ggXin: false,
  1523 + formInline: {
  1524 + createUser: '',
  1525 + title: '',
  1526 + startDate: '',
  1527 + endDate: '',
  1528 + publishPort: '',
  1529 + questionnaireType: '',
  1530 + estimatedTime: null,
  1531 + remarks: '',
  1532 + filler: '',
  1533 + fillingConditions: '可重复填写',
  1534 + coverImage: '',
  1535 + rewardForParticipation: '',
  1536 + questionId: '',
  1537 + responseStatus: '',
  1538 + reviewStatus: '1',
  1539 + needName: '必填',
  1540 + needPhone: '必填',
  1541 + needGender: '必填',
  1542 + needOpinion: '必填',
  1543 + },
  1544 + Xin_Time: [],
  1545 + plan_Time: [],
  1546 + followUpTime: [],
  1547 + tableData: [],
  1548 + secondData: {},
  1549 + formSel: {
  1550 + title: '',
  1551 + questionnaireType: '',
  1552 + reviewStatus: '',
  1553 + pageNumber: 0,
  1554 + pageSize: 10,
  1555 + },
  1556 + pageindex: {
  1557 + pageNumber: 0,
  1558 + pageSize: 10,
  1559 + },
  1560 + bianjiBox: 1,
  1561 + chengeTatle: 1,
  1562 + zhong: {
  1563 + tikuTitle: '',
  1564 + questionType: '',
  1565 + questionBank: '用户端题库',
  1566 + layoutType: 1,
  1567 + maxChoose: 0,
  1568 + isRequired: '必填',
  1569 + questionDescription: '',
  1570 + optionSettings: {},
  1571 + },
  1572 + detaiList: {},
  1573 + xiangTabs: 'first',
  1574 + bianjiTabs: 'first',
  1575 + tongjiTabs: 'qingK',
  1576 + bainjiBox: false,
  1577 + radioValue: 'A', // 参与答卷奖励
  1578 + jifen: '', // 积分奖励
  1579 + choujiang: '', // 转盘抽奖
  1580 + yhq: [], // 优惠券确定
  1581 + yhqSel: [], // 优惠券选择
  1582 + tikuBox: false, // 选择题库框
  1583 + tikuNie: '用户端题库',
  1584 + danxuan: '',
  1585 + manyi: '',
  1586 + timuMsg: '', // 题目搜索
  1587 + options: [
  1588 + // { index: 1, name: '男', readonly: true },
  1589 + // { index: 2, name: '女', readonly: true }
  1590 + ],
  1591 + tikuAdd: false, // 新增题目
  1592 + tongjiBox: false, // 统计
  1593 + daxiangData: {},
  1594 + daxiangBox: false,
  1595 + wenData: [],
  1596 + wenConstData: [],
  1597 + tikuziyuan: [], // 题目资源
  1598 + secondDataTi: [], // 详情题库
  1599 + labelStyle: {
  1600 + width: '250px'
  1601 + },
  1602 + contentStyle: {
  1603 + width: '246px'
  1604 + },
  1605 + labelStylejiang: {
  1606 + width: '180px'
  1607 + },
  1608 + contentStylejiang: {
  1609 + width: '300px'
  1610 + },
  1611 + timuXiang: false,
  1612 + timuData: {},
  1613 + multipleSelection: [],
  1614 + xuanzheData: [],
  1615 + rules: {
  1616 + title: [{
  1617 + required: true,
  1618 + message: '请输入问卷标题',
  1619 + trigger: 'blur'
  1620 + }],
  1621 + startDate: [{
  1622 + required: true,
  1623 + message: '请选择问卷起止时间',
  1624 + trigger: 'change'
  1625 + }],
  1626 + publishPort: [{
  1627 + required: true,
  1628 + message: '请选择发布端口',
  1629 + trigger: 'change'
  1630 + }],
  1631 + questionnaireType: [{
  1632 + required: true,
  1633 + message: '请选择问卷类型',
  1634 + trigger: 'change'
  1635 + }],
  1636 + estimatedTime: [{
  1637 + required: true,
  1638 + message: '请输入预计填写时长'
  1639 + },
  1640 + {
  1641 + type: 'number',
  1642 + message: '必须为数字值'
  1643 + },
  1644 + {
  1645 + validator: (rule, value, callback) => {
  1646 + if (value <= 0) {
  1647 + callback(new Error('预计填写时长必须大于0'));
  1648 + } else {
  1649 + callback();
  1650 + }
  1651 + }
  1652 + }
  1653 + ],
  1654 +
  1655 + filler: [{
  1656 + required: true,
  1657 + message: '请选择填写人',
  1658 + trigger: 'change'
  1659 + }],
  1660 + fillingConditions: [{
  1661 + required: true,
  1662 + message: '请选择填写条件',
  1663 + trigger: 'change'
  1664 + }],
  1665 + coverImage: [{
  1666 + required: true,
  1667 + message: '请上传问卷封面',
  1668 + trigger: 'change'
  1669 + }],
  1670 + createUser: [{
  1671 + required: true,
  1672 + message: '请输入创建人',
  1673 + trigger: 'blur'
  1674 + }, ],
  1675 + },
  1676 +
  1677 + tixrules: {
  1678 + tikuTitle: [{
  1679 + required: true,
  1680 + message: '请输入题目',
  1681 + trigger: 'blur'
  1682 + }, ],
  1683 + questionType: [{
  1684 + required: true,
  1685 + message: '请选择题型',
  1686 + trigger: 'change'
  1687 + }],
  1688 + questionBank: [{
  1689 + required: true,
  1690 + message: '请选择所属题库',
  1691 + trigger: 'change'
  1692 + }],
  1693 + optionSettings: [{
  1694 + required: true,
  1695 + message: '请设置答案',
  1696 + trigger: 'change'
  1697 + }],
  1698 +
  1699 + },
  1700 + pinForm: {
  1701 + opinionDelisting: [{
  1702 + required: true,
  1703 + message: '请输入禁用原因',
  1704 + trigger: 'blur'
  1705 + }]
  1706 + },
  1707 + xiajiaId: '',
  1708 + downShow: false,
  1709 + opinionDel: {
  1710 + opinionDelisting: ''
  1711 + },
  1712 + yulanShow: false,
  1713 + wenjuanUrl: '',
  1714 + model1: {},
  1715 + tongjiSshu: [],
  1716 + tongjiTu: {},
  1717 + daanDui: [],
  1718 + tuwent: [],
  1719 +
  1720 + tongjiMsg: {
  1721 + plan_Time: [],
  1722 + userName: '',
  1723 + pageNumber: 0,
  1724 + pageSize: 10,
  1725 + },
  1726 + tiNum: 0,
  1727 + isbutton: false,
  1728 + currentPageList: 1,
  1729 + pickerOptions: {
  1730 + disabledDate(time) {
  1731 + return time.getTime() < Date.now() - 8.64e7; // 禁用当前时间之前的日期
  1732 + }
  1733 + },
  1734 + loading: false,
  1735 + shujuloading: false,
  1736 + iframaUrl: '',
  1737 + iframaShow: false,
  1738 + iframeWin: null,
  1739 + jiangli: {
  1740 + id: '1895043663592030209', //活动id
  1741 + actName: '商业测试活动1', //活动名称
  1742 + actStyle: '1', //抽奖样式 1:大转盘 2:砸金蛋 3:刮刮卡 4:翻牌乐 5:福袋 6:摇一摇
  1743 + // id:'',
  1744 + // actName:'',
  1745 + // actStyle:'', //抽奖样式 1:大转盘 2:砸金蛋 3:刮刮卡 4:翻牌乐 5:福袋 6:摇一摇
  1746 + },
  1747 + radioreward: '不设置奖励'
  1748 + }
  1749 + },
  1750 + computed: {
  1751 +
  1752 + },
  1753 + created() {
  1754 + this.getAll()
  1755 + },
  1756 + mounted() {
  1757 + // 监听iframe页面点击按钮触发事件
  1758 + window.addEventListener('message', (event) => {
  1759 + const data = event.data
  1760 + if (data.code === 'success') {
  1761 + // alert(data.test)
  1762 + console.log('id', data.id)
  1763 + console.log('name', data.name)
  1764 + console.log('styles', data.style)
  1765 + this.jiangli = {
  1766 + id: '' + data.id,
  1767 + actName: data.name,
  1768 + actStyle: data.style
  1769 + }
  1770 + this.iframaShow = false
  1771 + }
  1772 + })
  1773 + // this.iframeWin = this.$refs.iframe.contentWindow
  1774 + },
  1775 + methods: {
  1776 + input(e, e1) {
  1777 + // this.formInline[e1] = e
  1778 +
  1779 + if (e1 == '1') {
  1780 + this.formInline.coverImage = e
  1781 + } else {
  1782 + this.secondData.coverImage = e
  1783 + }
  1784 +
  1785 +
  1786 + },
  1787 + chenge(val) {
  1788 + this.formSel = {
  1789 + title: '',
  1790 + questionnaireType: '',
  1791 + reviewStatus: '',
  1792 + pageNumber: 0,
  1793 + pageSize: 10,
  1794 + }
  1795 + this.leixing = !this.leixing
  1796 + this.chengeTatle = val
  1797 + },
  1798 + async getAll() {
  1799 + const res = await TerminaGetAll(this.pageindex)
  1800 + this.tableData = res.data.content
  1801 + this.total = res.data.totalElements
  1802 + },
  1803 +
  1804 + // 新增确定按钮
  1805 + addCheck(val) {
  1806 + this.$refs.inlineform.validate((valid) => {
  1807 + if (valid) {
  1808 + if (this.Xin_Time != null) {
  1809 + this.formInline.startDate = this.Xin_Time[0]
  1810 + this.formInline.endDate = this.Xin_Time[1]
  1811 + } else {
  1812 + this.$message({
  1813 + message: '请选择问卷时间',
  1814 + })
  1815 + return false;
  1816 + }
  1817 + if (this.radioreward == '转盘抽奖') {
  1818 + if (this.jiangli.id && this.jiangli.id == '') {
  1819 + this.$message({
  1820 + message: '请创建转盘活动',
  1821 + })
  1822 + return false;
  1823 + }
  1824 + } else {
  1825 + this.jiangli.id = ''
  1826 + this.jiangli.actName = ''
  1827 + this.jiangli.actStyle = ''
  1828 + }
  1829 + let ids = null
  1830 + if (this.wenConstData.length != 0) {
  1831 + ids = this.wenConstData.map(item => item.id);
  1832 + this.formInline.questionId = ids.join(',')
  1833 + } else {
  1834 + this.$message({
  1835 + message: '请选择问题',
  1836 + })
  1837 + return false;
  1838 + }
  1839 + this.formInline.rewardForParticipation = this.jiangli.id
  1840 + this.formInline.actStyle = this.jiangli.actStyle
  1841 + this.formInline.actName = this.jiangli.actName
  1842 + this.formInline.createTime = this.currentTime()
  1843 + TerminaAdd(this.formInline).then(res => {
  1844 + if (res.data.code == '500') {
  1845 + this.$message({
  1846 + message: res.data.message,
  1847 + type: 'error'
  1848 + })
  1849 + } else {
  1850 + this.$message({
  1851 + message: '保存成功',
  1852 + type: 'success'
  1853 + })
  1854 + this.ggXin = false
  1855 + this.getAll()
  1856 + this.$refs.inlineform.resetFields()
  1857 + this.$refs.ziyuanData.clearSelection();
  1858 + this.multipleSelection = []
  1859 + }
  1860 + })
  1861 + } else {
  1862 + this.$message({
  1863 + message: '请填写完整信息',
  1864 + type: 'error'
  1865 + })
  1866 + return false;
  1867 + }
  1868 + })
  1869 + },
  1870 + // 获取时间
  1871 + currentTime() {
  1872 + const date = new Date();
  1873 + const year = date.getFullYear();
  1874 + let month = date.getMonth() + 1; // 月份从0~11,所以加一
  1875 + let day = date.getDate();
  1876 + let hours = date.getHours();
  1877 + let minutes = date.getMinutes();
  1878 + let seconds = date.getSeconds();
  1879 +
  1880 + // 为月、日、小时、分钟和秒添加前导零(如果需要)
  1881 + month = month < 10 ? '0' + month : month;
  1882 + day = day < 10 ? '0' + day : day;
  1883 + hours = hours < 10 ? '0' + hours : hours;
  1884 + minutes = minutes < 10 ? '0' + minutes : minutes;
  1885 + seconds = seconds < 10 ? '0' + seconds : seconds;
  1886 +
  1887 + // 返回格式化的日期和时间字符串
  1888 + return `${year}-${month}-${day} ${hours}:${minutes}`;
  1889 + },
  1890 + objectToArray(obj) {
  1891 + return Object.keys(obj).map(key => {
  1892 + const item = obj[key];
  1893 + return {
  1894 + id: key,
  1895 + ...item
  1896 + }
  1897 + })
  1898 + },
  1899 +
  1900 + // 详情
  1901 + details(val, item) {
  1902 + this.detbox = true
  1903 + this.secondData = item
  1904 + if (typeof item.question === 'string') {
  1905 + item.question = JSON.parse(item.question)
  1906 + }
  1907 + const array = this.objectToArray(item.question)
  1908 + this.jiangli.id = item.rewardForParticipation
  1909 + this.wenData = array
  1910 + // this.secondData.cereQuestionManagements.map((res, index) => {
  1911 + // if (typeof res.optionSettings == 'string') {
  1912 + // res.optionSettings = JSON.parse(res.optionSettings)
  1913 +
  1914 + // }
  1915 + // })
  1916 + },
  1917 +
  1918 + addbuss(val, item) {
  1919 + this.index = val
  1920 + this.detbox = false
  1921 + this.ggXin = true
  1922 + },
  1923 +
  1924 + handleCurrentChange1(val) {
  1925 + this.tongjiMsg.pageNumber = val - 1
  1926 + if (this.tongjiMsg.plan_Time.length > 0) {
  1927 + this.tongjiMsg.createTime = this.tongjiMsg.plan_Time[0]
  1928 + }
  1929 + this.tongjiMsg.questionnaireId = this.secondData.id
  1930 + axios.post(`${this.$API}/cereQuestionnaireAnswering/queryByPage`, this.tongjiMsg)
  1931 + .then(
  1932 + response => {
  1933 + this.tongjiSshu = response.data.data.content
  1934 + this.total1 = response.data.data.totalElements
  1935 + })
  1936 + },
  1937 + handleSizeChange(val) {
  1938 + this.pageSize = val
  1939 + },
  1940 + handleCurrentChange(val) {
  1941 + this.pageindex = {
  1942 + pageNumber: val - 1,
  1943 + pageSize: 10,
  1944 + }
  1945 +
  1946 + TerminaGetAll(this.pageindex).then(res => {
  1947 + this.tableData = res.data.content
  1948 + })
  1949 + },
  1950 + handleSizeChangeTi(val) {
  1951 + this.pageSizeTi = val
  1952 + },
  1953 + async handleCurrentChangeTi(val) {
  1954 + const pageindex = {
  1955 + pageNumber: val - 1,
  1956 + pageSize: 10,
  1957 + questionBank: this.tikuNie,
  1958 + questionType: this.danxuan,
  1959 + tikuTitle: this.timuMsg,
  1960 + }
  1961 + const tiku = await QuestionGetAll(pageindex)
  1962 + this.tikuziyuan = tiku.data.content
  1963 + this.totalTi = tiku.data.totalElements
  1964 + // TerminaGetAll(this.pageindex).then(res => {
  1965 + // this.tableData = res.data.content
  1966 + // })
  1967 + },
  1968 + closeFn(val) {
  1969 + this.bianjiTabs = 'first'
  1970 + this.xiangTabs = 'first'
  1971 + this.bianjiBox = 1
  1972 + if (val == 1) {
  1973 + this.$refs.inlineform.resetFields()
  1974 + this.ggXin = false
  1975 + } else {
  1976 + this.$refs.bianform.resetFields()
  1977 + this.bainjiBox = false
  1978 + }
  1979 + },
  1980 + // 详情编辑
  1981 + async bianji() {
  1982 + if (this.bianjiBox == 1) {
  1983 + this.bianjiBox = 2
  1984 + } else {
  1985 + this.bianjiBox = 1
  1986 +
  1987 + const formList = {}
  1988 + const res = await TerminaEdit(formList)
  1989 +
  1990 + this.detbox = false
  1991 + }
  1992 + },
  1993 + // 查看合同
  1994 + lookHetong(val) {
  1995 + this.hetongBox = true
  1996 + },
  1997 + // 查询按钮
  1998 + async onSubmit() {
  1999 + this.isbutton = true;
  2000 + const res = await TerminaGetAll(this.formSel)
  2001 + this.tableData = res.data.content
  2002 + this.total = res.data.totalElements
  2003 + this.isbutton = false;
  2004 + },
  2005 + // 重置按钮
  2006 + resetting() {
  2007 + this.formSel = {
  2008 + title: '',
  2009 + questionnaireType: '',
  2010 + reviewStatus: '',
  2011 + pageNumber: 0,
  2012 + pageSize: 10,
  2013 + },
  2014 + this.currentPageList = 1
  2015 + this.pageindex.pageNumber = 0
  2016 + this.getAll()
  2017 + },
  2018 + radioClick(value) {
  2019 + if (value === '不设置奖励') {
  2020 + this.jifen = '' // 积分奖励
  2021 + this.choujiang = '' // 转盘抽奖
  2022 + this.yhq = [] // 优惠券确定
  2023 + } else if (value === '奖励积分') {
  2024 + this.choujiang = '' // 转盘抽奖
  2025 + this.yhq = [] // 优惠券确定
  2026 + } else if (value === '转盘抽奖') {
  2027 + this.jifen = ''
  2028 + this.yhq = []
  2029 + } else if (value === '优惠券') {
  2030 + this.jifen = '' // 积分奖励
  2031 + this.choujiang = '' // 转盘抽奖
  2032 + }
  2033 + },
  2034 + async selTiku() {
  2035 + this.tiNum = 0
  2036 + // this.zhong = {
  2037 + // tikuTitle:'',
  2038 + // questionType:'',
  2039 + // questionBank:'用户端题库',
  2040 + // isRequired:'',
  2041 + // questionDescription:'',
  2042 + // optionSettings:{},
  2043 + // }
  2044 + this.tikuNie = '用户端题库'
  2045 + this.tikuBox = true
  2046 + const page = {
  2047 + pageNumber: 0,
  2048 + pageSize: 10,
  2049 + questionBank: '用户端题库',
  2050 + }
  2051 +
  2052 + const tiku = await QuestionGetAll(page)
  2053 + this.tikuziyuan = tiku.data.content
  2054 + this.totalTi = tiku.data.totalElements
  2055 + },
  2056 + addOption() {
  2057 + const newOption = {
  2058 + index: this.options.length + 1,
  2059 + name: '',
  2060 + readonly: false
  2061 + };
  2062 + this.options.push(newOption);
  2063 + },
  2064 + deleteOption(index) {
  2065 + this.options.splice(index, 1);
  2066 + },
  2067 + bianls(item) {
  2068 + this.secondData = item
  2069 + Vue.set(this.plan_Time, 0, this.secondData.startDate)
  2070 + Vue.set(this.plan_Time, 1, this.secondData.endDate)
  2071 + if (typeof item.question === 'string') {
  2072 + item.question = JSON.parse(item.question)
  2073 + }
  2074 + if (item.rewardForParticipation != '') {
  2075 + this.radioreward = '转盘抽奖'
  2076 + } else {
  2077 + this.radioreward = '不设置奖励'
  2078 + }
  2079 + this.jiangli.id = item.rewardForParticipation
  2080 + this.jiangli.actName = item.actName
  2081 + this.secondDataTi = item.cereQuestionManagements
  2082 + this.bainjiBox = true
  2083 +
  2084 + },
  2085 + bianCheck() {
  2086 + if (this.secondData && this.secondData.cereQuestionManagements) {
  2087 + delete this.secondData.cereQuestionManagements;
  2088 + }
  2089 +
  2090 + if (typeof this.secondData.question != 'string') {
  2091 + this.secondData.question = JSON.stringify(this.secondData.question)
  2092 + }
  2093 +
  2094 + if (this.plan_Time.length != 0) {
  2095 + this.secondData.startDate = this.plan_Time[0]
  2096 + this.secondData.endDate = this.plan_Time[1]
  2097 + }
  2098 +
  2099 + let ids = []
  2100 + if (this.secondDataTi.length != 0) {
  2101 + ids = this.secondDataTi.map(item => item.id);
  2102 + }
  2103 + if (this.radioreward == '转盘抽奖') {
  2104 + if (this.jiangli.id && this.jiangli.id == '') {
  2105 + this.$message({
  2106 + message: '请创建转盘活动',
  2107 + })
  2108 + return false;
  2109 + }
  2110 + } else {
  2111 + this.jiangli.id = ''
  2112 + this.jiangli.actStyle = ''
  2113 + this.jiangli.actName = ''
  2114 + }
  2115 + this.secondData.rewardForParticipation = this.jiangli.id
  2116 + this.secondData.actStyle = this.jiangli.actStyle
  2117 + this.secondData.actName = this.jiangli.actName
  2118 + this.secondData.questionId = ids.join(',')
  2119 + this.secondData.updateTime = this.currentTime()
  2120 +
  2121 + TerminaEdit(this.secondData).then(res => {
  2122 + this.getAll()
  2123 + this.bainjiBox = false
  2124 + })
  2125 + },
  2126 + tongji(item) {
  2127 + this.tongjiSshu = []
  2128 + this.tongjiTu = {}
  2129 + this.total1 = 0
  2130 + this.tongjiTabs = 'qingK'
  2131 + this.tongjiMsg = {
  2132 + plan_Time: [],
  2133 + userName: '',
  2134 + pageNumber: 0,
  2135 + pageSize: 10,
  2136 +
  2137 + }
  2138 +
  2139 + var that = this;
  2140 + this.secondData = item
  2141 + this.secondData.cereQuestionManagements.map((res, index) => {
  2142 + if (typeof res.optionSettings === 'string') {
  2143 + res.optionSettings = JSON.parse(res.optionSettings)
  2144 + }
  2145 + this.secondData.cereQuestionManagements[index].ziduan = []
  2146 + })
  2147 +
  2148 + const postList = {
  2149 + pageNumber: 0,
  2150 + pageSize: 10,
  2151 + questionnaireId: item.id,
  2152 + }
  2153 +
  2154 + this.tongjiBox = true
  2155 + this.loading = true
  2156 +
  2157 + axios.post(`${this.$API}/cereQuestionnaireAnswering/queryByPage`, postList).then(
  2158 + response => {
  2159 + if (response.data.code == '200') {
  2160 + this.loading = false
  2161 + this.tongjiSshu = response.data.data.content
  2162 + this.total1 = response.data.data.totalElements
  2163 + }
  2164 + }).catch(err => {
  2165 + this.loading = false
  2166 + this.$message({
  2167 + message: '网络不好,请稍后再试',
  2168 + type: 'error'
  2169 + })
  2170 + })
  2171 + },
  2172 + tongjiClick(tab, event) {
  2173 +
  2174 + if (tab.index == '1') {
  2175 + this.shujuloading = true
  2176 + const postData = {
  2177 + questionnaireId: this.secondData.id
  2178 + }
  2179 + axios.post(`${this.$API}/cereQuestionnaireAnswering/statistics`, postData).then(
  2180 + response => {
  2181 + if (Object.keys(response.data.data).length === 0) {
  2182 + this.shujuloading = false
  2183 + this.$message({
  2184 + message: '数据还在统计中,请稍后再试',
  2185 + type: 'success'
  2186 + })
  2187 +
  2188 + return
  2189 + }
  2190 + this.shujuloading = false
  2191 + const obj = response.data.data
  2192 +
  2193 + this.tongjiTu = obj
  2194 + var tuwent = [];
  2195 + var tlist = [];
  2196 + if (typeof response.data.data.cereQuestionnaireTable.question === 'string') {
  2197 + this.tuwent = JSON.parse(response.data.data.cereQuestionnaireTable.question)
  2198 + }
  2199 + var that = this;
  2200 +
  2201 + this.$nextTick(function() {
  2202 + try {
  2203 + if (that.tuwent) {
  2204 + for (var i in that.tuwent) {
  2205 + try {
  2206 + that.$refs['chat' + i][0].init(obj)
  2207 + } catch (e) {
  2208 + console.error('chat refs init error', e);
  2209 + }
  2210 + }
  2211 + } else {
  2212 + console.log('tuwent is null', that.tuwent)
  2213 + }
  2214 + } catch (e) {
  2215 + console.error('chat error', e);
  2216 + }
  2217 + });
  2218 + // this.tuwent = tlist;
  2219 +
  2220 + // this.tuwent = Object.values(this.tuwent).filter(res => res.type !== '文本');
  2221 + }).catch(err => {
  2222 + this.shujuloading = false
  2223 + this.$message({
  2224 + message: '网络不好,请稍后再试',
  2225 + type: 'error'
  2226 + })
  2227 + })
  2228 + }
  2229 + },
  2230 + xuanxiang(obj) {
  2231 + const result = [];
  2232 +
  2233 + for (const key in obj) {
  2234 + if (obj.hasOwnProperty(key)) {
  2235 + const item = obj[key];
  2236 + const [type, titleAndOptions] = item.split('$');
  2237 +
  2238 + const [isRequired, options] = titleAndOptions.split('#');
  2239 +
  2240 + const [title, values] = options.split(':');
  2241 +
  2242 + const [optionsPart, valuesPart] = values.split('>');
  2243 +
  2244 + const optionArray = optionsPart.split('^').map(part => part.split('|')[1]);
  2245 +
  2246 + const valueArray = valuesPart ? valuesPart.split('^').map(part => part.split('|')[1]) : [];
  2247 +
  2248 + result.push({
  2249 + type: type.trim(),
  2250 + ispu: isRequired.trim(),
  2251 + timu: title.trim(),
  2252 + xuanxiang: optionArray,
  2253 + xuanval: valueArray
  2254 + });
  2255 + }
  2256 + }
  2257 +
  2258 + return result;
  2259 + },
  2260 + daxiang(item) {
  2261 + this.daxiangData = item
  2262 +
  2263 + const selectoptions = null
  2264 +
  2265 + if (typeof this.daxiangData.question === 'string') {
  2266 + this.daxiangData.question = JSON.parse(this.daxiangData.question)
  2267 + }
  2268 +
  2269 +
  2270 + for (let key in this.daxiangData.question) {
  2271 +
  2272 + if (this.daxiangData.question[key].type == '单选') {
  2273 +
  2274 + if (Array.isArray(this.daxiangData.question[key].choose)) {
  2275 + this.daxiangData.question[key].choose = this.daxiangData.question[key].choose.join(',')
  2276 +
  2277 + }
  2278 + }
  2279 + if (this.daxiangData.question[key].type == '文本') {
  2280 + this.daxiangData.question[key].choose = this.daxiangData.question[key].choose[0]
  2281 + }
  2282 + }
  2283 +
  2284 + // this.daxiangData.question = this.xuanxiang(question)
  2285 +
  2286 + // for (const key in this.daxiangData.question) {
  2287 + // if(this.daxiangData.question[key].type=='多选' && typeof this.daxiangData.question[key] =='string'){
  2288 + // this.daxiangData.question[key].choose = this.daxiangData.question[key].choose.split(",")
  2289 + // }
  2290 + // }
  2291 +
  2292 + this.secondData.cereQuestionManagements.map((res, index) => {
  2293 + if (this.daanDui[index]) {
  2294 + const obj = this.daanDui[index].split(',')
  2295 + res.ziduan = obj
  2296 + }
  2297 + })
  2298 +
  2299 + this.daxiangBox = true
  2300 + },
  2301 +
  2302 + // 新增题库
  2303 + Addtiku(val) {
  2304 + const that = this
  2305 +
  2306 + if (this.zhong.tikuTitle == '') {
  2307 + this.$message({
  2308 + message: '请输入题目',
  2309 + })
  2310 + return;
  2311 + }
  2312 + if (this.zhong.questionType == '') {
  2313 + this.$message({
  2314 + message: '请选择题型',
  2315 + })
  2316 + return;
  2317 + }
  2318 + if (this.zhong.questionType != '文本' && this.options.length == 0) {
  2319 + this.$message({
  2320 + message: '请添加答案选项',
  2321 + })
  2322 + return;
  2323 + }
  2324 + for (let i = 0; i < this.options.length; i++) {
  2325 + if (this.options[i].name == '') {
  2326 + this.$message({
  2327 + message: '答案选项不能为空',
  2328 + })
  2329 + return
  2330 + }
  2331 + }
  2332 + let accumulator = {}
  2333 + let fenshu = {}
  2334 + this.options.forEach((item, index) => {
  2335 + accumulator[index] = item.name
  2336 + fenshu[index] = Number(item.num) || 0
  2337 + })
  2338 + // this.zhong.optionSettings = this.options.reduce((accumulator, current) => {
  2339 + // accumulator[current.index] = current.name;
  2340 + // return accumulator;
  2341 + // }, {}) // 初始化累加器为空对象
  2342 +
  2343 + // this.zhong.score = this.options.reduce((accumulator, current) => {
  2344 + // accumulator[current.index] = Number(current.num);
  2345 + // return accumulator;
  2346 + // }, {}) // 初始化累加器为空对象
  2347 + this.zhong.optionSettings = JSON.stringify(accumulator)
  2348 + this.zhong.score = JSON.stringify(fenshu)
  2349 +
  2350 + // this.zhong.optionSettings = JSON.stringify(this.zhong.optionSettings)
  2351 + // this.zhong.score = JSON.stringify(this.zhong.score)
  2352 + this.zhong.createDate = this.currentTime()
  2353 +
  2354 + QuestionAdd(this.zhong).then((res) => {
  2355 + if (val == 1) {
  2356 +
  2357 + that.wenConstData.push(res.data)
  2358 +
  2359 + } else {
  2360 + that.secondDataTi.push(res.data)
  2361 + }
  2362 + this.$message({
  2363 + message: '保存成功',
  2364 + type: 'success'
  2365 + })
  2366 + this.getAll()
  2367 + this.options = []
  2368 +
  2369 + this.multipleSelection = []
  2370 + this.tikuAdd = false
  2371 + })
  2372 + },
  2373 + // 题库切换选择
  2374 + async tikuchange(val) {
  2375 + const page = {
  2376 + pageNumber: 0,
  2377 + pageSize: 10,
  2378 + questionBank: val,
  2379 + }
  2380 + const tiku = await QuestionGetAll(page)
  2381 + this.tikuziyuan = tiku.data.content
  2382 + this.totalTi = tiku.data.totalElements
  2383 + },
  2384 +
  2385 + async tikusous() {
  2386 + const page = {
  2387 + pageNumber: 0,
  2388 + pageSize: 10,
  2389 + questionBank: this.tikuNie,
  2390 + questionType: this.danxuan,
  2391 + tikuTitle: this.timuMsg,
  2392 + }
  2393 + const tiku = await QuestionGetAll(page)
  2394 + this.tikuziyuan = tiku.data.content
  2395 + this.totalTi = tiku.data.totalElements
  2396 + },
  2397 + async tikuclose() {
  2398 + this.tikuNie = '用户端题库'
  2399 + this.danxuan = ''
  2400 + this.timuMsg = ''
  2401 + this.manyi = ''
  2402 + const page = {
  2403 + pageNumber: 0,
  2404 + pageSize: 10,
  2405 + questionBank: this.tikuNie,
  2406 + }
  2407 + const tiku = await QuestionGetAll(page)
  2408 + this.tikuziyuan = tiku.data.content
  2409 + this.totalTi = tiku.data.totalElements
  2410 + },
  2411 + gotimuxiang(item) {
  2412 + this.timuData = item
  2413 + if (typeof item.optionSettings !== 'object') {
  2414 + this.timuData.optionSettings = JSON.parse(item.optionSettings)
  2415 + }
  2416 + this.timuXiang = true
  2417 + },
  2418 + handleSelectionChange(val) {
  2419 + // if(this.tikuNie =='用户端题库'){
  2420 + // this.listOne = val
  2421 + // }else if(this.tikuNie =='商户端题库'){
  2422 + // this.listTwo = val
  2423 +
  2424 + // }else{
  2425 + // this.listThree = val
  2426 + // }
  2427 +
  2428 + this.multipleSelection = val
  2429 +
  2430 + // this.xuanzheData = this.xuanzheData.concat(val)
  2431 + // this.xuanzheData = [...new Set(this.xuanzheData)]
  2432 + },
  2433 + tiSelQue(val) {
  2434 + if (val == 1) {
  2435 + // wenConstData secondDataTi
  2436 +
  2437 + // this.wenConstData = [...this.listOne, ...this.listTwo, ...this.listThree]
  2438 + this.multipleSelection.forEach(item => {
  2439 + const isDuplicate = this.wenConstData.some(existingItem => existingItem.id === item.id);
  2440 + if (!isDuplicate) {
  2441 + this.wenConstData.push(item);
  2442 + }
  2443 + })
  2444 + } else {
  2445 + this.multipleSelection.forEach(item => {
  2446 + const isDuplicate = this.secondDataTi.some(existingItem => existingItem.id === item.id);
  2447 +
  2448 + if (!isDuplicate) {
  2449 + this.secondDataTi.push(item);
  2450 + }
  2451 + });
  2452 + }
  2453 + this.tiNum = 0
  2454 + this.tikuNie = ''
  2455 + this.danxuan = ''
  2456 + this.timuMsg = ''
  2457 + this.pageSizeTi = 10
  2458 + this.currentPageListTi = 1
  2459 + this.totalTi = 0
  2460 + this.$refs.ziyuanData.clearSelection()
  2461 + this.tikuBox = false
  2462 + },
  2463 + delWenCon(val, index) {
  2464 + if (val == '1') {
  2465 + this.xuanzheData.splice(index, 1)
  2466 + this.wenConstData.splice(index, 1)
  2467 + } else {
  2468 + this.secondDataTi.splice(index, 1)
  2469 + }
  2470 + },
  2471 + fabu(val, item) {
  2472 + const h = this.$createElement;
  2473 + this.$msgbox({
  2474 + title: '消息',
  2475 + message: h('p', null, [
  2476 + h('span', null, '是否提交 '),
  2477 + ]),
  2478 + showCancelButton: true,
  2479 + showClose: false,
  2480 + confirmButtonText: '确定',
  2481 + cancelButtonText: '取消',
  2482 + customClass: 'oe-dialog-btn',
  2483 + beforeClose: (action, instance, done) => {
  2484 + if (action === 'confirm') {
  2485 + TerminaEdit({
  2486 + id: item.id,
  2487 + reviewStatus: val
  2488 + }).then(res => {
  2489 + this.getAll()
  2490 + done();
  2491 + })
  2492 + } else {
  2493 + done();
  2494 + }
  2495 + }
  2496 + })
  2497 + },
  2498 + downs(item) {
  2499 + this.xiajiaId = item.id
  2500 + this.downShow = true
  2501 + },
  2502 + async downShowCheck() {
  2503 + if (this.opinionDel.opinionDelisting == '') {
  2504 + this.$message({
  2505 + message: '请输入禁用原因',
  2506 + })
  2507 + return;
  2508 + }
  2509 + await TerminaEdit({
  2510 + id: this.xiajiaId,
  2511 + reviewStatus: '5',
  2512 + opinionDelisting: this.opinionDel.opinionDelisting
  2513 + })
  2514 + this.downShow = false
  2515 + this.getAll()
  2516 + },
  2517 + delwen(item) {
  2518 + const h = this.$createElement;
  2519 + this.$msgbox({
  2520 + title: '消息',
  2521 + message: h('p', null, [
  2522 + h('span', null, '是否删除 '),
  2523 + ]),
  2524 + showCancelButton: true,
  2525 + showClose: false,
  2526 + confirmButtonText: '确定',
  2527 + cancelButtonText: '取消',
  2528 + customClass: 'oe-dialog-btn',
  2529 + beforeClose: (action, instance, done) => {
  2530 + if (action === 'confirm') {
  2531 + TerminaDel({
  2532 + id: item.id
  2533 + }).then(res => {
  2534 + this.getAll()
  2535 + done();
  2536 + })
  2537 + } else {
  2538 + done();
  2539 + }
  2540 + }
  2541 + })
  2542 + },
  2543 + addyu() {
  2544 +
  2545 + },
  2546 + parseData(obj) {
  2547 + const result = [];
  2548 +
  2549 + for (const key in obj) {
  2550 + if (obj.hasOwnProperty(key)) {
  2551 + const item = obj[key];
  2552 + const [type, titleAndOptions] = item.split('$');
  2553 + const [isRequired, options] = titleAndOptions.split('#');
  2554 + const [title, dansi] = options.split(':');
  2555 + const xuanxiang = dansi.split('^').map(option => {
  2556 + const [index, value, score] = option.split('|');
  2557 + return value;
  2558 + });
  2559 +
  2560 + result.push({
  2561 + timu: title,
  2562 + type: type,
  2563 + isphu: isRequired,
  2564 + xuanxiang: xuanxiang
  2565 + });
  2566 + }
  2567 + }
  2568 +
  2569 + return result;
  2570 + },
  2571 + yulan(item) {
  2572 + this.secondData = item
  2573 +
  2574 + if (typeof this.secondData.question != 'object') {
  2575 + this.secondData.question = JSON.parse(this.secondData.question)
  2576 + }
  2577 + const host = `${window.location.protocol}//${window.location.host}`
  2578 + this.wenjuanUrl = `${host}/cdwlMall/meh5/pages_category_page1/question/question?ids=${item.id}`
  2579 +
  2580 + this.yulanShow = true
  2581 +
  2582 + },
  2583 + addggXin() {
  2584 + this.formInline = {
  2585 + createUser: '',
  2586 + title: '',
  2587 + startDate: '',
  2588 + endDate: '',
  2589 + publishPort: '',
  2590 + questionnaireType: '',
  2591 + estimatedTime: null,
  2592 + remarks: '',
  2593 + filler: '',
  2594 + fillingConditions: '可重复填写',
  2595 + coverImage: '',
  2596 + rewardForParticipation: '',
  2597 + questionId: '',
  2598 + responseStatus: '',
  2599 + reviewStatus: '1',
  2600 + needName: '必填',
  2601 + needPhone: '必填',
  2602 + needGender: '必填',
  2603 + needOpinion: '必填',
  2604 + }
  2605 + this.jiangli = {
  2606 + id: '',
  2607 + actName: '',
  2608 + actStyle: ''
  2609 + }
  2610 + this.xuanzheData = []
  2611 + this.radioreward = '不设置奖励'
  2612 + const today = new Date();
  2613 + const startOfToday = new Date(today.getFullYear(), today.getMonth(), today.getDate());
  2614 + const endOfToday = new Date(today.getFullYear(), today.getMonth(), today.getDate());
  2615 + this.Xin_Time = [this.getCurrentDate(), this.getNextDayDate()]
  2616 + this.wenConstData = []
  2617 + this.ggXin = true
  2618 + },
  2619 + addTikuShow() {
  2620 + this.zhong = {
  2621 + tikuTitle: '',
  2622 + questionType: '',
  2623 + questionBank: '用户端题库',
  2624 + layoutType: 1,
  2625 + maxChoose: 0,
  2626 + isRequired: '必填',
  2627 + questionDescription: '',
  2628 + optionSettings: {},
  2629 + }
  2630 + this.options = []
  2631 +
  2632 + this.tikuAdd = true
  2633 + },
  2634 + quxiao(val) {
  2635 + this.multipleSelection = []
  2636 + this.options = []
  2637 + this.$refs.tixform.resetFields()
  2638 + // if (val == 1) {
  2639 + // this.$refs.tixform.resetFields()
  2640 + // } else {
  2641 +
  2642 + // this.$refs.form.resetFields()
  2643 + // }
  2644 + },
  2645 +
  2646 + hangSelchange() {
  2647 + const postList = {
  2648 + pageNumber: 0,
  2649 + pageSize: 10,
  2650 + questionnaireId: item.id,
  2651 + }
  2652 + axios.post(`${this.$API}/cereQuestionnaireAnswering/queryByPage`, postList).then(
  2653 + response => {
  2654 + this.tongjiSshu = response.data.data.content
  2655 + this.total1 = response.data.data.totalElements
  2656 + })
  2657 + },
  2658 + secondsToMinutesAndSeconds(s) {
  2659 + if (s) {
  2660 + // 将输入的秒数转换为数值类型并取整
  2661 + s = Math.floor(Number(s));
  2662 +
  2663 + // 计算分钟和剩余的秒数
  2664 + const minutes = Math.floor(s / 60);
  2665 + let remainingSeconds = s % 60;
  2666 +
  2667 + // 确保剩余的秒数始终是整数
  2668 + remainingSeconds = Math.floor(remainingSeconds);
  2669 +
  2670 + // 根据是否有分钟来返回相应的字符串
  2671 + if (minutes === 0) {
  2672 + return `${remainingSeconds} 秒`;
  2673 + } else {
  2674 + return `${minutes} 分 ${remainingSeconds} 秒`;
  2675 + }
  2676 + } else {
  2677 + return 0
  2678 + }
  2679 + },
  2680 +
  2681 + tongjiSubmit() {
  2682 + const page = {
  2683 + pageNumber: 0,
  2684 + pageSize: 10,
  2685 + userName: this.tongjiMsg.userName,
  2686 + questionnaireId: this.secondData.id,
  2687 + }
  2688 +
  2689 + if (this.tongjiMsg.plan_Time.length != 0) {
  2690 + page.startTime = this.tongjiMsg.plan_Time[0]
  2691 + page.endTime = this.tongjiMsg.plan_Time[1]
  2692 + }
  2693 +
  2694 + axios.post(`${this.$API}/cereQuestionnaireAnswering/queryByPage`, page).then(
  2695 + response => {
  2696 + this.tongjiSshu = response.data.data.content
  2697 + this.total1 = response.data.data.totalElements
  2698 + })
  2699 + },
  2700 + tongjiSubmitret() {
  2701 + this.tongjiMsg = {
  2702 + plan_Time: [],
  2703 + userName: '',
  2704 + pageNumber: 0,
  2705 + pageSize: 10,
  2706 +
  2707 + }
  2708 + const page = {
  2709 + pageNumber: 0,
  2710 + pageSize: 10,
  2711 + questionnaireId: this.secondData.id,
  2712 + }
  2713 + axios.post(`${this.$API}/cereQuestionnaireAnswering/queryByPage`, page).then(
  2714 + response => {
  2715 + this.tongjiSshu = response.data.data.content
  2716 + this.total1 = response.data.data.totalElements
  2717 + })
  2718 + },
  2719 + copyUrl(url) {
  2720 + const tempTextArea = document.createElement('textarea');
  2721 + // 设置 textarea 的值为要复制的 URL
  2722 + tempTextArea.value = url;
  2723 + // 将 textarea 添加到 DOM 中
  2724 + document.body.appendChild(tempTextArea);
  2725 + // 选中 textarea 中的内容
  2726 + tempTextArea.select();
  2727 + // 执行浏览器的复制命令
  2728 + document.execCommand('copy');
  2729 + // 从 DOM 中移除临时的 textarea 元素
  2730 + document.body.removeChild(tempTextArea);
  2731 + this.$message({
  2732 + message: '复制成功',
  2733 + type: 'success'
  2734 + })
  2735 + },
  2736 + tongjiBoxFan() {
  2737 + this.tongjiBox = false
  2738 + // this.getAll()
  2739 + // location.reload();
  2740 + },
  2741 + async load() {
  2742 +
  2743 + const page = {
  2744 + pageNumber: this.tiNum + 1,
  2745 + pageSize: 10,
  2746 + questionBank: this.tikuNie,
  2747 + }
  2748 + this.tiNum += 1
  2749 + const tiku = await QuestionGetAll(page)
  2750 + // this.tikuziyuan = this.tikuziyuan.concat(tiku.data.content)
  2751 + const uniqueIds = new Set(this.tikuziyuan.map(item => item.id)); // 获取当前tikuziyuan中的所有唯一ID
  2752 +
  2753 + this.tikuziyuan = this.tikuziyuan.concat(
  2754 + tiku.data.content.reduce((acc, cur) => {
  2755 + if (!uniqueIds.has(cur.id)) { // 如果当前元素的ID不在uniqueIds集合中,则将其添加到acc数组中
  2756 + acc.push(cur);
  2757 + uniqueIds.add(cur.id); // 并将ID添加到uniqueIds集合中
  2758 + }
  2759 + return acc;
  2760 + }, [])
  2761 + )
  2762 + },
  2763 + getCurrentDate() {
  2764 + const now = new Date();
  2765 + const year = now.getFullYear();
  2766 + const month = String(now.getMonth() + 1).padStart(2, '0'); // 月份从0开始,所以要+1
  2767 + const day = String(now.getDate()).padStart(2, '0');
  2768 + return `${year}-${month}-${day}`;
  2769 + },
  2770 +
  2771 + getNextDayDate() {
  2772 + const now = new Date();
  2773 + now.setDate(now.getDate() + 1); // 设置到下一天
  2774 + const year = now.getFullYear();
  2775 + const month = String(now.getMonth() + 1).padStart(2, '0'); // 月份从0开始,所以要+1
  2776 + const day = String(now.getDate()).padStart(2, '0');
  2777 + return `${year}-${month}-${day}`;
  2778 + },
  2779 +
  2780 + validateScore(row) {
  2781 + // 如果输入的不是数字或者是NaN,则重置为1
  2782 + if (isNaN(row.num) || row.num < 0) {
  2783 + row.num = 0;
  2784 + }
  2785 + // 如果输入的数字大于100,则重置为100
  2786 + if (row.num > 100) {
  2787 + row.num = 100;
  2788 + }
  2789 + },
  2790 +
  2791 + tikuquxiao(val) {
  2792 + this.tikuBox = false
  2793 + this.tiNum = 0
  2794 + this.tikuNie = ''
  2795 + this.danxuan = ''
  2796 + this.timuMsg = ''
  2797 + this.pageSizeTi = 10
  2798 + this.currentPageListTi = 1
  2799 + this.totalTi = 0
  2800 + this.$refs.ziyuanData.clearSelection()
  2801 + },
  2802 + moveUp(index) {
  2803 + [this.wenConstData[index], this.wenConstData[index - 1]] = [this.wenConstData[index - 1], this
  2804 + .wenConstData[index]
  2805 + ]
  2806 + this.wenConstData.sort()
  2807 + },
  2808 + moveDown(index) {
  2809 + [this.wenConstData[index], this.wenConstData[index + 1]] = [this.wenConstData[index + 1], this
  2810 + .wenConstData[index]
  2811 + ]
  2812 + this.wenConstData.sort()
  2813 + },
  2814 + moveUp2(index) {
  2815 + s
  2816 + [this.secondDataTi[index], this.secondDataTi[index - 1]] = [this.secondDataTi[index - 1], this
  2817 + .secondDataTi[index]
  2818 + ]
  2819 + this.secondDataTi.sort()
  2820 + },
  2821 + moveDown2(index) {
  2822 + [this.secondDataTi[index], this.secondDataTi[index + 1]] = [this.secondDataTi[index + 1], this
  2823 + .secondDataTi[index]
  2824 + ]
  2825 + this.secondDataTi.sort()
  2826 + },
  2827 + answerMoveUp(index) {
  2828 + [this.options[index], this.options[index - 1]] = [this.options[index - 1], this.options[index]]
  2829 + this.options[index].index = index - 1
  2830 + this.options.sort()
  2831 + },
  2832 + answerMoveDown(index) {
  2833 + [this.options[index], this.options[index + 1]] = [this.options[index + 1], this.options[index]]
  2834 + this.options[index].index = index + 1
  2835 + this.options.sort()
  2836 + },
  2837 + actGo(val) {
  2838 + let token = localStorage.getItem('token');
  2839 + if (token && token.startsWith('Bearer')) {
  2840 + token = token.substring(7);
  2841 + }
  2842 + token =
  2843 + 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3RfdXNlcl9pbmZvIjoie1wiYXBwSWRcIjoxLFwiYXJlYUNvZGVzXCI6W10sXCJjb21wYW55QWRtaW5cIjpmYWxzZSxcImNvbXBhbnlDb2RlXCI6XCJKSkxEXzAwMVwiLFwiZGVwdENvZGVcIjpcIjAwMlwiLFwiZGVwdFRhZ1wiOlwiXCIsXCJsb2dpblR5cGVcIjpcIlBDXCIsXCJtYWluRGVwdENvZGVcIjpcIjAwMlwiLFwibWFuYWdlclwiOnRydWUsXCJuYW1lXCI6XCLotoXnuqfnrqHnkIblkZhcIixcInBob25lXCI6XCIxMzU0MTMwNDkxMFwiLFwicm9sZXNcIjpbXCJyb2xlX3N1cGVyX2FkbWluXCIsXCJ2aXAtYWRtaW5cIl0sXCJzdXBlckFkbWluXCI6dHJ1ZSxcInRvcERlcHRDb2RlXCI6XCIwMDJcIixcInVzZXJJZFwiOjEsXCJ1c2VybmFtZVwiOlwic3VwZXItampsZFwifSIsImp0aSI6ImMxMWQ5ZjJjLTc1ZjItNDM5Yy05NjMzLTliYzU4MTc2NmZmYiIsImV4cCI6MTc0MDY2Mjg2NywiaWF0IjoxNzQwNjQ4NDY3LCJzdWIiOiJDRFdMIiwiaXNzIjoiT0EifQ.-2jv7Vq8pqn8PehIpd1lMXJrSqPsmCfhXp7fddL56qI'
  2844 + this.iframaShow = true
  2845 + if (val == 0) {
  2846 + this.iframaUrl =
  2847 + `https://jy.scjysm.asia:18086/cdwltool/addEmptyLottery?token=${token}&channel=shangye&thirdPartyUrl=http://localhost:9529/#/investigation/index`
  2848 + } else if (val == 1) {
  2849 + this.iframaUrl =
  2850 + `https://jy.scjysm.asia:18086/cdwltool/addEmptyLottery?token=${token}&id=${this.jiangli.id}&title=活动详情&channel=shangye&thirdPartyUrl=http://localhost:9529/#/investigation/index`
  2851 + } else if (val == 2) {
  2852 + this.iframaUrl =
  2853 + `https://jy.scjysm.asia:18086/cdwltool/addEmptyLottery?token=${token}&id=${this.jiangli.id}&channel=shangye&thirdPartyUrl=http://localhost:9529/#/investigation/index`
  2854 + }
  2855 +
  2856 + // window.location.href =
  2857 + },
  2858 + getStatusText(val) {
  2859 + switch (val) {
  2860 + case '1':
  2861 + return '大转盘';
  2862 + case '2':
  2863 + return '砸金蛋';
  2864 + case '3':
  2865 + return '刮刮卡';
  2866 + case '4':
  2867 + return '翻牌乐';
  2868 + case '5':
  2869 + return '福袋';
  2870 + case '6':
  2871 + return '摇一摇';
  2872 + default:
  2873 + return '无';
  2874 + }
  2875 + }
  2876 + }
  2877 +
  2878 + }
2551 </script> 2879 </script>
2552 2880
2553 <style scoped> 2881 <style scoped>
2554 - .zhuti {  
2555 - padding: 0 20px 20px 20px;  
2556 - min-height: calc(100vh - 50px - 20px);  
2557 - background-color: #Fff;  
2558 -  
2559 - }  
2560 -  
2561 - .chengeXia {  
2562 - border-bottom: 6px solid #3F9B6A;  
2563 - padding-bottom: 4px;  
2564 - color: #3F9B6A;  
2565 - }  
2566 -  
2567 - /deep/ .el-form-item__content {  
2568 - line-height: 0;  
2569 - }  
2570 -  
2571 - .tableBtn {  
2572 - display: inline-block;  
2573 - margin-right: 10px;  
2574 - color: #ACACAC;  
2575 - cursor: pointer;  
2576 - }  
2577 -  
2578 - .formSearch {  
2579 - display: flex;  
2580 - width: 100%;  
2581 - font-size: 14px;  
2582 - justify-content: space-between;  
2583 - }  
2584 -  
2585 - .greens {  
2586 - color: #3F9B6A;  
2587 - }  
2588 -  
2589 - /deep/ .el-table__row {  
2590 - font-size: 14px;  
2591 - color: #000000e6;  
2592 - height: 42px;  
2593 - }  
2594 -  
2595 - .fenye {  
2596 - margin-top: 20px;  
2597 - display: flex;  
2598 - justify-content: flex-end;  
2599 - }  
2600 -  
2601 - /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {  
2602 - background-color: #3F9B6A;  
2603 - }  
2604 -  
2605 - .el-row {  
2606 - margin-bottom: 20px;  
2607 -  
2608 - &:last-child {  
2609 - margin-bottom: 0;  
2610 - }  
2611 - }  
2612 -  
2613 - .el-col {  
2614 - border-radius: 4px;  
2615 - }  
2616 -  
2617 - .bg-purple-dark {  
2618 - background: #99a9bf;  
2619 - }  
2620 -  
2621 - .bg-purple {  
2622 - background: #d3dce6;  
2623 - }  
2624 -  
2625 - .bg-purple-light {  
2626 - background: #e5e9f2;  
2627 - }  
2628 -  
2629 - .grid-content {  
2630 - border-radius: 4px;  
2631 - min-height: 36px;  
2632 - }  
2633 -  
2634 - .row-bg {  
2635 - padding: 10px 0;  
2636 - background-color: #f9fafc;  
2637 - }  
2638 -  
2639 - /deep/ .bg-purple[data-v-0e3fe4ec] {  
2640 - background: #fff;  
2641 - height: 50px;  
2642 - }  
2643 -  
2644 - /deep/ .bg-purple[data-v-3bebae82] {  
2645 - background: #fff;  
2646 - height: 50px;  
2647 - }  
2648 -  
2649 - ::v-deep .bg-purple {  
2650 - background: #fff;  
2651 - height: 50px;  
2652 - }  
2653 -  
2654 - /deep/ .el-form--label-top .el-form-item__label {  
2655 - padding: 0;  
2656 - }  
2657 -  
2658 - ::v-deep .el-form-item {  
2659 - margin-bottom: 16px;  
2660 - }  
2661 -  
2662 - .device-form .el-form-item__label::after {  
2663 - content: "*";  
2664 - color: #1A1A1A;  
2665 - margin-left: 5px;  
2666 - font-size: 16px;  
2667 - }  
2668 -  
2669 -  
2670 - ::v-deep .el-dialog__wrapper {  
2671 - .el-dialog__header {  
2672 - background-color: #FAFAFA;  
2673 - }  
2674 - }  
2675 -  
2676 - ::v-deep .el-input__inner:focus {  
2677 - border: #3F9B6A 1px solid;  
2678 - }  
2679 -  
2680 - .dialog-footer {  
2681 - display: flex;  
2682 - justify-content: flex-end;  
2683 - border-top: solid rgba(209, 209, 209, 0.2) 2px;  
2684 - padding-top: 20px;  
2685 - }  
2686 -  
2687 - ::v-deep .el-input__inner:focus {  
2688 - border: #3F9B6A 1px solid;  
2689 - }  
2690 -  
2691 - ::v-deep .el-input__inner:hover {  
2692 - border: #3F9B6A 1px solid;  
2693 - }  
2694 -  
2695 - ::v-deep .el-select .el-input.is-focus .el-input__inner {  
2696 - border-color: #3F9B6A  
2697 - }  
2698 -  
2699 - .el-select-dropdown__item.selected {  
2700 - color: #3F9B6A;  
2701 - }  
2702 -  
2703 - .el-pagination__sizes .el-input .el-input__inner:hover {  
2704 - border-color: #3F9B6A;  
2705 - }  
2706 -  
2707 - ::v-deep .el-dialog__wrapper {  
2708 -  
2709 - .dialog_css {  
2710 - margin-right: 12px;  
2711 - margin-top: 61px !important;  
2712 -  
2713 - .el-dialog__title {  
2714 - font-size: 16px !important;  
2715 - font-weight: 600;  
2716 - color: #000;  
2717 - }  
2718 - }  
2719 -  
2720 - .diaslog_zhong {  
2721 - margin-left: 25%;  
2722 - margin-top: 61px !important;  
2723 - }  
2724 -  
2725 - }  
2726 -  
2727 - ::v-deep .diaslog_zhong {  
2728 - margin-left: 20%;  
2729 - margin-top: 61px !important;  
2730 -  
2731 - .el-dialog__header {  
2732 - background-color: #fff;  
2733 - border-bottom: 1px solid #EFEFEF;  
2734 -  
2735 - .el-dialog__title {  
2736 - font-size: 14px;  
2737 - color: #000000e6;  
2738 - }  
2739 - }  
2740 -  
2741 - .el-dialog__body {  
2742 - padding: 10px 30px 30px 20px  
2743 - }  
2744 - }  
2745 -  
2746 - /deep/ .el-table_1_column_8 .hetong {  
2747 - color: #7DBB9A;  
2748 - text-decoration: underline;  
2749 - }  
2750 -  
2751 - /deep/ .first-column-bg {  
2752 - background-color: #FAFAFA !important;  
2753 - }  
2754 -  
2755 - ::v-deep .textarea {  
2756 - width: 85%;  
2757 -  
2758 - .el-textarea__inner {  
2759 - width: 100%;  
2760 - }  
2761 - }  
2762 -  
2763 - ::v-deep .pass_input {  
2764 - width: 100%;  
2765 -  
2766 - .el-input__inner {  
2767 - border: none;  
2768 - padding: 0;  
2769 - }  
2770 - }  
2771 -  
2772 - ::v-deep .pass_select {  
2773 - width: 100%;  
2774 -  
2775 - .el-input__inner {  
2776 - border: none;  
2777 - padding: 0;  
2778 - }  
2779 -  
2780 - .el-icon-arrow-up:before {  
2781 - content: ''  
2782 - }  
2783 -  
2784 - }  
2785 -  
2786 - /deep/ .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {  
2787 - background-color: #fff;  
2788 - }  
2789 -  
2790 - /deep/ .el-radio__label,  
2791 - /deep/ .el-checkbox__label {  
2792 - white-space: normal !important;  
2793 - word-break: break-all !important;  
2794 - } 2882 + .zhuti {
  2883 + padding: 0 20px 20px 20px;
  2884 + min-height: calc(100vh - 50px - 20px);
  2885 + background-color: #Fff;
  2886 +
  2887 + }
  2888 +
  2889 + .chengeXia {
  2890 + border-bottom: 6px solid #3F9B6A;
  2891 + padding-bottom: 4px;
  2892 + color: #3F9B6A;
  2893 + }
  2894 +
  2895 + /deep/ .el-form-item__content {
  2896 + line-height: 0;
  2897 + }
  2898 +
  2899 + .tableBtn {
  2900 + display: inline-block;
  2901 + margin-right: 10px;
  2902 + color: #ACACAC;
  2903 + cursor: pointer;
  2904 + }
  2905 +
  2906 + .formSearch {
  2907 + display: flex;
  2908 + width: 100%;
  2909 + font-size: 14px;
  2910 + justify-content: space-between;
  2911 + }
  2912 +
  2913 + .greens {
  2914 + color: #3F9B6A;
  2915 + }
  2916 +
  2917 + /deep/ .el-table__row {
  2918 + font-size: 14px;
  2919 + color: #000000e6;
  2920 + height: 42px;
  2921 + }
  2922 +
  2923 + .fenye {
  2924 + margin-top: 20px;
  2925 + display: flex;
  2926 + justify-content: flex-end;
  2927 + }
  2928 +
  2929 + /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
  2930 + background-color: #3F9B6A;
  2931 + }
  2932 +
  2933 + .el-row {
  2934 + margin-bottom: 20px;
  2935 +
  2936 + &:last-child {
  2937 + margin-bottom: 0;
  2938 + }
  2939 + }
  2940 +
  2941 + .el-col {
  2942 + border-radius: 4px;
  2943 + }
  2944 +
  2945 + .bg-purple-dark {
  2946 + background: #99a9bf;
  2947 + }
  2948 +
  2949 + .bg-purple {
  2950 + background: #d3dce6;
  2951 + }
  2952 +
  2953 + .bg-purple-light {
  2954 + background: #e5e9f2;
  2955 + }
  2956 +
  2957 + .grid-content {
  2958 + border-radius: 4px;
  2959 + min-height: 36px;
  2960 + }
  2961 +
  2962 + .row-bg {
  2963 + padding: 10px 0;
  2964 + background-color: #f9fafc;
  2965 + }
  2966 +
  2967 + /deep/ .bg-purple[data-v-0e3fe4ec] {
  2968 + background: #fff;
  2969 + height: 50px;
  2970 + }
  2971 +
  2972 + /deep/ .bg-purple[data-v-3bebae82] {
  2973 + background: #fff;
  2974 + height: 50px;
  2975 + }
  2976 +
  2977 + ::v-deep .bg-purple {
  2978 + background: #fff;
  2979 + height: 50px;
  2980 + }
  2981 +
  2982 + /deep/ .el-form--label-top .el-form-item__label {
  2983 + padding: 0;
  2984 + }
  2985 +
  2986 + ::v-deep .el-form-item {
  2987 + margin-bottom: 16px;
  2988 + }
  2989 +
  2990 + .device-form .el-form-item__label::after {
  2991 + content: "*";
  2992 + color: #1A1A1A;
  2993 + margin-left: 5px;
  2994 + font-size: 16px;
  2995 + }
  2996 +
  2997 + ::v-deep .el-dialog__wrapper {
  2998 + .el-dialog__header {
  2999 + background-color: #FAFAFA;
  3000 + }
  3001 + }
  3002 +
  3003 + ::v-deep .el-input__inner:focus {
  3004 + border: #3F9B6A 1px solid;
  3005 + }
  3006 +
  3007 + .dialog-footer {
  3008 + display: flex;
  3009 + justify-content: flex-end;
  3010 + border-top: solid rgba(209, 209, 209, 0.2) 2px;
  3011 + padding-top: 20px;
  3012 + }
  3013 +
  3014 + ::v-deep .el-input__inner:focus {
  3015 + border: #3F9B6A 1px solid;
  3016 + }
  3017 +
  3018 + ::v-deep .el-input__inner:hover {
  3019 + border: #3F9B6A 1px solid;
  3020 + }
  3021 +
  3022 + ::v-deep .el-select .el-input.is-focus .el-input__inner {
  3023 + border-color: #3F9B6A
  3024 + }
  3025 +
  3026 + .el-select-dropdown__item.selected {
  3027 + color: #3F9B6A;
  3028 + }
  3029 +
  3030 + .el-pagination__sizes .el-input .el-input__inner:hover {
  3031 + border-color: #3F9B6A;
  3032 + }
  3033 +
  3034 + ::v-deep .el-dialog__wrapper {
  3035 +
  3036 + .dialog_css {
  3037 + margin-right: 12px;
  3038 + margin-top: 61px !important;
  3039 +
  3040 + .el-dialog__title {
  3041 + font-size: 16px !important;
  3042 + font-weight: 600;
  3043 + color: #000;
  3044 + }
  3045 + }
  3046 +
  3047 + .diaslog_zhong {
  3048 + margin-left: 25%;
  3049 + margin-top: 61px !important;
  3050 + }
  3051 +
  3052 + }
  3053 +
  3054 + ::v-deep .diaslog_zhong {
  3055 + margin-left: 20%;
  3056 + margin-top: 61px !important;
  3057 +
  3058 + .el-dialog__header {
  3059 + background-color: #fff;
  3060 + border-bottom: 1px solid #EFEFEF;
  3061 +
  3062 + .el-dialog__title {
  3063 + font-size: 14px;
  3064 + color: #000000e6;
  3065 + }
  3066 + }
  3067 +
  3068 + .el-dialog__body {
  3069 + padding: 10px 30px 30px 20px
  3070 + }
  3071 + }
  3072 +
  3073 + /deep/ .el-table_1_column_8 .hetong {
  3074 + color: #7DBB9A;
  3075 + text-decoration: underline;
  3076 + }
  3077 +
  3078 + /deep/ .first-column-bg {
  3079 + background-color: #FAFAFA !important;
  3080 + }
  3081 +
  3082 + ::v-deep .textarea {
  3083 + width: 85%;
  3084 +
  3085 + .el-textarea__inner {
  3086 + width: 100%;
  3087 + }
  3088 + }
  3089 +
  3090 + ::v-deep .pass_input {
  3091 + width: 100%;
  3092 +
  3093 + .el-input__inner {
  3094 + border: none;
  3095 + padding: 0;
  3096 + }
  3097 + }
  3098 +
  3099 + ::v-deep .pass_select {
  3100 + width: 100%;
  3101 +
  3102 + .el-input__inner {
  3103 + border: none;
  3104 + padding: 0;
  3105 + }
  3106 +
  3107 + .el-icon-arrow-up:before {
  3108 + content: ''
  3109 + }
  3110 +
  3111 + }
  3112 +
  3113 + /deep/ .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
  3114 + background-color: #fff;
  3115 + }
  3116 +
  3117 + /deep/ .el-radio__label,
  3118 + /deep/ .el-checkbox__label {
  3119 + white-space: normal !important;
  3120 + word-break: break-all !important;
  3121 + }
  3122 +
  3123 + /deep/ .el-input-number__decrease,
  3124 + /deep/.el-input-number__increase {
  3125 + height: 30px !important;
  3126 + line-height: 32px !important;
  3127 + margin-top: 3px;
  3128 + }
2795 </style> 3129 </style>
2796 <style lang="scss" scoped> 3130 <style lang="scss" scoped>
2797 - ::v-deep .bian_css {  
2798 - .el-dialog__header {  
2799 - padding: 0px;  
2800 - }  
2801 -  
2802 - .el-input__inner {  
2803 - height: 18px;  
2804 - border: 0px;  
2805 - margin-top: 0px;  
2806 - }  
2807 -  
2808 - .el-input__inner:hover {  
2809 - border: 0px;  
2810 - }  
2811 -  
2812 - .el-input__inner:focus {  
2813 - border: 0px;  
2814 - }  
2815 - }  
2816 -  
2817 - ::v-deep .buttonHover:hover {  
2818 - color: #3f9b6a !important;  
2819 - border-color: #c5e1d2 !important;  
2820 - background-color: #ecf5f0 !important;  
2821 - outline: none;  
2822 - }  
2823 -  
2824 - ::v-deep .el-pagination__total {  
2825 - position: absolute;  
2826 - left: 33px;  
2827 - }  
2828 -  
2829 - ::v-deep .diaslog_zhong {  
2830 - .el-dialog__body {  
2831 - padding: 10px 20px 20px 20px;  
2832 - }  
2833 -  
2834 - .el-upload--picture-card {  
2835 - width: 130px;  
2836 - height: 130px;  
2837 - }  
2838 - }  
2839 -  
2840 - ::v-deep .el-radio-group {  
2841 - .el-radio {  
2842 - font-weight: 400;  
2843 - height: 29px;  
2844 - }  
2845 - }  
2846 -  
2847 - ::v-deep .el-checkbox-group {  
2848 - .el-checkbox {  
2849 - height: 29px;  
2850 - }  
2851 -  
2852 - label {  
2853 - font-weight: 400;  
2854 - }  
2855 - }  
2856 -  
2857 - .questionnaire {  
2858 - width: 100%;  
2859 - flex-grow: 1;  
2860 - background-color: white;  
2861 - box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);  
2862 - border-radius: 5px;  
2863 - box-sizing: border-box;  
2864 - }  
2865 -  
2866 - .question-title {  
2867 - // font-size: 18px;  
2868 - color: #000;  
2869 - margin-bottom: 10px;  
2870 - }  
2871 -  
2872 - .question {  
2873 - background-color: white;  
2874 - padding: 15px;  
2875 - margin: 10px 0;  
2876 - border-radius: 10px;  
2877 - }  
2878 -  
2879 - // ::v-deep .tongyong_css {  
2880 - // max-height: 850px;  
2881 -  
2882 - // }  
2883 -  
2884 -  
2885 - // .tongyong_css {  
2886 - // max-height: calc(100vh - 200px); /* Adjust the 200px to the combined height of your header and footer */  
2887 - // overflow-y: auto;  
2888 - // }  
2889 -</style> 3131 + ::v-deep .bian_css {
  3132 + .el-dialog__header {
  3133 + padding: 0px;
  3134 + }
  3135 +
  3136 + .el-input__inner {
  3137 + height: 18px;
  3138 + border: 0px;
  3139 + margin-top: 0px;
  3140 + }
  3141 +
  3142 + .el-input__inner:hover {
  3143 + border: 0px;
  3144 + }
  3145 +
  3146 + .el-input__inner:focus {
  3147 + border: 0px;
  3148 + }
  3149 + }
  3150 +
  3151 + ::v-deep .buttonHover:hover {
  3152 + color: #3f9b6a !important;
  3153 + border-color: #c5e1d2 !important;
  3154 + background-color: #ecf5f0 !important;
  3155 + outline: none;
  3156 + }
  3157 +
  3158 + ::v-deep .el-pagination__total {
  3159 + position: absolute;
  3160 + left: 33px;
  3161 + }
  3162 +
  3163 + ::v-deep .diaslog_zhong {
  3164 + .el-dialog__body {
  3165 + padding: 10px 20px 20px 20px;
  3166 + }
  3167 +
  3168 + .el-upload--picture-card {
  3169 + width: 130px;
  3170 + height: 130px;
  3171 + }
  3172 + }
  3173 +
  3174 + ::v-deep .el-radio-group {
  3175 + .el-radio {
  3176 + font-weight: 400;
  3177 + height: 29px;
  3178 + }
  3179 + }
  3180 +
  3181 + ::v-deep .el-checkbox-group {
  3182 + .el-checkbox {
  3183 + height: 29px;
  3184 + }
  3185 +
  3186 + label {
  3187 + font-weight: 400;
  3188 + }
  3189 + }
  3190 +
  3191 + .questionnaire {
  3192 + width: 100%;
  3193 + flex-grow: 1;
  3194 + background-color: white;
  3195 + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  3196 + border-radius: 5px;
  3197 + box-sizing: border-box;
  3198 + }
  3199 +
  3200 + .question-title {
  3201 + // font-size: 18px;
  3202 + color: #000;
  3203 + margin-bottom: 10px;
  3204 + }
  3205 +
  3206 + .question {
  3207 + background-color: white;
  3208 + padding: 15px;
  3209 + margin: 10px 0;
  3210 + border-radius: 10px;
  3211 + }
  3212 +
  3213 + .answerItem {
  3214 + width: auto;
  3215 + padding: 10px 15px;
  3216 + margin: 0 0 5px 10px;
  3217 + border-radius: 6px;
  3218 + background-color: #f5f7fa;
  3219 + display: flex;
  3220 + align-items: center;
  3221 + }
  3222 +
  3223 + // ::v-deep .tongyong_css {
  3224 + // max-height: 850px;
  3225 +
  3226 + // }
  3227 +
  3228 + // .tongyong_css {
  3229 + // max-height: calc(100vh - 200px); /* Adjust the 200px to the combined height of your header and footer */
  3230 + // overflow-y: auto;
  3231 + // }
  3232 + ::v-deep .xddTable {
  3233 + height: 100% !important;
  3234 +
  3235 + .el-table__body-wrapper {
  3236 + overflow: auto !important;
  3237 + height: 100% !important;
  3238 + }
  3239 +
  3240 + .el-table__body-wrapper is-scrolling-none {
  3241 + height: 100% !important;
  3242 + }
  3243 +
  3244 + .el-table--scrollable-y .el-table__body-wrapper {
  3245 + overflow-y: inherit !important;
  3246 + }
  3247 +
  3248 + }
  3249 +</style>
2890 \ No newline at end of file 3250 \ No newline at end of file
admin-web-master/src/views/investigation/question.vue
1 <template> 1 <template>
2 - <div style="background-color:#f7f7f7;padding:10px 10px;"> 2 + <div style="background-color: #f7f7f7; padding: 10px 10px">
3 <div class="zhuti"> 3 <div class="zhuti">
4 - <div style="height:58px;line-height:58px;">  
5 - <div style="color:#0006"> <span>问卷调查</span> <span style="padding:0 5px;">></span> <span  
6 - style="color:#000000e6">题库管理</span></div> 4 + <div style="height: 58px; line-height: 58px">
  5 + <div style="color: #0006">
  6 + <span>问卷调查</span> <span style="padding: 0 5px">></span>
  7 + <span style="color: #000000e6">题库管理</span>
  8 + </div>
7 </div> 9 </div>
8 <!-- 线上 --> 10 <!-- 线上 -->
9 <div> 11 <div>
10 <!-- 搜索 --> 12 <!-- 搜索 -->
11 13
12 <div class="formSearch"> 14 <div class="formSearch">
13 -  
14 <el-form :inline="true" :model="formSel"> 15 <el-form :inline="true" :model="formSel">
15 <el-form-item label="题库管理"> 16 <el-form-item label="题库管理">
16 - <el-select v-model="formSel.questionBank" placeholder="请选择" style="width:168px;margin-right: 15px" @change="tikuBox">  
17 - <el-option label="用户端题库" value="用户端题库" />  
18 - <el-option label="商户端题库" value="商户端题库" />  
19 - <el-option label="公共端题库" value="公共端题库" />  
20 - </el-select> 17 + <el-select v-model="formSel.questionBank" placeholder="请选择" style="width: 168px; margin-right: 15px"
  18 + @change="tikuBox">
  19 + <el-option label="用户端题库" value="用户端题库" />
  20 + <el-option label="商户端题库" value="商户端题库" />
  21 + <el-option label="公共端题库" value="公共端题库" />
  22 + </el-select>
21 </el-form-item> 23 </el-form-item>
22 <el-form-item label="题目"> 24 <el-form-item label="题目">
23 - <el-input v-model="formSel.tikuTitle" placeholder="请输入" style="width:168px;" /> 25 + <el-input v-model="formSel.tikuTitle" placeholder="请输入" style="width: 168px" />
24 </el-form-item> 26 </el-form-item>
25 <el-form-item label="题型"> 27 <el-form-item label="题型">
26 - <el-select v-model="formSel.questionType" placeholder="请选择" style="width:168px;margin-right: 15px"> 28 + <el-select v-model="formSel.questionType" placeholder="请选择" style="width: 168px; margin-right: 15px">
27 <el-option label="单选" value="单选" /> 29 <el-option label="单选" value="单选" />
28 <el-option label="多选" value="多选" /> 30 <el-option label="多选" value="多选" />
29 <el-option label="文本" value="文本" /> 31 <el-option label="文本" value="文本" />
30 </el-select> 32 </el-select>
31 </el-form-item> 33 </el-form-item>
32 -  
33 </el-form> 34 </el-form>
34 <div> 35 <div>
35 - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">查询 36 + <el-button style="background-color: #3f9b6a; color: #fff" @click="onSubmit">查询
36 </el-button> 37 </el-button>
37 - <el-button @click="resetting" class="buttonHover"  
38 - style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置 38 + <el-button class="buttonHover" style="
  39 + color: #606266;
  40 + border: 1px solid #dddfe5;
  41 + background-color: #fff;
  42 + " @click="resetting">重置
39 </el-button> 43 </el-button>
40 </div> 44 </div>
41 </div> 45 </div>
42 - <div style="margin-bottom: 20px;"> 46 + <div style="margin-bottom: 20px">
43 <div> 47 <div>
44 - <el-button  
45 - style="background-color: #3F9B6A;color: #fff;padding:8px 15px;" icon="el-icon-circle-plus-outline"  
46 - @click="addTimu">新增</el-button> 48 + <el-button style="background-color: #3f9b6a; color: #fff; padding: 8px 15px"
  49 + icon="el-icon-circle-plus-outline" @click="addTimu">新增</el-button>
47 </div> 50 </div>
48 </div> 51 </div>
49 <!-- 表格 --> 52 <!-- 表格 -->
50 53
51 - <el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"  
52 - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"  
53 - tooltip-effect="dark custom-tooltip-effect"> 54 + <el-table :data="tableData.slice(
  55 + (currentPage - 1) * pageSize,
  56 + currentPage * pageSize
  57 + )
  58 + " :header-cell-style="{
  59 + fontSize: '14px',
  60 + color: '#0009',
  61 + fontWeight: 'normal',
  62 + backgroundColor: '#F2F3F5',
  63 + }" tooltip-effect="dark custom-tooltip-effect">
54 <el-table-column label="序号" min-width="150"> 64 <el-table-column label="序号" min-width="150">
55 <template slot-scope="scope"> 65 <template slot-scope="scope">
56 - {{scope.$index +1}} 66 + {{ scope.$index + 1 }}
57 </template> 67 </template>
58 </el-table-column> 68 </el-table-column>
59 69
60 - <el-table-column label="题目" prop="tikuTitle" min-width="300" show-overflow-tooltip>  
61 - </el-table-column>  
62 - <el-table-column label="题型" prop="questionType" min-width="150">  
63 -  
64 - </el-table-column> 70 + <el-table-column label="题目" prop="tikuTitle" min-width="300" show-overflow-tooltip />
  71 + <el-table-column label="题型" prop="questionType" min-width="150" />
65 72
66 <!-- <el-table-column label="创建人" prop="createUser" min-width="150"> 73 <!-- <el-table-column label="创建人" prop="createUser" min-width="150">
67 </el-table-column> --> 74 </el-table-column> -->
68 - <el-table-column prop="createDate" label="创建时间" min-width="200">  
69 -  
70 - </el-table-column> 75 + <el-table-column prop="createDate" label="创建时间" min-width="200" />
71 <el-table-column label="操作" min-width="200"> 76 <el-table-column label="操作" min-width="200">
72 <template slot-scope="scope"> 77 <template slot-scope="scope">
73 - <div @click="details(0,scope.row)" class="tableBtn greens">查看</div>  
74 - <div @click="bianls(scope.row)" class="tableBtn greens">编辑</div> 78 + <div class="tableBtn greens" @click="details(0, scope.row)">
  79 + 查看
  80 + </div>
  81 + <div class="tableBtn greens" @click="bianls(scope.row)">编辑</div>
75 <!-- <div @click="" class="tableBtn greens">发布</div> 82 <!-- <div @click="" class="tableBtn greens">发布</div>
76 <div @click="" class="tableBtn greens">下架</div> --> 83 <div @click="" class="tableBtn greens">下架</div> -->
77 - <div @click="tikuDel(scope.row)" class="tableBtn greens">删除</div> 84 + <div class="tableBtn greens" @click="tikuDel(scope.row)">
  85 + 删除
  86 + </div>
78 <!-- <div @click="addbuss(3,scope.row)" class="tableBtn greens">终止</div> --> 87 <!-- <div @click="addbuss(3,scope.row)" class="tableBtn greens">终止</div> -->
79 </template> 88 </template>
80 </el-table-column> 89 </el-table-column>
81 </el-table> 90 </el-table>
82 <div class="fenye"> 91 <div class="fenye">
83 - <el-pagination :hide-on-single-page='flag' background small size="mini" :current-page="currentPage"  
84 - :page-sizes="[10, 20, 50, 100]" layout="prev, pager, next,total" :total="total " 92 + <el-pagination :hide-on-single-page="flag" background small size="mini" :current-page="currentPage"
  93 + :page-sizes="[10, 20, 50, 100]" layout="prev, pager, next,total" :total="total"
85 @size-change="handleSizeChange" @current-change="handleCurrentChange" /> 94 @size-change="handleSizeChange" @current-change="handleCurrentChange" />
86 </div> 95 </div>
87 </div> 96 </div>
88 -  
89 </div> 97 </div>
90 <!-- 详情框 --> 98 <!-- 详情框 -->
91 - <el-dialog :visible.sync="detbox" custom-class='tongyong_css' style="padding: 0;" width="50%" center 99 + <el-dialog :visible.sync="detbox" custom-class="tongyong_css" style="padding: 0" width="50%" center
92 :close-on-click-modal="false" :show-close="false"> 100 :close-on-click-modal="false" :show-close="false">
93 - <div style="padding:20px;">  
94 - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">详情页</div> 101 + <div style="padding: 20px">
  102 + <div style="font-size: 14px; padding-bottom: 20px; color: #000">
  103 + 详情页
  104 + </div>
95 <div> 105 <div>
96 - <el-descriptions class="margin-top" :column="1" border :labelStyle="labelStyle" :contentStyle="contentStyle">  
97 - <el-descriptions-item>  
98 - <template slot="label">  
99 - 题目  
100 - </template>  
101 - {{secondData.tikuTitle}}  
102 - </el-descriptions-item>  
103 - <el-descriptions-item>  
104 - <template slot="label">  
105 - 题型  
106 - </template>  
107 - {{secondData.questionType}}  
108 - </el-descriptions-item>  
109 - <el-descriptions-item>  
110 - <template slot="label">  
111 - 隶属题库  
112 - </template>  
113 - {{secondData.questionBank}}  
114 - </el-descriptions-item>  
115 - </el-descriptions>  
116 - <el-descriptions class="margin-top" :column="1" border :labelStyle="labelStyle" :contentStyle="contentStyle" v-if="secondData.questionType!='文本'">  
117 - <el-descriptions-item>  
118 - <template slot="label">  
119 - 默认是否必填  
120 - </template>  
121 - {{secondData.isRequired}}  
122 - </el-descriptions-item>  
123 - <el-descriptions-item>  
124 - <template slot="label">  
125 - 设置内容  
126 - </template>  
127 - <div v-for="(value, key) in secondData.optionSettings" :key="key">  
128 - {{ key }}:{{ value }}  
129 - </div>  
130 - </el-descriptions-item>  
131 -  
132 - </el-descriptions> 106 + <el-descriptions class="margin-top" :column="1" border :label-style="labelStyle"
  107 + :content-style="contentStyle">
  108 + <el-descriptions-item>
  109 + <template slot="label"> 题目 </template>
  110 + {{ secondData.tikuTitle }}
  111 + </el-descriptions-item>
  112 + <el-descriptions-item>
  113 + <template slot="label"> 题型 </template>
  114 + {{ secondData.questionType }}
  115 + </el-descriptions-item>
  116 + <el-descriptions-item v-if="secondData.questionType == '多选'">
  117 + <template slot="label"> 最多可选 </template>
  118 + {{ secondData.maxChoose || '0' }}
  119 + </el-descriptions-item>
  120 + <el-descriptions-item>
  121 + <template slot="label"> 隶属题库 </template>
  122 + {{ secondData.questionBank }}
  123 + </el-descriptions-item>
  124 + </el-descriptions>
  125 + <el-descriptions v-if="secondData.questionType != '文本'" class="margin-top" :column="1" border
  126 + :label-style="labelStyle" :content-style="contentStyle">
  127 + <el-descriptions-item>
  128 + <template slot="label"> 默认是否必填 </template>
  129 + {{ secondData.isRequired }}
  130 + </el-descriptions-item>
  131 + <el-descriptions-item>
  132 + <template slot="label"> 设置内容 </template>
  133 + <div v-for="(value, key) in secondData.optionSettings" :key="key">
  134 + {{ key }}:{{ value }}
  135 + </div>
  136 + </el-descriptions-item>
  137 + </el-descriptions>
133 </div> 138 </div>
134 - <div style="padding-top:20px;display:flex;justify-content: flex-end;">  
135 - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"  
136 - @click="detbox = false">返回</el-button> 139 + <div style="padding-top: 20px; display: flex; justify-content: flex-end">
  140 + <el-button class="buttonHover" style="
  141 + color: #606266;
  142 + border: 1px solid #dddfe5;
  143 + background-color: #fff;
  144 + " @click="detbox = false">返回</el-button>
137 </div> 145 </div>
138 </div> 146 </div>
139 -  
140 </el-dialog> 147 </el-dialog>
141 148
142 <!-- 新增 --> 149 <!-- 新增 -->
143 - <el-dialog :visible.sync="ggXin" custom-class="tongyong_css" style="padding: 0;" width="60%"  
144 - class="dialog_css_Xq" center :close-on-click-modal="false" :show-close="false">  
145 - <div style="padding:20px;">  
146 - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">新增题目</div>  
147 - <div style="padding:20px;">  
148 - <el-form ref="reform" :model="formInline" label-width="140px" :rules="rules">  
149 - <el-form-item label="题目" prop="tikuTitle">  
150 - <el-input v-model="formInline.tikuTitle" maxlength="100"></el-input>  
151 - </el-form-item>  
152 - <el-form-item label="题型" prop="questionType">  
153 - <el-select v-model="formInline.questionType" placeholder="请选择">  
154 - <el-option label="单选" value="单选" />  
155 - <el-option label="多选" value="多选" />  
156 - <el-option label="文本" value="文本" />  
157 - </el-select>  
158 - </el-form-item>  
159 - <el-form-item label="隶属题库" prop="questionBank">  
160 - <el-select v-model="formInline.questionBank" placeholder="请选择">  
161 - <el-option label="用户端题库" value="用户端题库" />  
162 - <el-option label="商户端题库" value="商户端题库" />  
163 - <el-option label="公共端题库" value="公共端题库" />  
164 - </el-select>  
165 - </el-form-item>  
166 - <el-form-item label="是否必填" prop="isRequired">  
167 - <!-- <el-select v-model="formInline.isRequired" placeholder="请选择"> 150 + <el-dialog :visible.sync="ggXin" custom-class="tongyong_css" style="padding: 0" width="60%" class="dialog_css_Xq"
  151 + center :close-on-click-modal="false" :show-close="false">
  152 + <div style="padding: 20px">
  153 + <div style="font-size: 14px; padding-bottom: 20px; color: #000">
  154 + 新增题目
  155 + </div>
  156 + <div style="padding: 20px">
  157 + <el-form ref="reform" :model="formInline" label-width="140px" :rules="rules">
  158 + <el-form-item label="题目" prop="tikuTitle">
  159 + <el-input v-model="formInline.tikuTitle" maxlength="100" />
  160 + </el-form-item>
  161 + <el-form-item label="题型" prop="questionType">
  162 + <el-select v-model="formInline.questionType" placeholder="请选择">
  163 + <el-option label="单选" value="单选" />
  164 + <el-option label="多选" value="多选" />
  165 + <el-option label="文本" value="文本" />
  166 + </el-select>
  167 + </el-form-item>
  168 + <!-- 如果formInline.questionType为多选,那么就显示最多可以选择多少个,计步器来设置,默认是 0 -->
  169 + <el-form-item v-if="formInline.questionType == '多选'" label="最多可选" prop="maxChoose">
  170 + <el-input-number v-model="formInline.maxChoose" :min="0" :max="options.length" />0为不限制填写数量
  171 + </el-form-item>
  172 + <el-form-item label="隶属题库" prop="questionBank">
  173 + <el-select v-model="formInline.questionBank" placeholder="请选择">
  174 + <el-option label="用户端题库" value="用户端题库" />
  175 + <el-option label="商户端题库" value="商户端题库" />
  176 + <el-option label="公共端题库" value="公共端题库" />
  177 + </el-select>
  178 + </el-form-item>
  179 + <el-form-item label="布局类型" prop="layoutType">
  180 + <el-radio-group v-model="formInline.layoutType" style="margin-top: 13px">
  181 + <el-radio :label="1">垂直布局</el-radio>
  182 + <el-radio :label="2">自由布局</el-radio>
  183 + </el-radio-group>
  184 + </el-form-item>
  185 + <el-form-item label="是否必填" prop="isRequired">
  186 + <!-- <el-select v-model="formInline.isRequired" placeholder="请选择">
168 <el-option label="必填" value="必填" /> 187 <el-option label="必填" value="必填" />
169 <el-option label="非必填" value="非必填" /> 188 <el-option label="非必填" value="非必填" />
170 </el-select> --> 189 </el-select> -->
171 - <el-radio-group v-model="formInline.isRequired" style="margin-top:13px;">  
172 - <el-radio label="必填">必填</el-radio>  
173 - <el-radio label="非必填">非必填</el-radio>  
174 -  
175 - </el-radio-group>  
176 - </el-form-item>  
177 - <el-form-item label="答案设置" v-if="formInline.questionType !='文本'" prop="optionSettings">  
178 - <el-table :data="options" :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">  
179 - <el-table-column prop="index" label="序号" width="80">  
180 - <template #default="scope">  
181 - {{scope.$index + 1}}  
182 - </template>  
183 - </el-table-column>  
184 - <el-table-column prop="name" label="选项名称" width="300">  
185 - <template #default="scope">  
186 - <el-input v-model="scope.row.name" :readonly="scope.row.readonly" maxlength="50"></el-input>  
187 - </template>  
188 - </el-table-column>  
189 - <el-table-column prop="name" label="分数">  
190 - <template #default="scope">  
191 - <el-input  
192 - v-model.number="scope.row.num"  
193 - :min="0"  
194 - :max="100"  
195 - @input="validateScore(scope.row)"  
196 - :readonly="scope.row.readonly"  
197 - ></el-input>  
198 - </template>  
199 - </el-table-column>  
200 - <el-table-column label="操作">  
201 - <template #default="scope">  
202 - <div class="tableBtn greens" @click="deleteOption(scope.$index)">删除</div>  
203 - </template>  
204 - </el-table-column>  
205 - </el-table>  
206 - <el-button @click="addOption" style="width:100%;background-color: #3F9B6A;color: #fff">+ 添加</el-button>  
207 - </el-form-item>  
208 - </el-form>  
209 - </div>  
210 -  
211 - <div style="padding-top:20px;display:flex;justify-content: flex-end;">  
212 - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"  
213 - @click="closeFn(1)">返回</el-button>  
214 - <el-button @click="addCheck(2)" style="background-color: #3F9B6A;color: #fff">确认</el-button> 190 + <el-radio-group v-model="formInline.isRequired" style="margin-top: 13px">
  191 + <el-radio label="必填">必填</el-radio>
  192 + <el-radio label="非必填">非必填</el-radio>
  193 + </el-radio-group>
  194 + </el-form-item>
  195 + <el-form-item v-if="formInline.questionType != '文本'" label="答案设置" prop="optionSettings">
  196 + <el-table :data="options" :header-cell-style="{
  197 + fontSize: '14px',
  198 + color: '#0009',
  199 + fontWeight: 'normal',
  200 + backgroundColor: '#F2F3F5',
  201 + }">
  202 + <el-table-column prop="index" label="序号" width="80">
  203 + <template #default="scope">
  204 + {{ scope.$index + 1 }}
  205 + </template>
  206 + </el-table-column>
  207 + <el-table-column prop="name" label="选项名称" width="300">
  208 + <template #default="scope">
  209 + <el-input v-model="scope.row.name" :readonly="scope.row.readonly" maxlength="50" />
  210 + </template>
  211 + </el-table-column>
  212 + <el-table-column prop="name" label="分数">
  213 + <template #default="scope">
  214 + <el-input v-model.number="scope.row.num" :min="0" :max="100" :readonly="scope.row.readonly"
  215 + @input="validateScore(scope.row)" />
  216 + </template>
  217 + </el-table-column>
  218 + <el-table-column label=""  min-width="120">
  219 + <template #default="{ $index }">
  220 + <span style="cursor: pointer;margin-right: 5px; color: #3F9B6A;" @click="answerMoveUp($index)"
  221 + v-if="$index != 0">↑</span>
  222 + <span style="cursor: pointer; color: #3F9B6A;" @click="answerMoveDown($index)"
  223 + v-if="$index != (options.length - 1)">↓</span>
  224 + </template>
  225 + </el-table-column>
  226 + <el-table-column label="操作">
  227 + <template #default="scope">
  228 + <div class="tableBtn greens" @click="deleteOption(scope.$index)">
  229 + 删除
  230 + </div>
  231 + </template>
  232 + </el-table-column>
  233 + </el-table>
  234 + <el-button style="width: 100%; background-color: #3f9b6a; color: #fff" @click="addOption">+
  235 + 添加</el-button>
  236 + </el-form-item>
  237 + </el-form>
  238 + </div>
215 239
  240 + <div style="padding-top: 20px; display: flex; justify-content: flex-end">
  241 + <el-button class="buttonHover" style="
  242 + color: #606266;
  243 + border: 1px solid #dddfe5;
  244 + background-color: #fff;
  245 + " @click="closeFn(1)">返回</el-button>
  246 + <el-button style="background-color: #3f9b6a; color: #fff" @click="addCheck(2)">确认</el-button>
216 </div> 247 </div>
217 </div> 248 </div>
218 -  
219 </el-dialog> 249 </el-dialog>
220 <!-- 编辑 --> 250 <!-- 编辑 -->
221 - <el-dialog :visible.sync="bainjiBox" custom-class="tongyong_css" style="padding: 0;" width="60%"  
222 - center :close-on-click-modal="false" :show-close="false">  
223 - <div style="padding:20px;">  
224 - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">编辑问卷</div>  
225 - <div style="padding:20px;">  
226 - <el-form ref="bianform" :model="secondData" :rules="rules" label-width="140px">  
227 - <el-form-item label="题目" prop="tikuTitle">  
228 - <el-input v-model="secondData.tikuTitle" maxlength="100"></el-input>  
229 - </el-form-item>  
230 - <el-form-item label="题型" prop="questionType">  
231 - <el-select v-model="secondData.questionType" placeholder="请选择" disabled>  
232 - <el-option label="单选" value="单选" />  
233 - <el-option label="多选" value="多选" />  
234 - <el-option label="文本" value="文本" />  
235 - </el-select>  
236 - </el-form-item>  
237 - <el-form-item label="隶属题库" prop="questionBank">  
238 - <el-select v-model="secondData.questionBank" placeholder="请选择">  
239 - <el-option label="用户端题库" value="用户端题库" />  
240 - <el-option label="商户端题库" value="商户端题库" />  
241 - <el-option label="公共端题库" value="公共端题库" />  
242 - </el-select>  
243 - </el-form-item>  
244 - <el-form-item label="是否必填" prop="isRequired">  
245 - <!-- <el-select v-model="secondData.isRequired" placeholder="请选择"> 251 + <el-dialog :visible.sync="bainjiBox" custom-class="tongyong_css" style="padding: 0" width="60%" center
  252 + :close-on-click-modal="false" :show-close="false">
  253 + <div style="padding: 20px">
  254 + <div style="font-size: 14px; padding-bottom: 20px; color: #000">
  255 + 编辑题目
  256 + </div>
  257 + <div style="padding: 20px">
  258 + <el-form ref="bianform" :model="secondData" :rules="rules" label-width="140px">
  259 + <el-form-item label="题目" prop="tikuTitle">
  260 + <el-input v-model="secondData.tikuTitle" maxlength="100" />
  261 + </el-form-item>
  262 + <el-form-item label="题型" prop="questionType">
  263 + <el-select v-model="secondData.questionType" placeholder="请选择" disabled>
  264 + <el-option label="单选" value="单选" />
  265 + <el-option label="多选" value="多选" />
  266 + <el-option label="文本" value="文本" />
  267 + </el-select>
  268 + </el-form-item>
  269 + <!-- 如果formInline.questionType为多选,那么就显示最多可以选择多少个,计步器来设置,默认是 0 -->
  270 + <el-form-item v-if="secondData.questionType == '多选'" label="最多可选" prop="maxChoose">
  271 + <el-input-number v-model="secondData.maxChoose" :min="0" :max="options.length" /> 0为不限制填写数量
  272 + </el-form-item>
  273 + <el-form-item label="隶属题库" prop="questionBank">
  274 + <el-select v-model="secondData.questionBank" placeholder="请选择">
  275 + <el-option label="用户端题库" value="用户端题库" />
  276 + <el-option label="商户端题库" value="商户端题库" />
  277 + <el-option label="公共端题库" value="公共端题库" />
  278 + </el-select>
  279 + </el-form-item>
  280 + <el-form-item label="布局类型" prop="layoutType">
  281 + <el-radio-group v-model="secondData.layoutType" style="margin-top: 13px">
  282 + <el-radio :label="1">垂直布局</el-radio>
  283 + <el-radio :label="2">自由布局</el-radio>
  284 + </el-radio-group>
  285 + </el-form-item>
  286 + <el-form-item label="是否必填" prop="isRequired">
  287 + <!-- <el-select v-model="secondData.isRequired" placeholder="请选择">
246 <el-option label="必填" value="必填" /> 288 <el-option label="必填" value="必填" />
247 <el-option label="非必填" value="非必填" /> 289 <el-option label="非必填" value="非必填" />
248 </el-select> --> 290 </el-select> -->
249 - <el-radio-group v-model="secondData.isRequired" style="margin-top:13px;">  
250 - <el-radio label="必填">必填</el-radio>  
251 - <el-radio label="非必填">非必填</el-radio>  
252 -  
253 - </el-radio-group>  
254 - </el-form-item>  
255 - <el-form-item label="答案设置" v-if="secondData.questionType !='文本'">  
256 - <el-table :data="options" :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">  
257 - <el-table-column prop="index" label="序号" width="180">  
258 - <template #default="scope">  
259 - {{scope.$index + 1}}  
260 - </template>  
261 - </el-table-column>  
262 - <el-table-column prop="name" label="选项名称">  
263 - <template #default="scope">  
264 - <el-input v-model="scope.row.name" :readonly="scope.row.readonly"></el-input>  
265 - </template>  
266 - </el-table-column>  
267 - <el-table-column prop="name" label="分数">  
268 - <template #default="scope">  
269 - <el-input v-model="scope.row.num" :min="0"  
270 - :max="100"  
271 - @input="validateScore(scope.row)"  
272 - :readonly="scope.row.readonly"></el-input>  
273 - </template>  
274 - </el-table-column>  
275 - <el-table-column label="操作">  
276 - <template #default="scope">  
277 - <div class="tableBtn greens" @click="deleteOption(scope.$index)">删除</div>  
278 - </template>  
279 - </el-table-column>  
280 - </el-table>  
281 - <el-button @click="addOption" style="width:100%;background-color: #3F9B6A;color: #fff">+ 添加</el-button>  
282 - </el-form-item>  
283 - </el-form>  
284 - </div>  
285 -  
286 - <div style="padding-top:20px;display:flex;justify-content: flex-end;">  
287 - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"  
288 - @click="closeFn(2)">返回</el-button>  
289 - <el-button @click="bianCheck" style="background-color: #3F9B6A;color: #fff">确认</el-button> 291 + <el-radio-group v-model="secondData.isRequired" style="margin-top: 13px">
  292 + <el-radio label="必填">必填</el-radio>
  293 + <el-radio label="非必填">非必填</el-radio>
  294 + </el-radio-group>
  295 + </el-form-item>
  296 + <el-form-item v-if="secondData.questionType != '文本'" label="答案设置">
  297 + <el-table :data="options" :header-cell-style="{
  298 + fontSize: '14px',
  299 + color: '#0009',
  300 + fontWeight: 'normal',
  301 + backgroundColor: '#F2F3F5',
  302 + }">
  303 +
  304 + <el-table-column prop="index" label="序号" width="180">
  305 + <template #default="scope">
  306 + {{ scope.$index + 1 }}
  307 + </template>
  308 + </el-table-column>
  309 + <el-table-column prop="name" label="选项名称">
  310 + <template #default="scope">
  311 + <el-input v-model="scope.row.name" :readonly="scope.row.readonly" />
  312 + </template>
  313 + </el-table-column>
  314 + <el-table-column prop="name" label="分数">
  315 + <template #default="scope">
  316 + <el-input v-model="scope.row.num" :min="0" :max="100" :readonly="scope.row.readonly"
  317 + @input="validateScore(scope.row)" />
  318 + </template>
  319 + </el-table-column>
  320 + <el-table-column label=""  min-width="120">
  321 +                     <template #default="{ $index }">
  322 +                       <span style="cursor: pointer;margin-right: 5px; color: #3F9B6A;"
  323 + @click="answerMoveUp($index)" v-if="$index != 0">↑</span>
  324 +                       <span style="cursor: pointer; color: #3F9B6A;" @click="answerMoveDown($index)"
  325 + v-if="$index != (options.length - 1)">↓</span>
  326 +                     </template>
  327 +                   </el-table-column>
  328 + <el-table-column label="操作">
  329 + <template #default="scope">
  330 + <div class="tableBtn greens" @click="deleteOption(scope.$index)">
  331 + 删除
  332 + </div>
  333 + </template>
  334 + </el-table-column>
  335 +
  336 + </el-table>
  337 +
  338 + <el-button style="width: 100%; background-color: #3f9b6a; color: #fff" @click="addOption">+
  339 + 添加</el-button>
  340 + </el-form-item>
  341 + </el-form>
  342 + </div>
  343 +
  344 + <div style="padding-top: 20px; display: flex; justify-content: flex-end">
  345 + <el-button class="buttonHover" style="
  346 + color: #606266;
  347 + border: 1px solid #dddfe5;
  348 + background-color: #fff;
  349 + " @click="closeFn(2)">返回</el-button>
  350 + <el-button style="background-color: #3f9b6a; color: #fff" @click="bianCheck">确认</el-button>
290 </div> 351 </div>
291 </div> 352 </div>
292 </el-dialog> 353 </el-dialog>
293 </div> 354 </div>
294 -  
295 -  
296 </template> 355 </template>
297 356
298 <script> 357 <script>
299 import { 358 import {
300 async 359 async
301 - } from 'q'  
302 - import axios from 'axios'  
303 - import {  
304 - QuestionGetAll,  
305 - QuestionAdd,  
306 - QuestionEdit,  
307 - QuestionDel,  
308 - } from '../../api/question.js'  
309 - import upimg from "@/components/ImageUpload/index" 360 + } from "q";
  361 + import axios from "axios";
  362 + import {
  363 + QuestionGetAll,
  364 + QuestionAdd,
  365 + QuestionEdit,
  366 + QuestionDel,
  367 + } from "../../api/question.js";
  368 + import upimg from "@/components/ImageUpload/index";
310 export default { 369 export default {
311 components: { 370 components: {
312 - upimg 371 + upimg,
313 }, 372 },
314 data() { 373 data() {
315 return { 374 return {
316 - detbox: false, //详情 375 + detbox: false, // 详情
317 currentPage: 1, 376 currentPage: 1,
318 total: 10, 377 total: 10,
319 flag: false, 378 flag: false,
320 pageSize: 10, 379 pageSize: 10,
321 ggXin: false, 380 ggXin: false,
322 formInline: { 381 formInline: {
323 - tikuTitle:'',  
324 - questionType:'',  
325 - questionBank:'用户端题库',  
326 - isRequired:'必填',  
327 - questionDescription:'',  
328 - optionSettings:{}, 382 + tikuTitle: "",
  383 + questionType: "",
  384 + questionBank: "用户端题库",
  385 + isRequired: "必填",
  386 + maxChoose: 0,
  387 + questionDescription: "",
  388 + optionSettings: {},
329 }, 389 },
330 - tableData: [  
331 - ], 390 + tableData: [],
332 secondData: {}, 391 secondData: {},
333 formSel: { 392 formSel: {
334 - questionBank:'用户端题库',  
335 - tikuTitle:'',  
336 - questionType:'',  
337 - pageNumber: 0,  
338 - pageSize: 10, 393 + questionBank: "用户端题库",
  394 + tikuTitle: "",
  395 + questionType: "",
  396 + pageNumber: 0,
  397 + pageSize: 10,
339 }, 398 },
340 pageindex: { 399 pageindex: {
341 pageNumber: 0, 400 pageNumber: 0,
342 pageSize: 10, 401 pageSize: 10,
343 - questionBank:'用户端题库', 402 + questionBank: "用户端题库",
344 }, 403 },
345 - bainjiBox:false,  
346 -options:[  
347 -  
348 -],  
349 -labelStyle :{  
350 - width:'160px'  
351 -},  
352 -contentStyle:{  
353 - width:'246px'  
354 -},  
355 -rules:{  
356 -  
357 - tikuTitle: [  
358 - { required: true, message: '请输入题目', trigger: 'blur' },  
359 - ],  
360 - questionType: [  
361 - { required: true, message: '请选择题型', trigger: 'change' }  
362 - ],  
363 - questionBank: [  
364 - { required: true, message: '请选择所属题库', trigger: 'change' }  
365 - ],  
366 - optionSettings: [  
367 - { required: true, message: '请设置答案', trigger: 'change' }  
368 - ],  
369 -}  
370 -  
371 - } 404 + bainjiBox: false,
  405 + options: [],
  406 + labelStyle: {
  407 + width: "160px",
  408 + },
  409 + contentStyle: {
  410 + width: "246px",
  411 + },
  412 + rules: {
  413 + tikuTitle: [{
  414 + required: true,
  415 + message: "请输入题目",
  416 + trigger: "blur"
  417 + }],
  418 + questionType: [{
  419 + required: true,
  420 + message: "请选择题型",
  421 + trigger: "change"
  422 + }, ],
  423 + questionBank: [{
  424 + required: true,
  425 + message: "请选择所属题库",
  426 + trigger: "change"
  427 + }, ],
  428 + layoutType: [{
  429 + required: true,
  430 + message: "请选择布局类型",
  431 + trigger: "change"
  432 + }, ],
  433 + optionSettings: [{
  434 + required: true,
  435 + message: "请设置答案",
  436 + trigger: "change"
  437 + }, ],
  438 + },
  439 + };
372 }, 440 },
  441 + computed: {},
373 mounted() { 442 mounted() {
374 - this.getAll()  
375 - },  
376 - computed: {  
377 - 443 + this.getAll();
378 }, 444 },
379 methods: { 445 methods: {
380 chenge(val) { 446 chenge(val) {
381 this.formSel = { 447 this.formSel = {
382 - questionBank:'用户端题库',  
383 - tikuTitle:'',  
384 - questionType:'',  
385 - pageNumber: 0,  
386 - pageSize: 10,  
387 - } 448 + questionBank: "用户端题库",
  449 + tikuTitle: "",
  450 + questionType: "",
  451 + pageNumber: 0,
  452 + pageSize: 10,
  453 + };
388 }, 454 },
389 - getAll() {  
390 -  
391 - QuestionGetAll(this.pageindex).then(res=>{  
392 - this.tableData = res.data.content  
393 - this.total = res.data.totalElements  
394 - })  
395 -  
396 -  
397 - 455 + getAll() {
  456 + QuestionGetAll(this.pageindex).then((res) => {
  457 + this.tableData = res.data.content;
  458 + this.total = res.data.totalElements;
  459 + });
398 }, 460 },
399 461
400 // 新增确定按钮 462 // 新增确定按钮
401 - addCheck(val) {  
402 - this.$refs.reform.validate((valid) => {  
403 - if (valid) {  
404 - if(this.formInline.questionType != '文本' && this.options.length == 0){  
405 - this.$message({  
406 - message: '请添加答案选项',  
407 - })  
408 - return  
409 - }  
410 - for(let i =0;i<this.options.length;i++){  
411 - if(this.options[i].name == ''){  
412 - this.$message({  
413 - message: '答案选项不能为空',  
414 - })  
415 - return  
416 - }  
417 - }  
418 - this.formInline.optionSettings = this.options.reduce((accumulator, current) => {  
419 - accumulator[current.index] = current.name;  
420 - return accumulator;  
421 - }, {}) // 初始化累加器为空对象  
422 - this.formInline.score = this.options.reduce((accumulator, current) => {  
423 - accumulator[current.index] = Number(current.num);  
424 - return accumulator;  
425 - }, {}) // 初始化累加器为空对象  
426 - this.formInline.optionSettings = JSON.stringify(this.formInline.optionSettings)  
427 - this.formInline.score = JSON.stringify(this.formInline.score)  
428 - this.formInline.createDate = this.currentTime()  
429 - QuestionAdd(this.formInline).then(res => {  
430 - this.$message({  
431 - message: '保存成功',  
432 - type: 'success'  
433 - })  
434 - this.formInline = {  
435 - tikuTitle:'',  
436 - questionType:'',  
437 - questionBank:'用户端题库',  
438 - isRequired:'必填',  
439 - questionDescription:'',  
440 - optionSettings:{},  
441 -  
442 - }  
443 - this.getAll()  
444 - })  
445 -  
446 - this.ggXin = false  
447 -  
448 - }else{  
449 -  
450 - return false; 463 + addCheck(val) {
  464 + this.$refs.reform.validate((valid) => {
  465 + if (valid) {
  466 + if (
  467 + this.formInline.questionType != "文本" &&
  468 + this.options.length == 0
  469 + ) {
  470 + this.$message({
  471 + message: "请添加答案选项",
  472 + });
  473 + return;
  474 + }
  475 + for (let i = 0; i < this.options.length; i++) {
  476 + if (this.options[i].name == "") {
  477 + this.$message({
  478 + message: "答案选项不能为空",
  479 + });
  480 + return;
451 } 481 }
  482 + }
  483 + let accumulator = {}
  484 + let fenshu = {}
  485 + this.options.forEach((item, index) => {
  486 + accumulator[index] = item.name
  487 + fenshu[index] = Number(item.num) || 0
452 }) 488 })
453 - 489 + this.formInline.optionSettings = accumulator
  490 + this.formInline.score = fenshu
  491 + this.formInline.optionSettings = JSON.stringify(
  492 + this.formInline.optionSettings
  493 + );
  494 + this.formInline.score = JSON.stringify(this.formInline.score);
  495 + this.formInline.createDate = this.currentTime();
  496 + console.log({...this.formInline})
  497 + // return
  498 + QuestionAdd(this.formInline).then((res) => {
  499 + this.$message({
  500 + message: "保存成功",
  501 + type: "success",
  502 + });
  503 + this.formInline = {
  504 + tikuTitle: "",
  505 + questionType: "",
  506 + questionBank: "用户端题库",
  507 + isRequired: "必填",
  508 + questionDescription: "",
  509 + optionSettings: {},
  510 + };
  511 + this.getAll();
  512 + });
  513 +
  514 + this.ggXin = false;
  515 + } else {
  516 + return false;
  517 + }
  518 + });
454 }, 519 },
455 // 编辑确定 520 // 编辑确定
456 - async bianCheck(){  
457 - this.$refs.bianform.validate((valid) => {  
458 - if (valid) {  
459 - if(this.secondData.questionType != '文本' && this.options.length == 0){  
460 - this.$message({  
461 - message: '请添加答案选项',  
462 - })  
463 - return  
464 - }  
465 - for(let i =0;i<this.options.length;i++){  
466 - if(this.options[i].name == ''){  
467 - this.$message({  
468 - message: '答案选项不能为空',  
469 - })  
470 - return  
471 - }  
472 - }  
473 - this.secondData.optionSettings = this.options.reduce((accumulator, current) => {  
474 - accumulator[current.index] = current.name;  
475 - return accumulator;  
476 - }, {}) // 初始化累加器为空对象  
477 - this.secondData.score = this.options.reduce((accumulator, current) => {  
478 - accumulator[current.index] = Number(current.num);  
479 - return accumulator  
480 - }, {}) // 初始化累加器为空对象  
481 -  
482 - this.secondData.optionSettings = JSON.stringify(this.secondData.optionSettings)  
483 - this.secondData.score = JSON.stringify(this.secondData.score)  
484 -  
485 - QuestionEdit(this.secondData).then(res => {  
486 - this.$message({  
487 - message: '保存成功',  
488 - type: 'success'  
489 - })  
490 -  
491 - this.getAll()  
492 - })  
493 -  
494 - this.bainjiBox = false  
495 -  
496 - }else{  
497 - this.$message({  
498 - message: '请填写完整信息',  
499 - type: 'error'  
500 - })  
501 - return false; 521 + async bianCheck() {
  522 + this.$refs.bianform.validate((valid) => {
  523 + if (valid) {
  524 + if (
  525 + this.secondData.questionType != "文本" &&
  526 + this.options.length == 0
  527 + ) {
  528 + this.$message({
  529 + message: "请添加答案选项",
  530 + });
  531 + return;
502 } 532 }
503 - }) 533 + for (let i = 0; i < this.options.length; i++) {
  534 + if (this.options[i].name == "") {
  535 + this.$message({
  536 + message: "答案选项不能为空",
  537 + });
  538 + return;
  539 + }
  540 + }
  541 + let accumulator = {}
  542 + let fenshu = {}
  543 + this.options.forEach((item, index) => {
  544 +
  545 + accumulator[index] = item.name
  546 + fenshu[index] = Number(item.num) || 0
  547 + })
  548 + this.secondData.optionSettings = JSON.stringify(
  549 + accumulator
  550 + );
  551 + this.secondData.score = JSON.stringify(fenshu);
  552 + console.log({...this.secondData})
  553 + // return
  554 + QuestionEdit(this.secondData).then((res) => {
  555 + this.$message({
  556 + message: "保存成功",
  557 + type: "success",
  558 + });
  559 +
  560 + this.getAll();
  561 + });
  562 +
  563 + this.bainjiBox = false;
  564 + } else {
  565 + this.$message({
  566 + message: "请填写完整信息",
  567 + type: "error",
  568 + });
  569 + return false;
  570 + }
  571 + });
504 }, 572 },
505 // 获取时间 573 // 获取时间
506 currentTime() { 574 currentTime() {
507 - let date = new Date();  
508 - let year = date.getFullYear(); 575 + const date = new Date();
  576 + const year = date.getFullYear();
509 let month = date.getMonth() + 1; // 月份从0~11,所以加一 577 let month = date.getMonth() + 1; // 月份从0~11,所以加一
510 let day = date.getDate(); 578 let day = date.getDate();
511 let hours = date.getHours(); 579 let hours = date.getHours();
@@ -513,147 +581,155 @@ rules:{ @@ -513,147 +581,155 @@ rules:{
513 let seconds = date.getSeconds(); 581 let seconds = date.getSeconds();
514 582
515 // 为月、日、小时、分钟和秒添加前导零(如果需要) 583 // 为月、日、小时、分钟和秒添加前导零(如果需要)
516 - month = month < 10 ? '0' + month : month;  
517 - day = day < 10 ? '0' + day : day;  
518 - hours = hours < 10 ? '0' + hours : hours;  
519 - minutes = minutes < 10 ? '0' + minutes : minutes;  
520 - seconds = seconds < 10 ? '0' + seconds : seconds; 584 + month = month < 10 ? "0" + month : month;
  585 + day = day < 10 ? "0" + day : day;
  586 + hours = hours < 10 ? "0" + hours : hours;
  587 + minutes = minutes < 10 ? "0" + minutes : minutes;
  588 + seconds = seconds < 10 ? "0" + seconds : seconds;
521 589
522 // 返回格式化的日期和时间字符串 590 // 返回格式化的日期和时间字符串
523 return `${year}-${month}-${day} ${hours}:${minutes}`; 591 return `${year}-${month}-${day} ${hours}:${minutes}`;
524 }, 592 },
525 593
526 - //详情  
527 - details(val, item) {  
528 - this.secondData =item  
529 - console.log(item.optionSettings)  
530 - if(typeof item.optionSettings == 'string'){  
531 - this.secondData.optionSettings = JSON.parse(item.optionSettings) 594 + // 详情
  595 + details(val, item) {
  596 + this.secondData = item;
  597 +
  598 + if (typeof item.optionSettings === "string") {
  599 + this.secondData.optionSettings = JSON.parse(item.optionSettings);
532 } 600 }
533 - this.detbox = true 601 + this.detbox = true;
534 }, 602 },
535 addbuss(val, item) { 603 addbuss(val, item) {
536 - this.detbox = false  
537 - this.ggXin = true 604 + this.detbox = false;
  605 + this.ggXin = true;
538 }, 606 },
539 handleSizeChange(val) { 607 handleSizeChange(val) {
540 - this.pageSize = val 608 + this.pageSize = val;
541 }, 609 },
542 handleCurrentChange(val) { 610 handleCurrentChange(val) {
543 // this.currentPage = val 611 // this.currentPage = val
544 - this.pageindex.pageNumber = val- 1  
545 - QuestionGetAll(this.pageindex).then(res=>{  
546 - this.tableData = res.data.content  
547 - })  
548 -  
549 - 612 + this.pageindex.pageNumber = val - 1;
  613 + QuestionGetAll(this.pageindex).then((res) => {
  614 + this.tableData = res.data.content;
  615 + });
550 }, 616 },
551 617
552 closeFn(val) { 618 closeFn(val) {
553 if (val == 1) { 619 if (val == 1) {
554 - this.ggXin = false 620 + this.ggXin = false;
555 } else { 621 } else {
556 - this.bainjiBox = false 622 + this.bainjiBox = false;
557 } 623 }
558 }, 624 },
559 625
560 // 查询按钮 626 // 查询按钮
561 async onSubmit() { 627 async onSubmit() {
562 - const res = await QuestionGetAll(this.formSel)  
563 - this.tableData = res.data.content  
564 - this.total = res.data.totalElements  
565 - 628 + const res = await QuestionGetAll(this.formSel);
  629 + this.tableData = res.data.content;
  630 + this.total = res.data.totalElements;
566 }, 631 },
567 - //重置按钮 632 + // 重置按钮
568 resetting() { 633 resetting() {
569 this.formSel = { 634 this.formSel = {
570 - questionBank:'用户端题库',  
571 - pageNumber: 0,  
572 - pageSize: 10,  
573 - }  
574 - this.currentPage = 1  
575 -this.pageindex.pageNumber = 0  
576 - this.getAll() 635 + questionBank: "用户端题库",
  636 + pageNumber: 0,
  637 + pageSize: 10,
  638 + };
  639 + this.currentPage = 1;
  640 + this.pageindex.pageNumber = 0;
  641 + this.getAll();
577 }, 642 },
578 - addOption() {  
579 - const newOption = { index: this.options.length + 1, name: '', readonly: false };  
580 - this.options.push(newOption);  
581 - },  
582 - deleteOption(index) {  
583 - this.options.splice(index, 1);  
584 - },  
585 - bianls(item){  
586 - let settings = null  
587 - let socer = null  
588 - if(typeof item.optionSettings != 'object'){  
589 - settings = JSON.parse(item.optionSettings)  
590 - }else{  
591 - settings = item.optionSettings  
592 - }  
593 - if(typeof item.score != 'object'){  
594 - socer = JSON.parse(item.score)  
595 - }else{  
596 - socer = item.score  
597 - } 643 + addOption() {
  644 + const newOption = {
  645 + index: this.options.length + 1,
  646 + name: "",
  647 + readonly: false,
  648 + };
  649 + this.options.push(newOption);
  650 + },
  651 + deleteOption(index) {
  652 + this.options.splice(index, 1);
  653 + },
  654 + bianls(item) {
  655 + let settings = null;
  656 + let socer = null;
  657 + if (typeof item.optionSettings !== "object") {
  658 + settings = JSON.parse(item.optionSettings);
  659 + } else {
  660 + settings = item.optionSettings;
  661 + }
  662 + if (typeof item.score !== "object") {
  663 + socer = JSON.parse(item.score);
  664 + } else {
  665 + socer = item.score;
  666 + }
  667 + console.log("我是点击后的数据", item)
598 const keys = Object.keys(settings); 668 const keys = Object.keys(settings);
599 - this.options = keys.map(key => ({  
600 - index: parseInt(key), // 将字符串键转换为整数  
601 - name: settings[key],  
602 - num: socer[key] // 添加 socer 的值  
603 - }));  
604 -  
605 - this.bainjiBox =true  
606 - this.secondData =item 669 + this.options = keys.map((key) => ({
  670 + index: parseInt(key), // 将字符串键转换为整数
  671 + name: settings[key],
  672 + num: socer[key], // 添加 socer 的值
  673 + }));
  674 +
  675 + this.bainjiBox = true;
  676 + //判断item.maxChoose是undefined的话,默认为0
  677 +
  678 + this.secondData = item;
  679 +
  680 + console.error({...this.secondData} )
  681 + // 刷新渲染层
  682 + this.$nextTick(() => {
  683 + this.secondData.maxChoose = item.maxChoose || 0;
  684 + });
607 }, 685 },
608 - tikuDel(item){  
609 - const h = this.$createElement;  
610 - this.$msgbox({  
611 - title: '消息',  
612 - message: h('p', null, [  
613 - h('span', null, '是否删除 '),  
614 - ]),  
615 - showCancelButton: true,  
616 - showClose: false,  
617 - confirmButtonText: '确定',  
618 - cancelButtonText: '取消',  
619 - customClass: 'oe-dialog-btn',  
620 - beforeClose: (action, instance, done) => {  
621 - if (action === 'confirm') {  
622 - QuestionDel({  
623 - id: item.id  
624 - }).then(res => {  
625 - this.getAll()  
626 - done();  
627 - })  
628 - } else {  
629 - done();  
630 - }  
631 - }  
632 - }) 686 + tikuDel(item) {
  687 + const h = this.$createElement;
  688 + this.$msgbox({
  689 + title: "消息",
  690 + message: h("p", null, [h("span", null, "是否删除 ")]),
  691 + showCancelButton: true,
  692 + showClose: false,
  693 + confirmButtonText: "确定",
  694 + cancelButtonText: "取消",
  695 + customClass: "oe-dialog-btn",
  696 + beforeClose: (action, instance, done) => {
  697 + if (action === "confirm") {
  698 + QuestionDel({
  699 + id: item.id,
  700 + }).then((res) => {
  701 + this.getAll();
  702 + done();
  703 + });
  704 + } else {
  705 + done();
  706 + }
  707 + },
  708 + });
633 }, 709 },
634 - async tikuBox(val){  
635 - this.pageindex.questionBank = val  
636 -  
637 - const res = await QuestionGetAll(this.pageindex)  
638 - this.tableData = res.data.content  
639 - this.total = res.data.totalElements 710 + async tikuBox(val) {
  711 + this.pageindex.questionBank = val;
640 712
  713 + const res = await QuestionGetAll(this.pageindex);
  714 + this.tableData = res.data.content;
  715 + this.total = res.data.totalElements;
641 }, 716 },
642 - addTimu(){  
643 - this.formInline={  
644 - tikuTitle:'',  
645 - questionType:'',  
646 - questionBank:'用户端题库',  
647 - isRequired:'必填',  
648 - questionDescription:'',  
649 - optionSettings:{},  
650 - }  
651 - this.options=[] 717 + addTimu() {
  718 + this.formInline = {
  719 + tikuTitle: "",
  720 + questionType: "",
  721 + questionBank: "用户端题库",
  722 + isRequired: "必填",
  723 + maxChoose: 0,
  724 + layoutType: 1,
  725 + questionDescription: "",
  726 + optionSettings: {},
  727 + };
  728 + this.options = [];
652 // this.$refs.reform.resetFields() 729 // this.$refs.reform.resetFields()
653 - this.ggXin = true 730 + this.ggXin = true;
654 }, 731 },
655 - validateScore(row) {  
656 - 732 + validateScore(row) {
657 // 如果输入的不是数字或者是NaN,则重置为1 733 // 如果输入的不是数字或者是NaN,则重置为1
658 if (isNaN(row.num) || row.num < 0) { 734 if (isNaN(row.num) || row.num < 0) {
659 row.num = 0; 735 row.num = 0;
@@ -663,22 +739,35 @@ this.pageindex.pageNumber = 0 @@ -663,22 +739,35 @@ this.pageindex.pageNumber = 0
663 row.num = 100; 739 row.num = 100;
664 } 740 }
665 }, 741 },
666 - }  
667 - } 742 + answerMoveUp(index) {
  743 + [this.options[index], this.options[index - 1]] = [this.options[index - 1], this.options[index]]
  744 + console.log(this.options[index])
  745 + this.options[index].index = index - 1
  746 + this.options.sort()
  747 +
  748 +
  749 + },
  750 + answerMoveDown(index) {
  751 + [this.options[index], this.options[index + 1]] = [this.options[index + 1], this.options[index]]
  752 + this.options[index].index = index + 1
  753 + this.options.sort()
  754 +
  755 + },
  756 + },
  757 + };
668 </script> 758 </script>
669 759
670 <style scoped> 760 <style scoped>
671 .zhuti { 761 .zhuti {
672 padding: 0 20px 20px 20px; 762 padding: 0 20px 20px 20px;
673 min-height: calc(100vh - 50px - 20px); 763 min-height: calc(100vh - 50px - 20px);
674 - background-color: #Fff;  
675 - 764 + background-color: #fff;
676 } 765 }
677 766
678 .chengeXia { 767 .chengeXia {
679 - border-bottom: 6px solid #3F9B6A; 768 + border-bottom: 6px solid #3f9b6a;
680 padding-bottom: 4px; 769 padding-bottom: 4px;
681 - color: #3F9B6A; 770 + color: #3f9b6a;
682 } 771 }
683 772
684 /deep/ .el-form-item__content { 773 /deep/ .el-form-item__content {
@@ -688,8 +777,8 @@ this.pageindex.pageNumber = 0 @@ -688,8 +777,8 @@ this.pageindex.pageNumber = 0
688 .tableBtn { 777 .tableBtn {
689 display: inline-block; 778 display: inline-block;
690 margin-right: 10px; 779 margin-right: 10px;
691 - color: #ACACAC;  
692 - cursor:pointer; 780 + color: #acacac;
  781 + cursor: pointer;
693 } 782 }
694 783
695 .formSearch { 784 .formSearch {
@@ -700,7 +789,7 @@ this.pageindex.pageNumber = 0 @@ -700,7 +789,7 @@ this.pageindex.pageNumber = 0
700 } 789 }
701 790
702 .greens { 791 .greens {
703 - color: #3F9B6A; 792 + color: #3f9b6a;
704 } 793 }
705 794
706 /deep/ .el-table__row { 795 /deep/ .el-table__row {
@@ -716,7 +805,7 @@ this.pageindex.pageNumber = 0 @@ -716,7 +805,7 @@ this.pageindex.pageNumber = 0
716 } 805 }
717 806
718 /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active { 807 /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
719 - background-color: #3F9B6A; 808 + background-color: #3f9b6a;
720 } 809 }
721 810
722 .el-row { 811 .el-row {
@@ -778,20 +867,19 @@ this.pageindex.pageNumber = 0 @@ -778,20 +867,19 @@ this.pageindex.pageNumber = 0
778 867
779 .device-form .el-form-item__label::after { 868 .device-form .el-form-item__label::after {
780 content: "*"; 869 content: "*";
781 - color: #1A1A1A; 870 + color: #1a1a1a;
782 margin-left: 5px; 871 margin-left: 5px;
783 font-size: 16px; 872 font-size: 16px;
784 } 873 }
785 874
786 -  
787 ::v-deep .el-dialog__wrapper { 875 ::v-deep .el-dialog__wrapper {
788 .el-dialog__header { 876 .el-dialog__header {
789 - background-color: #FAFAFA; 877 + background-color: #fafafa;
790 } 878 }
791 } 879 }
792 880
793 ::v-deep .el-input__inner:focus { 881 ::v-deep .el-input__inner:focus {
794 - border: #3F9B6A 1px solid; 882 + border: #3f9b6a 1px solid;
795 } 883 }
796 884
797 .dialog-footer { 885 .dialog-footer {
@@ -802,27 +890,26 @@ this.pageindex.pageNumber = 0 @@ -802,27 +890,26 @@ this.pageindex.pageNumber = 0
802 } 890 }
803 891
804 ::v-deep .el-input__inner:focus { 892 ::v-deep .el-input__inner:focus {
805 - border: #3F9B6A 1px solid; 893 + border: #3f9b6a 1px solid;
806 } 894 }
807 895
808 ::v-deep .el-input__inner:hover { 896 ::v-deep .el-input__inner:hover {
809 - border: #3F9B6A 1px solid; 897 + border: #3f9b6a 1px solid;
810 } 898 }
811 899
812 ::v-deep .el-select .el-input.is-focus .el-input__inner { 900 ::v-deep .el-select .el-input.is-focus .el-input__inner {
813 - border-color: #3F9B6A 901 + border-color: #3f9b6a;
814 } 902 }
815 903
816 .el-select-dropdown__item.selected { 904 .el-select-dropdown__item.selected {
817 - color: #3F9B6A; 905 + color: #3f9b6a;
818 } 906 }
819 907
820 .el-pagination__sizes .el-input .el-input__inner:hover { 908 .el-pagination__sizes .el-input .el-input__inner:hover {
821 - border-color: #3F9B6A; 909 + border-color: #3f9b6a;
822 } 910 }
823 911
824 ::v-deep .el-dialog__wrapper { 912 ::v-deep .el-dialog__wrapper {
825 -  
826 .dialog_css { 913 .dialog_css {
827 margin-right: 12px; 914 margin-right: 12px;
828 margin-top: 61px !important; 915 margin-top: 61px !important;
@@ -838,7 +925,6 @@ this.pageindex.pageNumber = 0 @@ -838,7 +925,6 @@ this.pageindex.pageNumber = 0
838 margin-left: 25%; 925 margin-left: 25%;
839 margin-top: 61px !important; 926 margin-top: 61px !important;
840 } 927 }
841 -  
842 } 928 }
843 929
844 ::v-deep .diaslog_zhong { 930 ::v-deep .diaslog_zhong {
@@ -847,7 +933,7 @@ this.pageindex.pageNumber = 0 @@ -847,7 +933,7 @@ this.pageindex.pageNumber = 0
847 933
848 .el-dialog__header { 934 .el-dialog__header {
849 background-color: #fff; 935 background-color: #fff;
850 - border-bottom: 1px solid #EFEFEF; 936 + border-bottom: 1px solid #efefef;
851 937
852 .el-dialog__title { 938 .el-dialog__title {
853 font-size: 14px; 939 font-size: 14px;
@@ -856,17 +942,17 @@ this.pageindex.pageNumber = 0 @@ -856,17 +942,17 @@ this.pageindex.pageNumber = 0
856 } 942 }
857 943
858 .el-dialog__body { 944 .el-dialog__body {
859 - padding: 10px 30px 30px 20px 945 + padding: 10px 30px 30px 20px;
860 } 946 }
861 } 947 }
862 948
863 /deep/ .el-table_1_column_8 .hetong { 949 /deep/ .el-table_1_column_8 .hetong {
864 - color: #7DBB9A; 950 + color: #7dbb9a;
865 text-decoration: underline; 951 text-decoration: underline;
866 } 952 }
867 953
868 /deep/ .first-column-bg { 954 /deep/ .first-column-bg {
869 - background-color: #FAFAFA !important; 955 + background-color: #fafafa !important;
870 } 956 }
871 957
872 ::v-deep .textarea { 958 ::v-deep .textarea {
@@ -895,14 +981,20 @@ this.pageindex.pageNumber = 0 @@ -895,14 +981,20 @@ this.pageindex.pageNumber = 0
895 } 981 }
896 982
897 .el-icon-arrow-up:before { 983 .el-icon-arrow-up:before {
898 - content: '' 984 + content: "";
899 } 985 }
900 -  
901 } 986 }
902 987
903 /deep/ .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell { 988 /deep/ .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
904 background-color: #fff; 989 background-color: #fff;
905 } 990 }
  991 +
  992 + /deep/ .el-input-number__decrease,
  993 + /deep/.el-input-number__increase {
  994 + height: 30px !important;
  995 + line-height: 32px !important;
  996 + margin-top: 3px;
  997 + }
906 </style> 998 </style>
907 <style lang="scss" scoped> 999 <style lang="scss" scoped>
908 ::v-deep .bian_css { 1000 ::v-deep .bian_css {
ceres-uniapp-master/config/api.js
1 1
2 -const DOMAIN_PREFIXPING = 'https://jy.scjysm.asia:18086/cdwlMall/meserver/admin-server'  
3 -const DOMAIN_PREFIX = 'https://jy.scjysm.asia:18086/cdwlMall/meserver/api' 2 +// const DOMAIN_PREFIXPING = 'https://jy.scjysm.asia:18086/cdwlMall/meserver/admin-server'
  3 +// const DOMAIN_PREFIX = 'https://jy.scjysm.asia:18086/cdwlMall/meserver/api'
4 const TIAOZHUAN = 'https://jy.scjysm.asia:18086/cdwlMall/' 4 const TIAOZHUAN = 'https://jy.scjysm.asia:18086/cdwlMall/'
5 -// const DOMAIN_PREFIXPING = 'http://128.10.250.134:9003'  
6 -// const DOMAIN_PREFIX = 'http://128.10.250.134:9007' 5 +const DOMAIN_PREFIXPING = 'http://128.10.249.21:9003'
  6 +const DOMAIN_PREFIX = 'http://128.10.249.21:9007'
7 const LIULIANG = 'https://jy.scjysm.asia:18086/liuliang' 7 const LIULIANG = 'https://jy.scjysm.asia:18086/liuliang'
8 // const host = `${window.location.protocol}//${window.location.host}` 8 // const host = `${window.location.protocol}//${window.location.host}`
9 // const DOMAIN_PREFIXPING = `${host}/cdwlMall/meserver/admin-server` 9 // const DOMAIN_PREFIXPING = `${host}/cdwlMall/meserver/admin-server`
ceres-uniapp-master/pages/tabbar/user/index.data.js
@@ -59,7 +59,7 @@ export const fastCardOneList = [ @@ -59,7 +59,7 @@ export const fastCardOneList = [
59 { 59 {
60 id:3, 60 id:3,
61 label:'分销中心', 61 label:'分销中心',
62 - icon:'https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/img//user/fenxiao.png', 62 + icon:'../../../static/images/fxzx.png',
63 jumpUrl:'../../../pages_category_page1/distributionModule/index' 63 jumpUrl:'../../../pages_category_page1/distributionModule/index'
64 }, 64 },
65 { 65 {
@@ -83,7 +83,7 @@ export const fastCardOneList = [ @@ -83,7 +83,7 @@ export const fastCardOneList = [
83 { 83 {
84 id:7, 84 id:7,
85 label:'常见问题', 85 label:'常见问题',
86 - icon:'https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/img//user/kaquan.png', 86 + icon:'../../../static/images/cjwt.png',
87 jumpUrl:'../../../pages_category_page1/askedquestion/askedquestion' 87 jumpUrl:'../../../pages_category_page1/askedquestion/askedquestion'
88 }, 88 },
89 { 89 {
ceres-uniapp-master/pages_category_page1/question/question copy.vue 0 → 100644
  1 +<template>
  2 + <view class="questionnaire">
  3 +
  4 + <!-- 单选问题 -->
  5 + <view style="padding:20px;background-color: #f6f6f6;">
  6 + <view>
  7 + <h2
  8 + style="color: #000;overflow: hidden; text-overflow: ellipsis; display: -webkit-box;-webkit-box-orient: vertical;word-break: break-all;text-align:center">
  9 + {{ wenjuan.title }}
  10 + </h2>
  11 + <!-- <h5 style="padding: 10px 0;color: #000;">请您认真作答以下题目</h5> -->
  12 + <view class="" style="padding: 10px 0; height: 200px;">
  13 + <image :src="this.$hostUrl + wenjuan.coverImage" mode="scaleToFill"
  14 + style="width:100%;height: 100%;border-radius: 10px;"></image>
  15 + </view>
  16 + </view>
  17 + <view style="padding: 15px;background-color: #fff;border-radius: 10px;">
  18 + <view>
  19 + <!-- <u-parse :content="wenjuan.remarks"></u-parse> -->
  20 + <rich-text :nodes="wenjuan.remarks"></rich-text>
  21 + <!-- {{wenjuan.remarks}} -->
  22 + <!-- <view>
  23 + <view style="display:flex;padding:10px 0;justify-content: space-between;">
  24 + <view style="display:flex;">
  25 + {{wenjuan.createUser}}
  26 + </view>
  27 + <view>
  28 + {{wenjuan.createTime}}
  29 + </view>
  30 + </view>
  31 + </view> -->
  32 + <!-- <view>预计答题时间:{{this.wenjuan.estimatedTime}}分钟</view> -->
  33 + </view>
  34 + </view>
  35 + <view class="question" v-for="(item, index) in wenjuan.question" style="">
  36 + <p class="question-title"
  37 + style="font-weight:600;overflow: hidden; text-overflow: ellipsis; display: -webkit-box;-webkit-box-orient: vertical;word-break: break-all;">
  38 + <span v-if="item.required == '必填'" style="color: red;">*</span>{{ index }}.<span
  39 + style="color:#0FBB59;padding:0 3px;">({{ item.type }})</span>
  40 + {{ item.title }}
  41 + </p>
  42 + <view>
  43 +
  44 + <!-- <radio-group @change="radioChange" v-model="item.choose"
  45 + v-if="item.type =='单选'" >
  46 + <label :class="item.choose == val ?'option green':'option gary' " :key="val.answer" v-for="(val, idx) in item.options">
  47 + <view>
  48 + <radio :value="val.answer" activeBackgroundColor="#E5FFF0"
  49 + activeBorderColor="#4FCF86" iconColor="#0FBB59" />
  50 + </view>
  51 + <view>{{val.answer}}</view>
  52 + </label>
  53 + </radio-group> -->
  54 + <u-radio-group v-model="item.choose" v-if="item.type == '单选'" style="width: 100%;">
  55 + <view v-if="item.layoutType != 2">
  56 + <u-radio v-for="(val, idx) in item.options" style="width: 100%;"
  57 + :class="val.answer == item.choose ? 'option green' : 'option gary'" :name="val.answer"
  58 + :disabled="item.disabled" :key="idx" :label-disabled="false" active-color="#4FCF86">
  59 + {{ val.answer }}
  60 + </u-radio>
  61 + </view>
  62 + <view v-else-if="item.layoutType == 2" class="myMultiple">
  63 + <div v-for="(val, idx) in item.options"
  64 + :class="['myOption gary', { optionActive: myChoose.answer == val.answer }]" :key="idx"
  65 + @click="chooseAnswerOne(item.options, val, idx)">
  66 + <p class="chooseTag" v-if="myChoose.answer == val.answer"><u-icon name="checkbox-mark"
  67 + color="#fff" size="8pt"></u-icon></p>
  68 + {{ val.answer }}
  69 + </div>
  70 + </view>
  71 + </u-radio-group>
  72 +
  73 + <u-checkbox-group v-model="item.choose" v-if="item.type == '多选'" style="width: 100%;">
  74 + {{item}}
  75 + <view v-if="item.layoutType != 2">
  76 + <u-checkbox v-for="(val, idx) in item.options" style="width: 100%;"
  77 + :class="val.disabled ? 'option green' : 'option gary'" v-model="val.disabled"
  78 + :label-disabled="false" :name="val.answer" :key="idx"
  79 + active-color="#4FCF86">{{ val.answer }}</u-checkbox>
  80 + </view>
  81 + <view v-else-if="item.layoutType == 2" class="myMultiple">
  82 + <div v-for="(val, index) in item.options"
  83 + :class="['myOption gary', { optionActive: val.disabled == true }]" :key="index"
  84 + @click="chooseAnswerMore(val, index,item)">
  85 + <p class="chooseTag" v-if="val.disabled == true"><u-icon name="checkbox-mark"
  86 + color="#fff" size="8pt"></u-icon></p>
  87 + {{ val.answer }}
  88 + </div>
  89 + </view>
  90 + </u-checkbox-group>
  91 + <!-- <checkbox-group @change="checkboxChange(index,$event,item,idx)"
  92 + v-model="item.choose"
  93 + >
  94 +
  95 + <label :class="item.choose == val.answer ?'option green':'option gary' " >
  96 + <view style="margin-bottom:5px;">
  97 +
  98 + <checkbox :name="val.answer" activeBackgroundColor="#E5FFF0"
  99 + activeBorderColor="#4FCF86" iconColor="#0FBB59" />
  100 + <span>{{val.answer}}</span >
  101 + </view>
  102 +
  103 + </label>
  104 + </checkbox-group> -->
  105 + <view v-if="item.type == '文本'">
  106 + <u-input type="textarea" v-model="item.choose" placeholder="请输入" :border="true"></u-input>
  107 + </view>
  108 + </view>
  109 + </view>
  110 +
  111 + <!-- 文本填写问题 -->
  112 + <view class="">
  113 + <!-- <p class="question-title">您的建议:</p >
  114 + <textarea v-model="suggestion"></textarea> -->
  115 + <u-form labelPosition="left" :model="model1" :rules="rules" ref="uForm" validate-on-rule-change="false"
  116 + style="background-color:#fff;border-radius: 10px;">
  117 + <u-form-item label="姓名" prop="name" borderBottom ref="item1" v-if="wenjuan.needName == '必填'"
  118 + style="padding:10px 20px 0;">
  119 + <u-input v-model="model1.name" placeholder="请输入姓名"></u-input>
  120 + </u-form-item>
  121 + <u-form-item label="电话" prop="phone" borderBottom v-if="wenjuan.needPhone == '必填'"
  122 + style="padding: 0 20px;">
  123 + <u-input v-model="model1.phone" placeholder="请输入电话"></u-input>
  124 + </u-form-item>
  125 + <u-form-item label="性别" prop="sexl" borderBottom v-if="wenjuan.needGender == '必填'"
  126 + style="padding: 0 20px ;">
  127 + <!-- <u-input v-model="model1.sexl" placeholder="请输入性别"></u-input> -->
  128 + <u-radio-group v-model="model1.sexl">
  129 + <u-radio active-color="#0FBB59" @change="radioChange" v-for="(item, index) in SexList"
  130 + :key="index" :name="item.name" :disabled="item.disabled">
  131 + {{ item.name }}
  132 + </u-radio>
  133 + </u-radio-group>
  134 + </u-form-item>
  135 +
  136 +
  137 + <view v-if="wenjuan.needOpinion == '必填'" style="padding:0 20px 10px 20px;">
  138 + <view style="margin-bottom:10px;">意见</view>
  139 +
  140 + <u-input v-model="model1.opinion" type="textarea" :border="true" :maxlength="maxLength" />
  141 + <div class="char-count" style="font-size:12px;">
  142 + {{ currentLength }} / {{ maxLength }}
  143 + </div>
  144 + </view>
  145 +
  146 + </u-form>
  147 +
  148 + </view>
  149 +
  150 + <button class="submit-btn" @click="submit">提交问卷</button>
  151 + </view>
  152 + <u-mask :show="show">
  153 + <view class="warp">
  154 + <view class="rect" @tap.stop>
  155 + <image src="../../static/images/tijiao.png" style="position: absolute;top:40%;width:80%;left:10%"
  156 + mode="aspectFit"></image>
  157 + </view>
  158 + </view>
  159 + </u-mask>
  160 +
  161 +
  162 + <u-toast ref="uToast" />
  163 + </view>
  164 +</template>
  165 +
  166 +<script>
  167 + const NET = require('@/utils/request')
  168 + const API = require('@/config/api')
  169 + export default {
  170 + data() {
  171 + return {
  172 + show: false,
  173 + maxLength: 500, // 假设最大字数为500
  174 + suggestion: '',
  175 + model1: {
  176 + name: '',
  177 + phone: '',
  178 + sexl: '',
  179 + opinion: '',
  180 + socialSecurityCardNumber: ''
  181 + },
  182 + wenjuan: {
  183 +
  184 + },
  185 + wentile: [],
  186 + rules: {
  187 + name: [{
  188 + type: 'string',
  189 + required: true,
  190 + message: '请填写姓名',
  191 + trigger: ['blur', 'change']
  192 + }],
  193 + phone: [{
  194 + required: true,
  195 + message: '请输入电话'
  196 + },
  197 + {
  198 + type: 'number',
  199 + message: '必须为数字值'
  200 + }
  201 + ],
  202 + },
  203 +
  204 + current: [],
  205 + pageTime: null,
  206 + duoxuan: [],
  207 + danAnswers: [],
  208 + selectedAnswers: [],
  209 + panduanId: [],
  210 + wenjuanIds: '',
  211 + scoreList: [],
  212 + SexList: [{
  213 + name: '男',
  214 + disabled: false
  215 + },
  216 + {
  217 + name: '女',
  218 + disabled: false
  219 + },
  220 + ],
  221 + timeLeft: null,
  222 + token: '',
  223 + myChoose: {},
  224 + myChooseItem: [
  225 +
  226 + ],
  227 + panduan: false
  228 + };
  229 + },
  230 + computed: {
  231 + currentLength() {
  232 + return this.model1.opinion.length;
  233 + }
  234 + },
  235 + onLoad(options) {
  236 +
  237 + if (options.ids != '') {
  238 + if (options.src && options.token) {
  239 +
  240 + this.token = options.token
  241 + let obj = {
  242 + token: options.token
  243 + }
  244 + NET.request(API.jietoken, obj, 'get').then(res => {
  245 + if (typeof res.data == 'string') {
  246 +
  247 + if (JSON.parse(res.data).phone) {
  248 + this.model1.phone = Number(JSON.parse(res.data).phone)
  249 + }
  250 + if (JSON.parse(res.data).aac003Mask) {
  251 + this.model1.name = JSON.parse(res.data).aac003Mask
  252 + }
  253 + if (JSON.parse(res.data).aac004) {
  254 + this.model1.sexl = JSON.parse(res.data).aac004
  255 + this.panduan = true
  256 + }
  257 + if (JSON.parse(res.data).aac002Mask) {
  258 + this.model1.socialSecurityCardNumber = JSON.parse(res.data).aac002Mask
  259 + }
  260 + }
  261 +
  262 + })
  263 +
  264 + // if (options.token != undefined) {}
  265 +
  266 + } else if (options.phone != undefined) {
  267 + this.model1.phone = options.phone
  268 + }
  269 +
  270 + this.wenjuanIds = options.ids
  271 + NET.request(API.wenjuanList, {
  272 + id: options.ids,
  273 + // reviewStatus: '3',
  274 + }, 'post').then(res => {
  275 + if (res.data.id) {
  276 + this.wenjuan = res.data
  277 + this.wenjuan.question = JSON.parse(res.data.question)
  278 + //检查this.wenjuan.question这个list的每个里面是否有maxChoose参数,没有的话就加一个
  279 + this.wenjuan.question.forEach(item => {
  280 + if (!item.maxChoose) {
  281 + item.maxChoose = 0
  282 + }
  283 + })
  284 +
  285 +
  286 + this.timeLeft = parseInt(this.wenjuan.estimatedTime, 10) * 60; // 将分钟转换为秒
  287 + this.updateCountdownDisplay()
  288 +
  289 + if (res.data.reviewStatus == '5' || res.data.reviewStatus == '4') {
  290 + uni.reLaunch({
  291 + url: `/pages_category_page1/question/succe?flag=3`
  292 + })
  293 + }
  294 + } else {
  295 + uni.reLaunch({
  296 + url: `/pages_category_page1/question/succe?flag=1`
  297 + })
  298 + }
  299 +
  300 + // if (res.data.cereQuestionManagements.length > 0) {
  301 + // for (let i = 0; i < res.data.cereQuestionManagements.length; i++) {
  302 + // this.$set(res.data.cereQuestionManagements[i], 'value', [])
  303 + // }
  304 + // }
  305 +
  306 + // this.wentile = res.data.cereQuestionManagements
  307 +
  308 + // this.wenjuan.cereQuestionManagements.map(item => {
  309 +
  310 + // item.optionSettings = JSON.parse(item.optionSettings)
  311 + // item.score = JSON.parse(item.score)
  312 + // })
  313 +
  314 + })
  315 + } else {
  316 + uni.reLaunch({
  317 + url: `/pages_category_page1/question/succe?flag=1`
  318 + })
  319 + }
  320 + // 设置倒计时定时器
  321 + // const countdownInterval = setInterval(() => {
  322 + // if (this.timeLeft > 0) {
  323 + // this.timeLeft--;
  324 + // this.updateCountdownDisplay();
  325 + // } else {
  326 + // clearInterval(countdownInterval);
  327 + // location.reload(true);
  328 + // // console.log('倒计时结束');
  329 + // // 这里可以添加倒计时结束时的处理代码
  330 + // }
  331 + // }, 1000); // 每秒更新一次
  332 + this.pageTime = this.getCurrentTimestamp()
  333 +
  334 + },
  335 + watch: {},
  336 + methods: {
  337 + // 获取时间
  338 + currentTime() {
  339 + let date = new Date();
  340 + let year = date.getFullYear();
  341 + let month = date.getMonth() + 1; // 月份从0~11,所以加一
  342 + let day = date.getDate();
  343 + let hours = date.getHours();
  344 + let minutes = date.getMinutes();
  345 + let seconds = date.getSeconds();
  346 +
  347 + // 为月、日、小时、分钟和秒添加前导零(如果需要)
  348 + month = month < 10 ? '0' + month : month;
  349 + day = day < 10 ? '0' + day : day;
  350 + hours = hours < 10 ? '0' + hours : hours;
  351 + minutes = minutes < 10 ? '0' + minutes : minutes;
  352 + seconds = seconds < 10 ? '0' + seconds : seconds;
  353 +
  354 + // 返回格式化的日期和时间字符串
  355 + return `${year}-${month}-${day} ${hours}:${minutes}`;
  356 + },
  357 + updateCountdownDisplay() {
  358 + const minutes = Math.floor(this.timeLeft / 60);
  359 + const seconds = this.timeLeft % 60;
  360 + // console.log(`${minutes} 分 ${seconds} 秒`);
  361 + // 这里可以替换为更新DOM元素的代码
  362 + },
  363 + // formatTime(seconds) {
  364 + // const minutes = Math.floor(seconds / 60);
  365 + // const remainingSeconds = seconds % 60;
  366 + // return `${minutes}分${remainingSeconds < 10 ? '0' : ''}${remainingSeconds}秒`;
  367 + // },
  368 + getCurrentTimestamp() {
  369 + let Times = Date.now();
  370 + return Times // 或者 new Date().getTime();
  371 + },
  372 + checkRequiredQuestions(qust) {
  373 + for (let key in qust) {
  374 +
  375 + let question = qust[key];
  376 + if (question.required === '必填') {
  377 + if (question.type === '文本' || question.type === '单选') {
  378 + if (question.choose === '') {
  379 +
  380 + this.$refs.uToast.show({
  381 + title: '请填写所有必填题目',
  382 + })
  383 +
  384 + return false; // 返回false表示有未填写的必填题目
  385 + }
  386 + } else if (question.type === '多选') {
  387 +
  388 +
  389 + let hasEnabledOption = question.options.some(option => option.disabled);
  390 +
  391 + if (!hasEnabledOption) {
  392 + this.$refs.uToast.show({
  393 + title: '请填写所有必填题目',
  394 + })
  395 +
  396 + return false; // 返回false表示有未填写的必填题目
  397 + }
  398 + }
  399 + }
  400 + }
  401 + return true; // 返回true表示所有必填题目都已填写
  402 + },
  403 + submit() {
  404 + let putTime = this.getCurrentTimestamp() - this.pageTime
  405 + putTime = (putTime / 1000).toFixed(2)
  406 + if (!this.checkRequiredQuestions(this.wenjuan.question)) {
  407 + return
  408 + }
  409 + if (this.model1.name == '' && this.wenjuan.needName == '必填') {
  410 + this.$refs.uToast.show({
  411 + title: '请输入姓名',
  412 + })
  413 + return;
  414 + }
  415 + if (this.wenjuan.needName == '不填' && this.token == '') {
  416 +
  417 + this.model1.name = '匿名'
  418 +
  419 + }
  420 + if (this.model1.phone == '' && this.wenjuan.needPhone == '必填') {
  421 + this.$refs.uToast.show({
  422 + title: '电话号码不能为空'
  423 + });
  424 + return;
  425 + }
  426 + if (this.wenjuan.needPhone == '必填' && this.isChineseOrPunctuation(this.model1.phone)) {
  427 + this.$refs.uToast.show({
  428 + title: '请输入电话且不能包含汉字或标点特殊符号',
  429 + })
  430 + return;
  431 + }
  432 +
  433 + // if(this.wenjuan.needPhone =='不填' && this.wenjuan.fillingConditions == '可重复填写'){
  434 + // this.model1.phone = ''
  435 + // }
  436 +
  437 + if (this.model1.sexl != '男' && this.model1.sexl != '女' && this.wenjuan.needGender == '必填') {
  438 + this.$refs.uToast.show({
  439 + title: '请选择性别',
  440 + })
  441 + return;
  442 + }
  443 + if (this.wenjuan.needGender == '不填' && this.panduan == false) {
  444 +
  445 + this.model1.sexl = '未知'
  446 +
  447 + }
  448 + if (this.model1.opinion == '' && this.wenjuan.needOpinion == '必填') {
  449 + this.$refs.uToast.show({
  450 + title: '请输入意见',
  451 + })
  452 + return;
  453 + }
  454 +
  455 +
  456 +
  457 + // JSON.stringify(danAnswers)
  458 + // let array = this.danAnswers.concat(this.selectedAnswers)
  459 + // obj.answerOptions = JSON.stringify(array)
  460 + var arr = []
  461 + // for (let i = 0; i < this.wentile.length; i++) {
  462 + // var info = {
  463 + // id: "",
  464 + // value: [],
  465 + // cores:0,
  466 + // }
  467 + // if (this.wentile[i].questionType == '单选' || this.wentile[i].questionType == '文本' ) {
  468 +
  469 + // info.id = this.wentile[i].id
  470 + // info.value = this.wentile[i].value
  471 + // let index =this.wentile[i].value
  472 + // if(this.wentile[i].score){
  473 +
  474 + // for (const key in this.wentile[i].score) {
  475 + // if (this.wentile[i].score.hasOwnProperty(key)) { // 确保只获取对象自身的属性,而不是继承的属性
  476 +
  477 + // if(key == index){
  478 + // info.cores = this.wentile[i].score[key]; // 设置 info.cores 为当前键对应的值
  479 + // break; // 如果找到了匹配的键,可以提前退出循环
  480 + // }
  481 + // }
  482 + // }
  483 + // }
  484 + // // console.log(this.wentile[i].cores[index])
  485 + // // info.cores.this.wentile[i].value =
  486 +
  487 + // arr.push(info)
  488 +
  489 +
  490 +
  491 + // // if (this.wentile[i].value != '' && this.wentile[i].value != null && this.wentile[i].value !=
  492 + // // undefined) {
  493 + // // info.id = this.wentile[i].id
  494 + // // info.value = this.wentile[i].value
  495 + // // let index =this.wentile[i].value
  496 + // // if(this.wentile[i].score){
  497 +
  498 + // // for (const key in this.wentile[i].score) {
  499 + // // if (this.wentile[i].score.hasOwnProperty(key)) { // 确保只获取对象自身的属性,而不是继承的属性
  500 +
  501 + // // if(key == index){
  502 + // // info.cores = this.wentile[i].score[key]; // 设置 info.cores 为当前键对应的值
  503 + // // break; // 如果找到了匹配的键,可以提前退出循环
  504 + // // }
  505 + // // }
  506 + // // }
  507 + // // }
  508 + // // // console.log(this.wentile[i].cores[index])
  509 + // // // info.cores.this.wentile[i].value =
  510 +
  511 + // // arr.push(info)
  512 +
  513 + // // }
  514 + // } else {
  515 + // if (this.wentile[i].value.length > 0) {
  516 + // info.id = this.wentile[i].id
  517 + // info.value = this.wentile[i].value
  518 + // let index =this.wentile[i].value
  519 + // console.log(this.wentile[i].score);
  520 + // if(this.wentile[i].score){
  521 +
  522 + // for (const key in this.wentile[i].score) {
  523 + // if (this.wentile[i].score.hasOwnProperty(key)) { // 确保只获取对象自身的属性,而不是继承的属性
  524 + // console.log('1111111111111111111',key,index)
  525 + // for(let j=0;j<index.length;j++){
  526 + // if(key == index[j]){
  527 + // console.log(info.cores,this.wentile[i].score[key])
  528 + // info.cores += this.wentile[i].score[key]; // 设置 info.cores 为当前键对应的值
  529 +
  530 + // }
  531 + // }
  532 +
  533 + // }
  534 + // }
  535 + // }
  536 + // arr.push(info)
  537 +
  538 + // }
  539 + // }
  540 +
  541 +
  542 + // }
  543 + console.log(this.wenjuan)
  544 +
  545 + // let obj = {
  546 + // questionnaireId: this.wenjuanIds,
  547 + // userName: this.model1.name,
  548 + // contactNumber: this.model1.phone,
  549 + // gender: this.model1.sexl,
  550 + // responseTime: putTime,
  551 + // opinion:this.model1.opinion,
  552 + // createTime: this.currentTime(),
  553 + // answerOptions: {},
  554 + // answeringScore: '',
  555 + // questionnaireScore: null,
  556 +
  557 + // }
  558 + // obj.answeringScore = []
  559 +
  560 + // for(let i=0;i<arr.length;i++){
  561 + // console.log()
  562 + // if(arr[i].cores ==null){
  563 + // obj.answerOptions[i+1] = arr[i].value
  564 + // }else{
  565 + // obj.questionnaireScore +=arr[i].cores
  566 + // obj.answeringScore.push(arr[i].cores)
  567 + // if(typeof arr[i].value !='string'){
  568 +
  569 + // arr[i].value.sort((a, b) => a - b)
  570 + // obj.answerOptions[i+1] = arr[i].value.join(',')
  571 + // }else{
  572 + // obj.answerOptions[i+1]=arr[i].value
  573 + // }
  574 + // }
  575 +
  576 +
  577 + // }
  578 + // obj.answerOptions= JSON.stringify(obj.answerOptions)
  579 + // obj.answeringScore = obj.answeringScore.join(',')
  580 +
  581 + var obj = {
  582 + ...this.wenjuan
  583 + }
  584 +
  585 +
  586 + for (var key in obj.question) {
  587 + console.log(obj.question[key])
  588 + if (obj.question[key].type == '多选') {
  589 + obj.question[key].choose = []
  590 + obj.question[key].options.map(res => {
  591 + if (res.disabled) {
  592 + obj.question[key].choose.push(res.answer)
  593 + }
  594 +
  595 + })
  596 + obj.question[key].choose = obj.question[key].choose.join(',')
  597 + }
  598 + }
  599 + const result = Object.keys(obj.question).reduce((acc, key) => {
  600 + const question = obj.question[key];
  601 + const chooseAnswers = question.choose.split(","); // 处理多选的情况
  602 + const indexes = chooseAnswers.map((choose) => {
  603 + const optionIndex = question.options.findIndex(
  604 + (option) => option.answer === choose
  605 + );
  606 + return optionIndex >= 0 ? optionIndex + 1 : null; // 序号从1开始
  607 + });
  608 +
  609 + acc[key] = indexes.filter((index) => index !== null).join(","); // 只保留有效序号
  610 + return acc;
  611 + }, {});
  612 +
  613 + // 计算总分数
  614 + const totalScore = Object.keys(obj.question).reduce((sum, key) => {
  615 + const question = obj.question[key]
  616 + if (question.type === "单选" || question.type === "多选") {
  617 + const chooseAnswers = question.choose.split(","); // 多选时拆分答案
  618 + chooseAnswers.forEach((choose) => {
  619 + const matchedOption = question.options.find(
  620 + (option) => option.answer === choose
  621 + );
  622 + if (matchedOption) {
  623 + sum += parseFloat(matchedOption.score || 0); // 累加分数
  624 + }
  625 + });
  626 + }
  627 + return sum;
  628 + }, 0);
  629 +
  630 + // console.log(obj.question,totalScore,result)
  631 + // return
  632 + obj.questionnaireId = this.wenjuanIds
  633 + obj.userName = this.model1.name
  634 + obj.contactNumber = this.model1.phone
  635 + obj.gender = this.model1.sexl
  636 + obj.responseTime = putTime
  637 + obj.answerOptions = JSON.stringify(result)
  638 + obj.createTime = this.currentTime()
  639 + obj.opinion = this.model1.opinion
  640 + obj.questionnaireScore = totalScore
  641 +
  642 + // let obj = {
  643 + // questionnaireId: this.wenjuanIds,
  644 + // userName: this.model1.name,
  645 + // contactNumber: this.model1.phone,
  646 + // gender: this.model1.sexl,
  647 + // responseTime: putTime,
  648 + // opinion:this.model1.opinion,
  649 + // createTime: this.currentTime(),
  650 + // answerOptions: {},
  651 + // answeringScore: '',
  652 + // questionnaireScore: null,
  653 +
  654 + // }
  655 + obj.question = JSON.stringify(obj.question)
  656 + let tijiaoObj = {
  657 + questionnaireId: this.wenjuanIds,
  658 + userName: this.model1.name,
  659 + contactNumber: this.model1.phone,
  660 + gender: this.model1.sexl,
  661 + responseTime: putTime,
  662 + answerOptions: JSON.stringify(result),
  663 + socialSecurityCardNumber: this.model1.socialSecurityCardNumber,
  664 + createTime: this.currentTime(),
  665 + opinion: this.model1.opinion,
  666 + questionnaireScore: totalScore,
  667 + question: obj.question
  668 + }
  669 +
  670 + console.log(tijiaoObj)
  671 +
  672 + NET.request(API.wenjuanUp, tijiaoObj, 'post').then(res => {
  673 + // this.show =true
  674 +
  675 + if (res.data == 'false') {
  676 + uni.reLaunch({
  677 + url: `/pages_category_page1/question/succe?chonfu=true`
  678 + })
  679 + } else {
  680 + uni.reLaunch({
  681 + url: `/pages_category_page1/question/succe?ids=${this.wenjuanIds}`
  682 + })
  683 + }
  684 +
  685 + })
  686 +
  687 + },
  688 +
  689 + isChineseOrPunctuation(str) {
  690 + const regex = /[^\d]/;
  691 + return regex.test(str);
  692 + },
  693 +
  694 +
  695 + // radioChange(index, e, item, idx) {
  696 + // console.log(index, e, item, idx)
  697 +
  698 + // // item.value = idx;
  699 + // // this.$forceUpdate();
  700 +
  701 + // },
  702 + radioChange(ind) {
  703 + // console.log(index, e, item, idx)
  704 + // console.error(this.items)
  705 + // for (let i = 0; i < this.items.length; i++) {
  706 + // if (this.items[i].value === evt.detail.value) {
  707 + // this.current = i;
  708 + // break;
  709 + // }
  710 + // }
  711 + // item.value = idx;
  712 + // this.$forceUpdate();
  713 +
  714 + },
  715 + checkboxChange(index, e, item, idx) {
  716 +
  717 + // const index1 = item.value.indexOf(idx)
  718 + // if (index1 !== -1) {
  719 + // item.value.splice(index1, 1);
  720 + // } else {
  721 + // item.value.push(idx)
  722 + // }
  723 + // this.$forceUpdate();
  724 + },
  725 + chooseAnswerOne(options, chooseItem, idx) {
  726 +
  727 + options.forEach(item => {
  728 + item.disabled = false
  729 + })
  730 +
  731 + for (let key in this.wenjuan.question) {
  732 + this.wenjuan.question[key].options.map(res => {
  733 + if (res.answer == chooseItem.answer) {
  734 + this.wenjuan.question[key].choose = chooseItem.answer
  735 + }
  736 + })
  737 +
  738 +
  739 + }
  740 +
  741 + this.myChoose = {
  742 + ...chooseItem
  743 + }
  744 + chooseItem.disabled = true
  745 + },
  746 + chooseAnswerMore(chooseItem, idx, item) {
  747 + if (item.maxChoose && item.maxChoose > 0) {
  748 + // 获取当前题目的已选中选项数量
  749 + const selectedCount = item.options.filter(option => option.disabled).length;
  750 + // 如果已选中到达 maxChoose,并且当前项未被选中,则不允许选择
  751 + if (selectedCount >= item.maxChoose && !chooseItem.disabled) {
  752 + uni.showToast({
  753 + title: `最多只能选择 ${item.maxChoose} 个选项`,
  754 + icon: 'none',
  755 + duration: 2000
  756 + });
  757 + return;
  758 + }
  759 + }
  760 +
  761 +
  762 +
  763 + if (chooseItem.disabled) {
  764 + chooseItem.disabled = false
  765 + for (let key in this.wenjuan.question) {
  766 + this.wenjuan.question[key].options.map(res => {
  767 + if (res.answer == chooseItem.answer) {
  768 + this.wenjuan.question[key].choose = ''
  769 + }
  770 + })
  771 + }
  772 + } else {
  773 + for (let key in this.wenjuan.question) {
  774 + this.wenjuan.question[key].options.map(res => {
  775 + if (res.answer == chooseItem.answer) {
  776 + this.wenjuan.question[key].choose = chooseItem.answer
  777 + }
  778 + })
  779 + }
  780 + chooseItem.disabled = true
  781 + }
  782 + },
  783 + chooseAnswer(item) {
  784 + console.log(1111);
  785 + }
  786 + // chooseAnswerMore(chooseItem, idx) {
  787 + // // 获取所有已选中的选项数量
  788 +
  789 + // if (chooseItem.disabled) {
  790 + // chooseItem.disabled = false
  791 + // for (let key in this.wenjuan.question) {
  792 + // this.wenjuan.question[key].options.map(res => {
  793 + // if (res.answer == chooseItem.answer) {
  794 + // this.wenjuan.question[key].choose = ''
  795 + // }
  796 + // })
  797 + // }
  798 + // } else {
  799 + // for (let key in this.wenjuan.question) {
  800 + // this.wenjuan.question[key].options.map(res => {
  801 + // if (res.answer == chooseItem.answer) {
  802 + // this.wenjuan.question[key].choose = chooseItem.answer
  803 + // }
  804 + // })
  805 + // }
  806 + // chooseItem.disabled = true
  807 + // }
  808 + // }
  809 +
  810 + }
  811 + };
  812 +</script>
  813 +
  814 +<style>
  815 + /* 整体页面背景渐变颜色设置 */
  816 + body {
  817 + background: linear-gradient(to bottom, #e9f2f8, #d0e0ea);
  818 + font-family: Arial, sans-serif;
  819 + line-height: 1.6;
  820 + height: 100vh;
  821 + display: flex;
  822 + flex-direction: column;
  823 + align-items: center;
  824 + justify-content: flex-start;
  825 + margin: 0;
  826 + padding: 0;
  827 + }
  828 +
  829 + .question {
  830 + background-color: white;
  831 + padding: 15px;
  832 + margin: 10px 0;
  833 + border-radius: 10px;
  834 + }
  835 +
  836 + /* 问卷容器样式,确保宽度自适应且不超出屏幕,设置内边距和背景等 */
  837 + .questionnaire {
  838 + width: 100%;
  839 + max-width: 600px;
  840 + flex-grow: 1;
  841 + margin: auto;
  842 + /* padding: 30px; */
  843 + background-color: white;
  844 + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  845 + border-radius: 5px;
  846 + box-sizing: border-box;
  847 + }
  848 +
  849 + /* 页面标题样式,设置背景色、文字颜色、宽度及内边距等 */
  850 + h3 {
  851 + text-align: center;
  852 + color: #000;
  853 + /* background-color: #007BFF; */
  854 + margin: 0;
  855 + padding: 10px 0;
  856 + width: 100%;
  857 + box-sizing: border-box;
  858 + }
  859 +
  860 + /* 问题标题样式,设置字体大小、颜色及下边框 */
  861 + .question-title {
  862 + font-size: 18px;
  863 + color: #000;
  864 + margin-bottom: 10px;
  865 + }
  866 +
  867 + /* 选项样式,设置列表样式及光标样式 */
  868 + .option {
  869 + list-style-type: none;
  870 + margin: 0;
  871 + cursor: pointer;
  872 + display: flex;
  873 + align-items: center;
  874 + margin-bottom: 10px;
  875 + color: black;
  876 + padding: 10px 20px;
  877 + border-radius: 3px;
  878 + transition: background-color 0.3s ease;
  879 + margin-right: 10px;
  880 + font-size: 15px;
  881 + font-weight: 500;
  882 +
  883 + .u-radio__label {
  884 + color: #000000;
  885 + font-size: 15px;
  886 + font-weight: 500;
  887 + }
  888 + }
  889 +
  890 + .myOption {
  891 + margin: 0;
  892 + cursor: pointer;
  893 + display: flex;
  894 + align-items: center;
  895 + margin-bottom: 10px;
  896 + padding: 15px 20px;
  897 + border-radius: 3px;
  898 + transition: background-color 0.3s ease;
  899 + margin-right: 10px;
  900 + font-size: 16px;
  901 + color: #000;
  902 + font-family: 'Alibaba PuHuiTi 2.0-55 Regular';
  903 + letter-spacing: 1px;
  904 + overflow: hidden;
  905 + position: relative;
  906 +
  907 + .chooseTag {
  908 + position: absolute;
  909 + top: 0;
  910 + right: 0;
  911 + width: 20px;
  912 + height: 20px;
  913 + background-color: #0fbb59;
  914 + border-radius: 0 0 0 20px;
  915 + display: flex;
  916 + align-items: center;
  917 + justify-content: center;
  918 +
  919 + .u-icon__icon {
  920 + margin-left: 4px;
  921 + margin-bottom: 2px;
  922 + }
  923 + }
  924 + }
  925 +
  926 + .green {
  927 + background-color: #cff4de;
  928 +
  929 + .u-radio__label {
  930 + color: #12ad55;
  931 + }
  932 + }
  933 +
  934 + .gary {
  935 +
  936 + background-color: #f5f5f5;
  937 +
  938 + }
  939 +
  940 + .optionActive {
  941 + background-color: #cff4de;
  942 + color: #12ad55;
  943 + }
  944 +
  945 +
  946 + /* 文本域样式,设置宽度、高度、边框及内边距 */
  947 + textarea {
  948 + width: 100%;
  949 + height: 100px;
  950 + border: 1px solid #ccc;
  951 + border-radius: 3px;
  952 + padding: 10px;
  953 + resize: vertical;
  954 + box-sizing: border-box;
  955 + }
  956 +
  957 + /* 提交按钮样式,设置背景色、颜色、边框、内边距、光标及过渡效果 */
  958 + .submit-btn {
  959 + background-color: #3F9B6A;
  960 + color: white;
  961 + border: none;
  962 + padding: 0px 20px;
  963 + border-radius: 3px;
  964 + cursor: pointer;
  965 + margin-top: 20px;
  966 + transition: background-color 0.3s ease;
  967 + width: 100%;
  968 + box-sizing: border-box;
  969 + }
  970 +
  971 + /* 提交按钮悬停效果,改变背景色 */
  972 + .submit-btn:hover {
  973 + background-color: #3F9B6A;
  974 + }
  975 +
  976 + .uni-checkbox-input {
  977 + width: 15px;
  978 + height: 15px;
  979 + }
  980 +
  981 + .uni-radio-input {
  982 + width: 15px;
  983 + height: 15px;
  984 + }
  985 +
  986 + ::v-deep .u-radio__label {
  987 + white-space: normal !important;
  988 + /* 允许文本换行 */
  989 + word-break: break-all !important;
  990 + /* 当内容过长时,自动换行 */
  991 + }
  992 +
  993 + ::v-deep .myMultiple {
  994 + display: flex;
  995 + width: 100%;
  996 + flex-wrap: wrap;
  997 +
  998 + }
  999 +</style>
0 \ No newline at end of file 1000 \ No newline at end of file
ceres-uniapp-master/pages_category_page1/question/question.vue
@@ -697,12 +697,12 @@ @@ -697,12 +697,12 @@
697 // console.log(result) 697 // console.log(result)
698 // console.log(JSON.stringify(result)) 698 // console.log(JSON.stringify(result))
699 // console.log(tijiaoObj) 699 // console.log(tijiaoObj)
700 - // console.log(JSON.stringify(tijiaoObj)) 700 + // console.log(this.wenjuan)
701 // return 701 // return
702 702
703 NET.request(API.wenjuanUp, tijiaoObj, 'post').then(res => { 703 NET.request(API.wenjuanUp, tijiaoObj, 'post').then(res => {
704 // this.show =true 704 // this.show =true
705 - 705 +
706 if (res.data == 'false') { 706 if (res.data == 'false') {
707 uni.reLaunch({ 707 uni.reLaunch({
708 url: `/pages_category_page1/question/succe?chonfu=true` 708 url: `/pages_category_page1/question/succe?chonfu=true`
@@ -711,6 +711,11 @@ @@ -711,6 +711,11 @@
711 uni.reLaunch({ 711 uni.reLaunch({
712 url: `/pages_category_page1/question/succe?ids=${this.wenjuanIds}` 712 url: `/pages_category_page1/question/succe?ids=${this.wenjuanIds}`
713 }) 713 })
  714 + if(this.wenjuan.rewardForParticipation !=''){
  715 + // window.location.replace( `https://jy.scjysm.asia:18086/h5-web/#/activity/pages/lottery/index?detailId=${this.wenjuan.rewardForParticipation}&style=${this.wenjuan.style}`);
  716 + window.location.replace( `https://jy.scjysm.asia:18086/h5-web/#/activity/pages/lottery/index?detailId=${this.wenjuan.rewardForParticipation}&style=${this.wenjuan.actStyle}`);
  717 +
  718 + }
714 } 719 }
715 720
716 }) 721 })
ceres-uniapp-master/static/images/cjwt.png 0 → 100644

1.56 KB

ceres-uniapp-master/static/images/fxzx.png 0 → 100644

1.57 KB

ceres-uniapp-master/static/images/llzj.png

940 Bytes | W: | H:

1.36 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
ceres-uniapp-master/static/images/sjrz.png

1.24 KB | W: | H:

1.39 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
ceres-uniapp-master/static/images/wdsc.png

780 Bytes | W: | H:

799 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
ceres-uniapp-master/static/images/yhq.png

1.36 KB | W: | H:

1.23 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
lvdao-miniapp/pages/shops/shops.vue
1 <template> 1 <template>
2 <view class="page"> 2 <view class="page">
3 <!-- 搜索 --> 3 <!-- 搜索 -->
4 -<!-- <view class="head-search"> 4 + <!-- <view class="head-search">
5 <u-search bg-color="#fff" placeholder="请输入" v-model="query.shopName" :show-action="false" @search="search" @clear="clearGet"></u-search> 5 <u-search bg-color="#fff" placeholder="请输入" v-model="query.shopName" :show-action="false" @search="search" @clear="clearGet"></u-search>
6 <u-button type="success" @click="search" style="height:32px;">搜索</u-button> 6 <u-button type="success" @click="search" style="height:32px;">搜索</u-button>
7 </view> --> 7 </view> -->
8 - <view style="margin: 20rpx 0;background-color: #FFFFFF;border-radius: 18rpx;border: 2rpx solid #E8E8E8; margin: 22rpx 24rpx;overflow: hidden;" >  
9 - <u-search :action-style="{'background':'#19be6b','color':'#fff','height':'32px','line-height':'32px','border-radius':'18rpx'}" bg-color="#fff" placeholder="请输入关键词" v-model="query.shopName" action-text="搜索" @clear="search" @search="search" @custom="search"></u-search> 8 + <view
  9 + style="margin: 20rpx 0;background-color: #FFFFFF;border-radius: 18rpx;border: 2rpx solid #E8E8E8; margin: 22rpx 24rpx;overflow: hidden;">
  10 + <u-search
  11 + :action-style="{'background':'#19be6b','color':'#fff','height':'32px','line-height':'32px','border-radius':'18rpx'}"
  12 + bg-color="#fff" placeholder="请输入关键词" v-model="query.shopName" action-text="搜索" @clear="search"
  13 + @search="search" @custom="search"></u-search>
10 </view> 14 </view>
11 <view class="screen-list"> 15 <view class="screen-list">
12 <view class="list" @click="show = true"> 16 <view class="list" @click="show = true">
13 <text>区域</text> 17 <text>区域</text>
14 - <image :src="$imgUrl('/down.png')"></image>  
15 - <u-select v-model="show" :list="areList" @confirm="(v) => {queryChange('belongingRegion', v)}"></u-select> 18 + <image :src="$imgUrl('/down.png')"></image>
  19 + <u-select v-model="show" :list="areList"
  20 + @confirm="(v) => {queryChange('belongingRegion', v)}"></u-select>
16 </view> 21 </view>
17 - <!-- <view class="list" @click="setList(1)"> 22 + <!-- <view class="list" @click="setList(1)">
18 <text>租金</text> 23 <text>租金</text>
19 <image :src="$imgUrl('/down.png')"></image> 24 <image :src="$imgUrl('/down.png')"></image>
20 </view> 25 </view>
@@ -33,7 +38,8 @@ @@ -33,7 +38,8 @@
33 <view class="goods-list"> 38 <view class="goods-list">
34 <view class="list" v-for="(item,index) in tableData" :key="index" @click="reconciliationdetail(item)"> 39 <view class="list" v-for="(item,index) in tableData" :key="index" @click="reconciliationdetail(item)">
35 <view class="thumb"> 40 <view class="thumb">
36 - <u-image width="25vw" height="25vw" border-radius="20" :src="$img + (item.displayMainImage || item.locationDiagram || item.displayImage) | getimgurl"></u-image> 41 + <u-image width="25vw" height="25vw" border-radius="20"
  42 + :src="$img + (item.displayMainImage || item.locationDiagram || item.displayImage) | getimgurl"></u-image>
37 <!-- <image :src="item.displayMainImage" mode=""></image> --> 43 <!-- <image :src="item.displayMainImage" mode=""></image> -->
38 </view> 44 </view>
39 <view class="item"> 45 <view class="item">
@@ -45,78 +51,81 @@ @@ -45,78 +51,81 @@
45 <text>标签标签</text> --> 51 <text>标签标签</text> -->
46 </view> 52 </view>
47 <view class="introduce"> 53 <view class="introduce">
48 - <image :src="$imgUrl('/kefu.png')"></image> 54 + <image :src="$imgUrl('/kefu.png')"></image>
49 <text class="one-omit">{{item.detailedLocation}}</text> 55 <text class="one-omit">{{item.detailedLocation}}</text>
50 </view> 56 </view>
51 <view class="like-goods"> 57 <view class="like-goods">
52 <view class="retail-price" v-if="item.belongingRegion"> 58 <view class="retail-price" v-if="item.belongingRegion">
53 - <text>所属区域:</text>  
54 - <text class="max">{{item.belongingRegion}}</text>  
55 - </view>  
56 - <view class="retail-price" >  
57 - <!-- <text>租金:</text> 59 + <text>所属区域:</text>
  60 + <text class="max">{{item.belongingRegion}}</text>
  61 + </view>
  62 + <view class="retail-price">
  63 + <!-- <text>租金:</text>
58 <text class="min">¥</text> 64 <text class="min">¥</text>
59 <text class="max">{{item.id * 10}}</text> 65 <text class="max">{{item.id * 10}}</text>
60 <text class="min">/月</text> 66 <text class="min">/月</text>
61 <text class="line"></text> --> 67 <text class="line"></text> -->
62 <text>面积:</text> 68 <text>面积:</text>
63 <text class="max">{{item.actualUsableArea}}</text> 69 <text class="max">{{item.actualUsableArea}}</text>
64 - <text class="min" >/m²</text> 70 + <text class="min">/m²</text>
65 </view> 71 </view>
66 </view> 72 </view>
67 </view> 73 </view>
68 </view> 74 </view>
69 </view> 75 </view>
70 </view> 76 </view>
71 - <u-popup v-model="zidongS" mode="center" width="90%" border-radius="20" :mask-close-able="false" :closeable="true" close-icon-pos="top-right"> 77 + <u-popup v-model="zidongS" mode="center" width="90%" border-radius="20" :mask-close-able="false"
  78 + :closeable="true" close-icon-pos="top-right">
72 <view class="zulinY"> 79 <view class="zulinY">
73 <view style="font-size: 32rpx;font-weight: 600;margin-bottom: 20rpx;">请填写您的租赁意向</view> 80 <view style="font-size: 32rpx;font-weight: 600;margin-bottom: 20rpx;">请填写您的租赁意向</view>
74 - <view class="" style="display: flex;justify-content: space-between;border-bottom:1px solid #F6F9FA;padding: 20rpx 0;">  
75 - <text class="sc" style="color: #979797;font-size: 30rpx;">意向区域</text>  
76 - <view @click="showS(2)">  
77 - <text class="mc" style="margin-right: 10rpx;"> {{formList.belongingRegion ==''?'请选择':formList.belongingRegion}}</text>  
78 - <u-icon name="arrow-down"></u-icon>  
79 - </view>  
80 - </view>  
81 - <view class="" style="display: flex;justify-content: space-between;border-bottom:1px solid #F6F9FA;padding: 20rpx 0;">  
82 - <text class="sc" style="color: #979797;font-size: 30rpx;">租金周期</text>  
83 - <view @click="showS(3)">  
84 - <text class="mc" style="margin-right: 10rpx;"> {{formList.zhouqi ==''?'请选择':formList.zhouqi}}</text>  
85 - <u-icon name="arrow-down"></u-icon>  
86 - </view> 81 + <view class=""
  82 + style="display: flex;justify-content: space-between;border-bottom:1px solid #F6F9FA;padding: 20rpx 0;">
  83 + <text class="sc" style="color: #979797;font-size: 30rpx;"><span style="color: red;">*</span>
  84 + 意向区域</text>
  85 + <view @click="showS(2)">
  86 + <text class="mc" style="margin-right: 10rpx;">
  87 + {{formList.belongingRegion ==''?'请选择':formList.belongingRegion}}</text>
  88 + <u-icon name="arrow-down"></u-icon>
  89 + </view>
87 </view> 90 </view>
88 - <view class="" style="display: flex;justify-content: space-between;border-bottom:1px solid #F6F9FA;padding: 20rpx 0;">  
89 - <text class="sc" style="color: #979797;font-size: 30rpx;">意向租金</text>  
90 - <view @click="showS(4)">  
91 - <text class="mc" style="margin-right: 10rpx;"> {{formList.zujin ==''?'请选择':formList.zujin}}</text>  
92 - <u-icon name="arrow-down"></u-icon>  
93 - </view> 91 + <view class=""
  92 + style="display: flex;justify-content: space-between;border-bottom:1px solid #F6F9FA;padding: 20rpx 0;">
  93 + <text class="sc" style="color: #979797;font-size: 30rpx;"><span
  94 + style="color: red;">*</span>租金周期</text>
  95 + <view @click="showS(3)">
  96 + <text class="mc" style="margin-right: 10rpx;">
  97 + {{formList.leaseTerm ==''?'请选择':formList.leaseTerm}}</text>
  98 + <u-icon name="arrow-down"></u-icon>
  99 + </view>
94 </view> 100 </view>
95 - <view class="" style="display: flex;justify-content: space-between;border-bottom:1px solid #F6F9FA;padding: 20rpx 0;">  
96 - <text class="sc" style="color: #979797;font-size: 30rpx;">意向面积</text>  
97 - <view @click="showS(5)">  
98 - <text class="mc" style="margin-right: 10rpx;"> {{formList.mianji ==''?'请选择':formList.mianji}}</text>  
99 - <u-icon name="arrow-down"></u-icon>  
100 - </view> 101 + <view class=""
  102 + style="display: flex;justify-content: space-between;border-bottom:1px solid #F6F9FA;padding: 20rpx 0;">
  103 + <text class="sc" style="color: #979797;font-size: 30rpx;"><span
  104 + style="color: red;">*</span>意向租金</text>
  105 + <view @click="showS(4)">
  106 + <text class="mc" style="margin-right: 10rpx;">
  107 + {{formList.zujin ==''?'请选择':formList.zujin}}</text>
  108 + <u-icon name="arrow-down"></u-icon>
  109 + </view>
101 </view> 110 </view>
102 - <!-- <view class="" style="display: flex;justify-content: space-between;border-bottom:1px solid #F6F9FA;padding: 20rpx 0;">  
103 - <view class="sc" style="color: #979797;font-size: 30rpx;line-height: 200%;">租赁人姓名</view>  
104 - <view style="width: 20%">  
105 - <u-input v-model="formList.name" type="text" :border="false" placeholder="请输入" :clearable="false" />  
106 - </view> 111 + <view class=""
  112 + style="display: flex;justify-content: space-between;border-bottom:1px solid #F6F9FA;padding: 20rpx 0;">
  113 + <text class="sc" style="color: #979797;font-size: 30rpx;"><span
  114 + style="color: red;">*</span>意向面积</text>
  115 + <view @click="showS(5)">
  116 + <text class="mc" style="margin-right: 10rpx;">
  117 + {{formList.actualUsableArea ==''?'请选择':formList.actualUsableArea}}</text>
  118 + <u-icon name="arrow-down"></u-icon>
  119 + </view>
107 </view> 120 </view>
108 - <view class="" style="display: flex;justify-content: space-between;border-bottom:1px solid #F6F9FA;padding: 20rpx 0;">  
109 - <view class="sc" style="color: #979797;font-size: 30rpx;line-height: 200%;">联系电话</view>  
110 - <view style="width: 20%">  
111 - <u-input v-model="formList.phone" type="text" :border="false" placeholder="请输入" :clearable="false"/>  
112 - </view>  
113 - </view> -->  
114 - <view class="" style="text-align: center;padding: 16rpx 0;background-color: #00BE4B;color: #fff;border-radius: 20rpx;margin: 20rpx 0;" @click="request"> 121 + <view class=""
  122 + style="text-align: center;padding: 16rpx 0;background-color: #00BE4B;color: #fff;border-radius: 20rpx;margin: 20rpx 0;"
  123 + @click="request">
115 确定 124 确定
116 </view> 125 </view>
117 </view> 126 </view>
118 <u-select v-model="showList" :list="companys" @confirm="handleCompanyConfirm" mini borderless></u-select> 127 <u-select v-model="showList" :list="companys" @confirm="handleCompanyConfirm" mini borderless></u-select>
119 - 128 +
120 </u-popup> 129 </u-popup>
121 130
122 </view> 131 </view>
@@ -127,53 +136,71 @@ @@ -127,53 +136,71 @@
127 data() { 136 data() {
128 return { 137 return {
129 query: { 138 query: {
130 - shopName:'', 139 + shopName: '',
131 belongingRegion: '', 140 belongingRegion: '',
132 - pageNumber: 0,  
133 - pageSize: 10 ,  
134 - publishStatus:2,  
135 - minPrice:0,  
136 - maxPrice:1000000 141 + pageNumber: 0,
  142 + pageSize: 10,
  143 + publishStatus: 2,
  144 + minPrice: 0,
  145 + maxPrice: 1000000
137 }, 146 },
138 pageindex: { 147 pageindex: {
139 pageNumber: 0, 148 pageNumber: 0,
140 pageSize: 10, 149 pageSize: 10,
141 - publishStatus:2,  
142 - minPrice:0,  
143 - maxPrice:1000000 150 + publishStatus: 2,
  151 + minPrice: 0,
  152 + maxPrice: 1000000
144 }, 153 },
145 tableData: [], 154 tableData: [],
146 - areList: [  
147 - {value: '武侯区', label: '武侯区'},  
148 - {value: '锦江区', label: '锦江区'},  
149 - {value: '青羊区', label: '青羊区'},  
150 - {value: '金牛区', label: '金牛区'},  
151 - {value: '双流区', label: '双流区'},  
152 - {value: '郫都区', label: '郫都区'},  
153 - {value: '龙泉驿区', label: '龙泉驿区'},  
154 - {value: '温江区', label: '温江区'}, 155 + areList: [{
  156 + value: '武侯区',
  157 + label: '武侯区'
  158 + },
  159 + {
  160 + value: '锦江区',
  161 + label: '锦江区'
  162 + },
  163 + {
  164 + value: '青羊区',
  165 + label: '青羊区'
  166 + },
  167 + {
  168 + value: '金牛区',
  169 + label: '金牛区'
  170 + },
  171 + {
  172 + value: '双流区',
  173 + label: '双流区'
  174 + },
  175 + {
  176 + value: '郫都区',
  177 + label: '郫都区'
  178 + },
  179 + {
  180 + value: '龙泉驿区',
  181 + label: '龙泉驿区'
  182 + },
  183 + {
  184 + value: '温江区',
  185 + label: '温江区'
  186 + },
155 ], // 区域列表 187 ], // 区域列表
156 -  
157 - showList:false, 188 +
  189 + showList: false,
158 zidongS: false, 190 zidongS: false,
159 formList: { 191 formList: {
160 - zulei: '',  
161 belongingRegion: '', 192 belongingRegion: '',
162 - zuqi:'',  
163 zujin: '', 193 zujin: '',
164 - mianji:'',  
165 - name:'',  
166 - phone:'',  
167 - zhouqi:'', 194 + actualUsableArea: '',
  195 + leaseTerm: '',
168 pageNumber: 0, 196 pageNumber: 0,
169 pageSize: 10, 197 pageSize: 10,
170 - publishStatus:2 198 + publishStatus: 2
171 }, 199 },
172 showSex: false, 200 showSex: false,
173 - show:false,  
174 - index:1,  
175 - companys: [  
176 - { 201 + show: false,
  202 + index: 1,
  203 + companys: [{
177 value: '1', 204 value: '1',
178 label: '商铺' 205 label: '商铺'
179 }, 206 },
@@ -186,9 +213,9 @@ @@ -186,9 +213,9 @@
186 label: '广告位' 213 label: '广告位'
187 } 214 }
188 ], 215 ],
189 - show1:false,  
190 - list:[],  
191 - xuanval:0, 216 + show1: false,
  217 + list: [],
  218 + xuanval: 0,
192 } 219 }
193 }, 220 },
194 filters: { 221 filters: {
@@ -215,10 +242,10 @@ @@ -215,10 +242,10 @@
215 }, 242 },
216 // 查询 243 // 查询
217 search() { 244 search() {
218 - this.$http.sendRequest('/cereBasicInformationShop/queryByPage', 'POST', this.query, 1).then(res => {  
219 - //成功回调  
220 - this.tableData = res.data.data.content  
221 - }) 245 + this.$http.sendRequest('/cereBasicInformationShop/queryByPage', 'POST', this.query, 1).then(res => {
  246 + //成功回调
  247 + this.tableData = res.data.data.content
  248 + })
222 }, 249 },
223 queryChange(key, val) { 250 queryChange(key, val) {
224 this.query[`${key}`] = val[0].value; 251 this.query[`${key}`] = val[0].value;
@@ -230,223 +257,250 @@ @@ -230,223 +257,250 @@
230 url: `/pages/details/details?item=${items}` 257 url: `/pages/details/details?item=${items}`
231 }) 258 })
232 }, 259 },
233 -  
234 - 260 +
  261 +
235 // 自动匹配 262 // 自动匹配
236 zidong() { 263 zidong() {
237 - this.zidongS = true 264 + this.zidongS = true
238 }, 265 },
239 - showS(val){  
240 - this.index = val  
241 - if(val == 1){  
242 - this.companys = [  
243 - {  
244 - value: '1',  
245 - label: '商铺'  
246 - },  
247 - // {  
248 - // value: '2',  
249 - // label: '临铺'  
250 - // },  
251 - // {  
252 - // value: '3',  
253 - // label: '广告位'  
254 - // }  
255 - ]  
256 -  
257 - }else if(val ==2 ){  
258 - this.companys = [  
259 - {  
260 - value: '1',  
261 - label: '成华区'  
262 - },  
263 - {  
264 - value: '2',  
265 - label: '武侯区'  
266 - },  
267 - {  
268 - value: '3',  
269 - label: '锦江区'  
270 - },  
271 - {  
272 - value: '4',  
273 - label: '青羊区'  
274 - },  
275 - {  
276 - value: '5',  
277 - label: '金牛区'  
278 - },  
279 - {  
280 - value: '6',  
281 - label: '双流区'  
282 - },  
283 - {  
284 - value: '7',  
285 - label: '郫都区'  
286 - },  
287 - {  
288 - value: '8',  
289 - label: '龙泉驿区'  
290 - },  
291 - {  
292 - value: '9',  
293 - label: '温江区'  
294 - }  
295 -  
296 -  
297 - ]  
298 - }else if(val == 3){  
299 - this.companys = [  
300 - {  
301 - value: '1',  
302 - label: '年'  
303 - },  
304 - {  
305 - value: '2',  
306 - label: '季'  
307 - },  
308 - {  
309 - value: '3',  
310 - label: '月'  
311 - },  
312 - {  
313 - value: '4',  
314 - label: '日'  
315 - }  
316 - ]  
317 - }else if(val == 4){  
318 - this.companys = [  
319 - {  
320 - value: '1',  
321 - label: '0-2000'  
322 - },  
323 - {  
324 - value: '2',  
325 - label: '2000-5000'  
326 - },  
327 - {  
328 - value: '3',  
329 - label: '5000-10000'  
330 - }  
331 - ]  
332 - }else{  
333 - this.companys = [  
334 - {  
335 - value: '1',  
336 - label: '0-100'  
337 - },  
338 - {  
339 - value: '2',  
340 - label: '100-200'  
341 - },  
342 - {  
343 - value: '3',  
344 - label: '200-300'  
345 - }  
346 - ]  
347 - }  
348 - this.showList = true  
349 - },  
350 - handleCompanyConfirm(e){  
351 - if(this.index == 1){  
352 - this.formList.zulei = e[0].label  
353 - }else if(this.index == 2){  
354 - this.formList.belongingRegion = e[0].label  
355 - }else if(this.index == 3){  
356 - this.formList.zhouqi = e[0].label  
357 - }else if(this.index == 4){  
358 - this.formList.zujin = e[0].label  
359 - if(e[0].value == 1){  
360 - this.formList.minPrice = 0  
361 - this.formList.maxPrice = 2000  
362 - }else if(e[0].value == 2){  
363 - this.formList.minPrice = 2000  
364 - this.formList.maxPrice = 5000  
365 - }else{  
366 - this.formList.minPrice = 5000  
367 - this.formList.maxPrice = 10000  
368 - }  
369 - }else{  
370 - this.formList.mianji = e[0].label  
371 - if(e[0].value == 1){  
372 - this.formList.minActualUsableArea = 0  
373 - this.formList.maxActualUsableArea = 100  
374 - }else if(e[0].value == 2){  
375 - this.formList.minActualUsableArea = 100  
376 - this.formList.maxActualUsableArea = 200  
377 - }else{  
378 - this.formList.minActualUsableArea = 200  
379 - this.formList.maxActualUsableArea = 300 266 + showS(val) {
  267 + this.index = val
  268 + if (val == 1) {
  269 + this.companys = [{
  270 + value: '1',
  271 + label: '商铺'
  272 + },
  273 + // {
  274 + // value: '2',
  275 + // label: '临铺'
  276 + // },
  277 + // {
  278 + // value: '3',
  279 + // label: '广告位'
  280 + // }
  281 + ]
  282 +
  283 + } else if (val == 2) {
  284 + this.companys = [{
  285 + value: '1',
  286 + label: '成华区'
  287 + },
  288 + {
  289 + value: '2',
  290 + label: '武侯区'
  291 + },
  292 + {
  293 + value: '3',
  294 + label: '锦江区'
  295 + },
  296 + {
  297 + value: '4',
  298 + label: '青羊区'
  299 + },
  300 + {
  301 + value: '5',
  302 + label: '金牛区'
  303 + },
  304 + {
  305 + value: '6',
  306 + label: '双流区'
  307 + },
  308 + {
  309 + value: '7',
  310 + label: '郫都区'
  311 + },
  312 + {
  313 + value: '8',
  314 + label: '龙泉驿区'
  315 + },
  316 + {
  317 + value: '9',
  318 + label: '温江区'
  319 + }
  320 +
  321 +
  322 + ]
  323 + } else if (val == 3) {
  324 + this.companys = [{
  325 + value: '1',
  326 + label: '年'
  327 + },
  328 + {
  329 + value: '2',
  330 + label: '季'
  331 + },
  332 + {
  333 + value: '3',
  334 + label: '月'
  335 + },
  336 + {
  337 + value: '4',
  338 + label: '日'
  339 + }
  340 + ]
  341 + } else if (val == 4) {
  342 + this.companys = [{
  343 + value: '1',
  344 + label: '0-2000'
  345 + },
  346 + {
  347 + value: '2',
  348 + label: '2000-5000'
  349 + },
  350 + {
  351 + value: '3',
  352 + label: '5000-10000'
  353 + }
  354 + ]
  355 + } else {
  356 + this.companys = [{
  357 + value: '1',
  358 + label: '0-100'
  359 + },
  360 + {
  361 + value: '2',
  362 + label: '100-200'
  363 + },
  364 + {
  365 + value: '3',
  366 + label: '200-300'
  367 + }
  368 + ]
380 } 369 }
381 -  
382 - }  
383 -  
384 - },  
385 - setList(val){  
386 - this.xuanval = val  
387 - if(val == 0){  
388 - const filteredTableData = this.tableData.filter(item => item.hasOwnProperty('belongingRegion'));  
389 -  
390 - // 提取 belongingRegion 字段并进行去重  
391 - const labeledBelongingRegions = filteredTableData.map(item => ({  
392 - label: item.belongingRegion  
393 - }));  
394 -  
395 - const uniqueBelongingRegions = [...new Set(labeledBelongingRegions)];  
396 - console.log(uniqueBelongingRegions)  
397 - this.list = uniqueBelongingRegions  
398 - }else if(val == 1){  
399 - this.list = []  
400 - }else if(val == 2){  
401 - this.list = []  
402 - }  
403 - this.show1 = true  
404 - },  
405 - confirm(val){  
406 - let page = {  
407 - pageNumber: 0,  
408 - pageSize: 10,  
409 - belongingRegion:val[0].label  
410 - }  
411 - this.$http.sendRequest('/cereBasicInformationShop/queryByPage', 'POST', page, 1).then(res => {  
412 - //成功回调  
413 - this.tableData = res.data.data.content  
414 - })  
415 - },  
416 - clearGet(){  
417 - this.$http.sendRequest('/cereBasicInformationShop/queryByPage', 'POST', this.pageindex, 1).then(res => {  
418 - //成功回调  
419 - this.tableData = res.data.data.content  
420 - })  
421 - },  
422 - request(){  
423 - this.$http.sendRequest('/cereBasicInformationShop/queryByPage', 'POST', this.formList, 1).then(res => {  
424 - //成功回调  
425 - this.tableData = res.data.data.content  
426 - if(res.data.data.content.length!=0){  
427 - let obj={  
428 - type:2,  
429 - matchingRecord:JSON.stringify(res.data.data.content) 370 + this.showList = true
  371 + },
  372 + handleCompanyConfirm(e) {
  373 + if (this.index == 1) {
  374 + this.formList.zulei = e[0].label
  375 + } else if (this.index == 2) {
  376 + this.formList.belongingRegion = e[0].label
  377 + } else if (this.index == 3) {
  378 + this.formList.leaseTerm = e[0].label
  379 + } else if (this.index == 4) {
  380 + this.formList.zujin = e[0].label
  381 + if (e[0].value == 1) {
  382 + this.formList.minPrice = 0
  383 + this.formList.maxPrice = 2000
  384 + } else if (e[0].value == 2) {
  385 + this.formList.minPrice = 2000
  386 + this.formList.maxPrice = 5000
  387 + } else {
  388 + this.formList.minPrice = 5000
  389 + this.formList.maxPrice = 10000
430 } 390 }
431 - this.$http.sendRequest('/resourceStrategyMatchingRecord/insert', 'POST', obj, 1).then(res => {  
432 - }) 391 + } else {
  392 + this.formList.actualUsableArea = e[0].label
  393 + // if (e[0].value == 1) {
  394 + // this.formList.minActualUsableArea = 0
  395 + // this.formList.maxActualUsableArea = 100
  396 + // } else if (e[0].value == 2) {
  397 + // this.formList.minActualUsableArea = 100
  398 + // this.formList.maxActualUsableArea = 200
  399 + // } else {
  400 + // this.formList.minActualUsableArea = 200
  401 + // this.formList.maxActualUsableArea = 300
  402 + // }
  403 +
433 } 404 }
434 -  
435 - })  
436 - this.formList = {  
437 - zulei: '',  
438 - belongingRegion: '',  
439 - zujin: '',  
440 - mianji:'',  
441 - name:'',  
442 - phone:'', 405 +
  406 + },
  407 + setList(val) {
  408 + this.xuanval = val
  409 + if (val == 0) {
  410 + const filteredTableData = this.tableData.filter(item => item.hasOwnProperty('belongingRegion'));
  411 +
  412 + // 提取 belongingRegion 字段并进行去重
  413 + const labeledBelongingRegions = filteredTableData.map(item => ({
  414 + label: item.belongingRegion
  415 + }));
  416 +
  417 + const uniqueBelongingRegions = [...new Set(labeledBelongingRegions)];
  418 + console.log(uniqueBelongingRegions)
  419 + this.list = uniqueBelongingRegions
  420 + } else if (val == 1) {
  421 + this.list = []
  422 + } else if (val == 2) {
  423 + this.list = []
  424 + }
  425 + this.show1 = true
  426 + },
  427 + confirm(val) {
  428 + let page = {
443 pageNumber: 0, 429 pageNumber: 0,
444 pageSize: 10, 430 pageSize: 10,
445 - publishStatus:2  
446 - 431 + belongingRegion: val[0].label
  432 + }
  433 + this.$http.sendRequest('/cereBasicInformationShop/queryByPage', 'POST', page, 1).then(res => {
  434 + //成功回调
  435 + this.tableData = res.data.data.content
  436 + })
  437 + },
  438 + clearGet() {
  439 + this.$http.sendRequest('/cereBasicInformationShop/queryByPage', 'POST', this.pageindex, 1).then(res => {
  440 + //成功回调
  441 + this.tableData = res.data.data.content
  442 + })
  443 + },
  444 + request() {
  445 + if (!this.formList.belongingRegion) {
  446 + uni.showToast({
  447 + icon: 'none',
  448 + title: '请选择意向区域'
  449 + });
  450 + return false;
  451 + }
  452 + if (!this.formList.leaseTerm) {
  453 + uni.showToast({
  454 + icon: 'none',
  455 + title: '请选择租金周期'
  456 + });
  457 + return false;
  458 + }
  459 + if (!this.formList.zujin) {
  460 + uni.showToast({
  461 + icon: 'none',
  462 + title: '请选择意向租金'
  463 + });
  464 + return false;
  465 + }
  466 + if (!this.formList.actualUsableArea) {
  467 + uni.showToast({
  468 + icon: 'none',
  469 + title: '请选择意向面积'
  470 + });
  471 + return false;
  472 + }
  473 + this.$http.sendRequest('/cereBasicInformationShop/queryByPage', 'POST', this.formList, 1).then(res => {
  474 + //成功回调
  475 + this.tableData = res.data.data.content
  476 + if (res.data.data.content.length != 0) {
  477 + let obj = {
  478 + leaseTerm: this.formList.leaseTerm,
  479 + rentalPrice:this.formList.zujin,
  480 + actualUsableArea:this.formList.actualUsableArea,
  481 + belongingRegion:this.formList.belongingRegion,
  482 + applicableResources:'商铺',
  483 + matchingRecord: JSON.stringify(res.data.data.content),
  484 + type:2
  485 + }
  486 + this.$http.sendRequest('/resourceStrategyMatchingRecord/insert', 'POST', obj, 1).then(
  487 + res => {
  488 + this.formList = {
  489 + belongingRegion: '',
  490 + zujin: '',
  491 + actualUsableArea: '',
  492 + leaseTerm: '',
  493 + pageNumber: 0,
  494 + pageSize: 10,
  495 + publishStatus: 2
  496 + }
  497 + })
  498 + }
  499 +
  500 + })
  501 +
  502 + this.zidongS = false
447 } 503 }
448 - this.zidongS = false  
449 - }  
450 } 504 }
451 } 505 }
452 </script> 506 </script>
wenjuan-h5/pages_category_page1/question/question.vue
@@ -697,14 +697,12 @@ @@ -697,14 +697,12 @@
697 // console.log(result) 697 // console.log(result)
698 // console.log(JSON.stringify(result)) 698 // console.log(JSON.stringify(result))
699 // console.log(tijiaoObj) 699 // console.log(tijiaoObj)
700 - // console.log(JSON.stringify(tijiaoObj)) 700 + // console.log(this.wenjuan)
701 // return 701 // return
702 702
703 NET.request(API.wenjuanUp, tijiaoObj, 'post').then(res => { 703 NET.request(API.wenjuanUp, tijiaoObj, 'post').then(res => {
704 // this.show =true 704 // this.show =true
705 - // if(){  
706 - // https://jy.scjysm.asia:18086/h5-web/#/activity/pages/lottery/index?detailId=1892112909937541122&style=2  
707 - // } 705 +
708 if (res.data == 'false') { 706 if (res.data == 'false') {
709 uni.reLaunch({ 707 uni.reLaunch({
710 url: `/pages_category_page1/question/succe?chonfu=true` 708 url: `/pages_category_page1/question/succe?chonfu=true`
@@ -713,6 +711,11 @@ @@ -713,6 +711,11 @@
713 uni.reLaunch({ 711 uni.reLaunch({
714 url: `/pages_category_page1/question/succe?ids=${this.wenjuanIds}` 712 url: `/pages_category_page1/question/succe?ids=${this.wenjuanIds}`
715 }) 713 })
  714 + if(this.wenjuan.rewardForParticipation !=''){
  715 + // window.location.replace( `https://jy.scjysm.asia:18086/h5-web/#/activity/pages/lottery/index?detailId=${this.wenjuan.rewardForParticipation}&style=${this.wenjuan.style}`);
  716 + window.location.replace( `https://jy.scjysm.asia:18086/h5-web/#/activity/pages/lottery/index?detailId=${this.wenjuan.rewardForParticipation}&style=${this.wenjuan.actStyle}`);
  717 +
  718 + }
716 } 719 }
717 720
718 }) 721 })
wenjuan-pc/src/views/investigation/index.vue
@@ -189,7 +189,8 @@ @@ -189,7 +189,8 @@
189 <div style="text-align: center;"> 189 <div style="text-align: center;">
190 <div style="margin-bottom:10px;">平均答题时长</div> 190 <div style="margin-bottom:10px;">平均答题时长</div>
191 <div style="font-size:16px;"> 191 <div style="font-size:16px;">
192 - {{ secondsToMinutesAndSeconds(tongjiTu.averageDuration) }}</div> 192 + {{ secondsToMinutesAndSeconds(tongjiTu.averageDuration) }}
  193 + </div>
193 </div> 194 </div>
194 </div> 195 </div>
195 <div style="margin: 20px 0;font-size: 18px;">题目统计</div> 196 <div style="margin: 20px 0;font-size: 18px;">题目统计</div>
@@ -365,6 +366,7 @@ @@ -365,6 +366,7 @@
365 <template slot="label"> 366 <template slot="label">
366 提交问卷后 367 提交问卷后
367 </template> 368 </template>
  369 +
368 {{ secondData.rewardForParticipation!=''?'转盘抽奖':'不设置奖励'}} 370 {{ secondData.rewardForParticipation!=''?'转盘抽奖':'不设置奖励'}}
369 </el-descriptions-item> 371 </el-descriptions-item>
370 <el-descriptions-item> 372 <el-descriptions-item>
@@ -372,8 +374,9 @@ @@ -372,8 +374,9 @@
372 奖励 374 奖励
373 </template> 375 </template>
374 <div> 376 <div>
375 - <span>{{ secondData.rewardForParticipation!=''?'转盘抽奖活动':''}}</span>  
376 - <span v-if="jiangli.id && jiangli.id!=''" style="padding: 0 20px;color: #3F9B6A;cursor: pointer;" @click="actGo(1)">查看</span> 377 + <span>{{ secondData.rewardForParticipation!=''?getStatusText(secondData.actStyle):'无'}}</span>
  378 + <span v-if="jiangli.id && jiangli.id!=''"
  379 + style="padding: 0 20px;color: #3F9B6A;cursor: pointer;" @click="actGo(1)">查看</span>
377 </div> 380 </div>
378 </el-descriptions-item> 381 </el-descriptions-item>
379 </el-descriptions> 382 </el-descriptions>
@@ -569,8 +572,7 @@ @@ -569,8 +572,7 @@
569 </div> 572 </div>
570 <el-form ref="form" :model="formInline" label-width="140px" 573 <el-form ref="form" :model="formInline" label-width="140px"
571 style="padding:20px;"> 574 style="padding:20px;">
572 - <el-radio-group v-model="radioreward"  
573 - @change="radioClick"> 575 + <el-radio-group v-model="radioreward" @change="radioClick">
574 <el-radio label="不设置奖励" value="不设置奖励">不设置奖励</el-radio> 576 <el-radio label="不设置奖励" value="不设置奖励">不设置奖励</el-radio>
575 <!-- <el-radio label="奖励积分" value="奖励积分">奖励积分</el-radio> --> 577 <!-- <el-radio label="奖励积分" value="奖励积分">奖励积分</el-radio> -->
576 <el-radio label="转盘抽奖" value="转盘抽奖">转盘抽奖</el-radio> 578 <el-radio label="转盘抽奖" value="转盘抽奖">转盘抽奖</el-radio>
@@ -583,16 +585,16 @@ @@ -583,16 +585,16 @@
583 奖励 <el-input v-model="jifen" style="width:50px;" />积分 585 奖励 <el-input v-model="jifen" style="width:50px;" />积分
584 </div> 586 </div>
585 </div> --> 587 </div> -->
586 - <div v-if="radioreward === '转盘抽奖'"  
587 - style="padding: 0 0 20px 20px;">  
588 - <div v-if="jiangli.id && jiangli.id!=''" style="padding: 10px 0;">  
589 - <span>{{jiangli.name}}</span>  
590 - <span style="padding: 0 20px;color: #3F9B6A;cursor: pointer;" @click="actGo(1)">查看</span>  
591 - <span style="color: #3F9B6A;cursor: pointer;" @click="actGo(2)">编辑</span> 588 + <div v-if="radioreward === '转盘抽奖'" style="padding: 0 0 20px 20px;">
  589 + <div v-if="jiangli.id && jiangli.id!=''" style="padding: 10px 0;">
  590 + <span>{{jiangli.actName}}</span>
  591 + <span style="padding: 0 20px;color: #3F9B6A;cursor: pointer;"
  592 + @click="actGo(1)">查看</span>
  593 + <span style="color: #3F9B6A;cursor: pointer;"
  594 + @click="actGo(2)">编辑</span>
592 </div> 595 </div>
593 - <div v-else>  
594 - <el-button  
595 - style="color: #fff;background-color: #3F9B6A;" 596 + <div v-else>
  597 + <el-button style="color: #fff;background-color: #3F9B6A;"
596 @click="actGo(0)">创建活动</el-button> 598 @click="actGo(0)">创建活动</el-button>
597 </div> 599 </div>
598 </div> 600 </div>
@@ -996,23 +998,22 @@ @@ -996,23 +998,22 @@
996 <div>参与答卷奖励</div> 998 <div>参与答卷奖励</div>
997 </div> 999 </div>
998 <el-form ref="form" :model="secondData" label-width="140px" style="padding:20px;"> 1000 <el-form ref="form" :model="secondData" label-width="140px" style="padding:20px;">
999 - <el-radio-group v-model="radioreward"  
1000 - @change="radioClick"> 1001 + <el-radio-group v-model="radioreward" @change="radioClick">
1001 <el-radio label="不设置奖励" value="不设置奖励">不设置奖励</el-radio> 1002 <el-radio label="不设置奖励" value="不设置奖励">不设置奖励</el-radio>
1002 <!-- <el-radio label="奖励积分" value="奖励积分">奖励积分</el-radio> --> 1003 <!-- <el-radio label="奖励积分" value="奖励积分">奖励积分</el-radio> -->
1003 <el-radio label="转盘抽奖" value="转盘抽奖">转盘抽奖</el-radio> 1004 <el-radio label="转盘抽奖" value="转盘抽奖">转盘抽奖</el-radio>
1004 <!-- <el-radio label="优惠券" value="优惠券">优惠券</el-radio> --> 1005 <!-- <el-radio label="优惠券" value="优惠券">优惠券</el-radio> -->
1005 </el-radio-group> 1006 </el-radio-group>
1006 - <div v-if="radioreward === '转盘抽奖'"  
1007 - style="padding: 0 0 20px 20px;">  
1008 - <div v-if="jiangli.id && jiangli.id!=''" style="padding: 10px 0;">  
1009 - <span>{{jiangli.name}}</span>  
1010 - <span style="padding: 0 20px;color: #3F9B6A;cursor: pointer;" @click="actGo(1)">查看</span>  
1011 - <span style="color: #3F9B6A;cursor: pointer;" @click="actGo(2)">编辑</span> 1007 + <div v-if="radioreward === '转盘抽奖'" style="padding: 0 0 20px 20px;">
  1008 + <div v-if="jiangli.id && jiangli.id!=''" style="padding: 10px 0;">
  1009 + <span>{{jiangli.actName}}</span>
  1010 + <span style="padding: 0 20px;color: #3F9B6A;cursor: pointer;"
  1011 + @click="actGo(1)">查看</span>
  1012 + <span style="color: #3F9B6A;cursor: pointer;"
  1013 + @click="actGo(2)">编辑</span>
1012 </div> 1014 </div>
1013 <div v-else> 1015 <div v-else>
1014 - <el-button  
1015 - style="color: #fff;background-color: #3F9B6A;" 1016 + <el-button style="color: #fff;background-color: #3F9B6A;"
1016 @click="actGo(0)">创建活动</el-button> 1017 @click="actGo(0)">创建活动</el-button>
1017 </div> 1018 </div>
1018 1019
@@ -1365,7 +1366,8 @@ @@ -1365,7 +1366,8 @@
1365 <div v-if="item.type == '单选' && item.layoutType == 2" 1366 <div v-if="item.type == '单选' && item.layoutType == 2"
1366 style="display: flex;width: 100%;flex-wrap: wrap;"> 1367 style="display: flex;width: 100%;flex-wrap: wrap;">
1367 <div class="answerItem" v-for="(val, idx) in item.options" :key="idx"> 1368 <div class="answerItem" v-for="(val, idx) in item.options" :key="idx">
1368 - {{ val.answer }}</div> 1369 + {{ val.answer }}
  1370 + </div>
1369 </div> 1371 </div>
1370 <el-checkbox-group v-for="(val, idx) in item.options" 1372 <el-checkbox-group v-for="(val, idx) in item.options"
1371 v-if="item.type == '多选' && item.layoutType != 2" :key="idx" 1373 v-if="item.type == '多选' && item.layoutType != 2" :key="idx"
@@ -1381,7 +1383,8 @@ @@ -1381,7 +1383,8 @@
1381 <div v-if="item.type == '多选' && item.layoutType == 2" 1383 <div v-if="item.type == '多选' && item.layoutType == 2"
1382 style="display: flex;width: 100%;flex-wrap: wrap;"> 1384 style="display: flex;width: 100%;flex-wrap: wrap;">
1383 <div class="answerItem" v-for="(val, idx) in item.options" :key="idx"> 1385 <div class="answerItem" v-for="(val, idx) in item.options" :key="idx">
1384 - {{ val.answer }}</div> 1386 + {{ val.answer }}
  1387 + </div>
1385 </div> 1388 </div>
1386 <div v-if="item.type == '文本'"> 1389 <div v-if="item.type == '文本'">
1387 <el-input v-model="model1.name" placeholder="请输入" disabled style="width:80%" /> 1390 <el-input v-model="model1.name" placeholder="请输入" disabled style="width:80%" />
@@ -1452,8 +1455,8 @@ @@ -1452,8 +1455,8 @@
1452 </div> 1455 </div>
1453 </div> 1456 </div>
1454 </el-dialog> 1457 </el-dialog>
1455 - <el-dialog :visible.sync="iframaShow" title="创建活动" width="90%" center top="1%"  
1456 - :close-on-click-modal="false" append-to-body> 1458 + <el-dialog :visible.sync="iframaShow" title="创建活动" width="90%" center top="1%" :close-on-click-modal="false"
  1459 + append-to-body>
1457 <div style="padding:20px;"> 1460 <div style="padding:20px;">
1458 <iframe :src="iframaUrl" ref="iframe" frameborder="0" width="100%" height="700px" /> 1461 <iframe :src="iframaUrl" ref="iframe" frameborder="0" width="100%" height="700px" />
1459 <div style="padding-top:20px;display:flex;justify-content: flex-end;"> 1462 <div style="padding-top:20px;display:flex;justify-content: flex-end;">
@@ -1732,15 +1735,16 @@ @@ -1732,15 +1735,16 @@
1732 shujuloading: false, 1735 shujuloading: false,
1733 iframaUrl: '', 1736 iframaUrl: '',
1734 iframaShow: false, 1737 iframaShow: false,
1735 - iframeWin:null,  
1736 - jiangli:{  
1737 - id:'1894944771529637890', //活动id  
1738 - name:'商业抽奖活动', //活动名称  
1739 - styles:'1', //抽奖样式 1:大转盘 2:砸金蛋 3:刮刮卡 4:翻牌乐 5:福袋 6:摇一摇 1738 + iframeWin: null,
  1739 + jiangli: {
  1740 + id: '1895043663592030209', //活动id
  1741 + actName: '商业测试活动1', //活动名称
  1742 + actStyle: '1', //抽奖样式 1:大转盘 2:砸金蛋 3:刮刮卡 4:翻牌乐 5:福袋 6:摇一摇
1740 // id:'', 1743 // id:'',
1741 - // name:'' 1744 + // actName:'',
  1745 + // actStyle:'', //抽奖样式 1:大转盘 2:砸金蛋 3:刮刮卡 4:翻牌乐 5:福袋 6:摇一摇
1742 }, 1746 },
1743 - radioreward:'不设置奖励' 1747 + radioreward: '不设置奖励'
1744 } 1748 }
1745 }, 1749 },
1746 computed: { 1750 computed: {
@@ -1749,24 +1753,25 @@ @@ -1749,24 +1753,25 @@
1749 created() { 1753 created() {
1750 this.getAll() 1754 this.getAll()
1751 }, 1755 },
1752 - mounted() {  
1753 - // 监听iframe页面点击按钮触发事件  
1754 - window.addEventListener('message', (event) => {  
1755 - const data = event.data  
1756 - if (data.code === 'success') {  
1757 - // alert(data.test)  
1758 - console.log('id',data.id)  
1759 - console.log('name',data.name)  
1760 - this.jiangli = {  
1761 - id:''+data.id,  
1762 - name:data.name,  
1763 - styles:data.style  
1764 - }  
1765 - this.iframaShow = false  
1766 - }  
1767 - })  
1768 - // this.iframeWin = this.$refs.iframe.contentWindow  
1769 - }, 1756 + mounted() {
  1757 + // 监听iframe页面点击按钮触发事件
  1758 + window.addEventListener('message', (event) => {
  1759 + const data = event.data
  1760 + if (data.code === 'success') {
  1761 + // alert(data.test)
  1762 + console.log('id', data.id)
  1763 + console.log('name', data.name)
  1764 + console.log('styles', data.style)
  1765 + this.jiangli = {
  1766 + id: '' + data.id,
  1767 + actName: data.name,
  1768 + actStyle: data.style
  1769 + }
  1770 + this.iframaShow = false
  1771 + }
  1772 + })
  1773 + // this.iframeWin = this.$refs.iframe.contentWindow
  1774 + },
1770 methods: { 1775 methods: {
1771 input(e, e1) { 1776 input(e, e1) {
1772 // this.formInline[e1] = e 1777 // this.formInline[e1] = e
@@ -1810,14 +1815,16 @@ @@ -1810,14 +1815,16 @@
1810 return false; 1815 return false;
1811 } 1816 }
1812 if (this.radioreward == '转盘抽奖') { 1817 if (this.radioreward == '转盘抽奖') {
1813 - if (this.jiangli.id && this.jiangli.id== '') { 1818 + if (this.jiangli.id && this.jiangli.id == '') {
1814 this.$message({ 1819 this.$message({
1815 message: '请创建转盘活动', 1820 message: '请创建转盘活动',
1816 }) 1821 })
1817 return false; 1822 return false;
1818 } 1823 }
1819 - }else{ 1824 + } else {
1820 this.jiangli.id = '' 1825 this.jiangli.id = ''
  1826 + this.jiangli.actName = ''
  1827 + this.jiangli.actStyle = ''
1821 } 1828 }
1822 let ids = null 1829 let ids = null
1823 if (this.wenConstData.length != 0) { 1830 if (this.wenConstData.length != 0) {
@@ -1830,6 +1837,8 @@ @@ -1830,6 +1837,8 @@
1830 return false; 1837 return false;
1831 } 1838 }
1832 this.formInline.rewardForParticipation = this.jiangli.id 1839 this.formInline.rewardForParticipation = this.jiangli.id
  1840 + this.formInline.actStyle = this.jiangli.actStyle
  1841 + this.formInline.actName = this.jiangli.actName
1833 this.formInline.createTime = this.currentTime() 1842 this.formInline.createTime = this.currentTime()
1834 TerminaAdd(this.formInline).then(res => { 1843 TerminaAdd(this.formInline).then(res => {
1835 if (res.data.code == '500') { 1844 if (res.data.code == '500') {
@@ -1896,7 +1905,7 @@ @@ -1896,7 +1905,7 @@
1896 item.question = JSON.parse(item.question) 1905 item.question = JSON.parse(item.question)
1897 } 1906 }
1898 const array = this.objectToArray(item.question) 1907 const array = this.objectToArray(item.question)
1899 - this.jiangli.id = item.rewardForParticipation 1908 + this.jiangli.id = item.rewardForParticipation
1900 this.wenData = array 1909 this.wenData = array
1901 // this.secondData.cereQuestionManagements.map((res, index) => { 1910 // this.secondData.cereQuestionManagements.map((res, index) => {
1902 // if (typeof res.optionSettings == 'string') { 1911 // if (typeof res.optionSettings == 'string') {
@@ -2062,12 +2071,13 @@ @@ -2062,12 +2071,13 @@
2062 if (typeof item.question === 'string') { 2071 if (typeof item.question === 'string') {
2063 item.question = JSON.parse(item.question) 2072 item.question = JSON.parse(item.question)
2064 } 2073 }
2065 - if(item.rewardForParticipation!=''){  
2066 - this.radioreward='转盘抽奖'  
2067 - }else{  
2068 - this.radioreward='不设置奖励' 2074 + if (item.rewardForParticipation != '') {
  2075 + this.radioreward = '转盘抽奖'
  2076 + } else {
  2077 + this.radioreward = '不设置奖励'
2069 } 2078 }
2070 - this.jiangli.id = item.rewardForParticipation 2079 + this.jiangli.id = item.rewardForParticipation
  2080 + this.jiangli.actName = item.actName
2071 this.secondDataTi = item.cereQuestionManagements 2081 this.secondDataTi = item.cereQuestionManagements
2072 this.bainjiBox = true 2082 this.bainjiBox = true
2073 2083
@@ -2091,16 +2101,20 @@ @@ -2091,16 +2101,20 @@
2091 ids = this.secondDataTi.map(item => item.id); 2101 ids = this.secondDataTi.map(item => item.id);
2092 } 2102 }
2093 if (this.radioreward == '转盘抽奖') { 2103 if (this.radioreward == '转盘抽奖') {
2094 - if (this.jiangli.id &&this.jiangli.id== '') { 2104 + if (this.jiangli.id && this.jiangli.id == '') {
2095 this.$message({ 2105 this.$message({
2096 message: '请创建转盘活动', 2106 message: '请创建转盘活动',
2097 }) 2107 })
2098 return false; 2108 return false;
2099 } 2109 }
2100 - }else{ 2110 + } else {
2101 this.jiangli.id = '' 2111 this.jiangli.id = ''
  2112 + this.jiangli.actStyle = ''
  2113 + this.jiangli.actName = ''
2102 } 2114 }
2103 this.secondData.rewardForParticipation = this.jiangli.id 2115 this.secondData.rewardForParticipation = this.jiangli.id
  2116 + this.secondData.actStyle = this.jiangli.actStyle
  2117 + this.secondData.actName = this.jiangli.actName
2104 this.secondData.questionId = ids.join(',') 2118 this.secondData.questionId = ids.join(',')
2105 this.secondData.updateTime = this.currentTime() 2119 this.secondData.updateTime = this.currentTime()
2106 2120
@@ -2588,13 +2602,13 @@ @@ -2588,13 +2602,13 @@
2588 needGender: '必填', 2602 needGender: '必填',
2589 needOpinion: '必填', 2603 needOpinion: '必填',
2590 } 2604 }
2591 - // this.jiangli={  
2592 - // id:'',  
2593 - // name:'',  
2594 - // styles:''  
2595 - // } 2605 + this.jiangli = {
  2606 + id: '',
  2607 + actName: '',
  2608 + actStyle: ''
  2609 + }
2596 this.xuanzheData = [] 2610 this.xuanzheData = []
2597 - this.radioreward='不设置奖励' 2611 + this.radioreward = '不设置奖励'
2598 const today = new Date(); 2612 const today = new Date();
2599 const startOfToday = new Date(today.getFullYear(), today.getMonth(), today.getDate()); 2613 const startOfToday = new Date(today.getFullYear(), today.getMonth(), today.getDate());
2600 const endOfToday = new Date(today.getFullYear(), today.getMonth(), today.getDate()); 2614 const endOfToday = new Date(today.getFullYear(), today.getMonth(), today.getDate());
@@ -2825,22 +2839,40 @@ @@ -2825,22 +2839,40 @@
2825 if (token && token.startsWith('Bearer')) { 2839 if (token && token.startsWith('Bearer')) {
2826 token = token.substring(7); 2840 token = token.substring(7);
2827 } 2841 }
2828 - token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3RfdXNlcl9pbmZvIjoie1wiYXBwSWRcIjoxLFwiYXJlYUNvZGVzXCI6W10sXCJjb21wYW55QWRtaW5cIjpmYWxzZSxcImNvbXBhbnlDb2RlXCI6XCJKSkxEXzAwMVwiLFwiZGVwdENvZGVcIjpcIjAwMlwiLFwiZGVwdFRhZ1wiOlwiXCIsXCJsb2dpblR5cGVcIjpcIlBDXCIsXCJtYWluRGVwdENvZGVcIjpcIjAwMlwiLFwibWFuYWdlclwiOnRydWUsXCJuYW1lXCI6XCLotoXnuqfnrqHnkIblkZhcIixcInBob25lXCI6XCIxMzU0MTMwNDkxMFwiLFwicm9sZXNcIjpbXCJyb2xlX3N1cGVyX2FkbWluXCIsXCJ2aXAtYWRtaW5cIl0sXCJzdXBlckFkbWluXCI6dHJ1ZSxcInRvcERlcHRDb2RlXCI6XCIwMDJcIixcInVzZXJJZFwiOjEsXCJ1c2VybmFtZVwiOlwic3VwZXItampsZFwifSIsImp0aSI6IjA4ZWVmYzQyLWRmNzktNDc5Zi05MjcwLTdkNGI5OTcwM2I5NSIsImV4cCI6MTc0MDYzOTI1OSwiaWF0IjoxNzQwNjI0ODU5LCJzdWIiOiJDRFdMIiwiaXNzIjoiT0EifQ.t4sL7LQ7pQrVBl1juvV6crqsYZUmrHsINH78YsYpgi4' 2842 + token =
  2843 + 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3RfdXNlcl9pbmZvIjoie1wiYXBwSWRcIjoxLFwiYXJlYUNvZGVzXCI6W10sXCJjb21wYW55QWRtaW5cIjpmYWxzZSxcImNvbXBhbnlDb2RlXCI6XCJKSkxEXzAwMVwiLFwiZGVwdENvZGVcIjpcIjAwMlwiLFwiZGVwdFRhZ1wiOlwiXCIsXCJsb2dpblR5cGVcIjpcIlBDXCIsXCJtYWluRGVwdENvZGVcIjpcIjAwMlwiLFwibWFuYWdlclwiOnRydWUsXCJuYW1lXCI6XCLotoXnuqfnrqHnkIblkZhcIixcInBob25lXCI6XCIxMzU0MTMwNDkxMFwiLFwicm9sZXNcIjpbXCJyb2xlX3N1cGVyX2FkbWluXCIsXCJ2aXAtYWRtaW5cIl0sXCJzdXBlckFkbWluXCI6dHJ1ZSxcInRvcERlcHRDb2RlXCI6XCIwMDJcIixcInVzZXJJZFwiOjEsXCJ1c2VybmFtZVwiOlwic3VwZXItampsZFwifSIsImp0aSI6ImMxMWQ5ZjJjLTc1ZjItNDM5Yy05NjMzLTliYzU4MTc2NmZmYiIsImV4cCI6MTc0MDY2Mjg2NywiaWF0IjoxNzQwNjQ4NDY3LCJzdWIiOiJDRFdMIiwiaXNzIjoiT0EifQ.-2jv7Vq8pqn8PehIpd1lMXJrSqPsmCfhXp7fddL56qI'
2829 this.iframaShow = true 2844 this.iframaShow = true
2830 - if(val == 0){ 2845 + if (val == 0) {
2831 this.iframaUrl = 2846 this.iframaUrl =
2832 `https://jy.scjysm.asia:18086/cdwltool/addEmptyLottery?token=${token}&channel=shangye&thirdPartyUrl=http://localhost:9529/#/investigation/index` 2847 `https://jy.scjysm.asia:18086/cdwltool/addEmptyLottery?token=${token}&channel=shangye&thirdPartyUrl=http://localhost:9529/#/investigation/index`
2833 - }else if(val == 1){ 2848 + } else if (val == 1) {
2834 this.iframaUrl = 2849 this.iframaUrl =
2835 `https://jy.scjysm.asia:18086/cdwltool/addEmptyLottery?token=${token}&id=${this.jiangli.id}&title=活动详情&channel=shangye&thirdPartyUrl=http://localhost:9529/#/investigation/index` 2850 `https://jy.scjysm.asia:18086/cdwltool/addEmptyLottery?token=${token}&id=${this.jiangli.id}&title=活动详情&channel=shangye&thirdPartyUrl=http://localhost:9529/#/investigation/index`
2836 - }else if(val == 2){ 2851 + } else if (val == 2) {
2837 this.iframaUrl = 2852 this.iframaUrl =
2838 `https://jy.scjysm.asia:18086/cdwltool/addEmptyLottery?token=${token}&id=${this.jiangli.id}&channel=shangye&thirdPartyUrl=http://localhost:9529/#/investigation/index` 2853 `https://jy.scjysm.asia:18086/cdwltool/addEmptyLottery?token=${token}&id=${this.jiangli.id}&channel=shangye&thirdPartyUrl=http://localhost:9529/#/investigation/index`
2839 } 2854 }
2840 2855
2841 // window.location.href = 2856 // window.location.href =
2842 }, 2857 },
2843 - 2858 + getStatusText(val) {
  2859 + switch (val) {
  2860 + case '1':
  2861 + return '大转盘';
  2862 + case '2':
  2863 + return '砸金蛋';
  2864 + case '3':
  2865 + return '刮刮卡';
  2866 + case '4':
  2867 + return '翻牌乐';
  2868 + case '5':
  2869 + return '福袋';
  2870 + case '6':
  2871 + return '摇一摇';
  2872 + default:
  2873 + return '无';
  2874 + }
  2875 + }
2844 } 2876 }
2845 2877
2846 } 2878 }
@@ -3214,4 +3246,4 @@ @@ -3214,4 +3246,4 @@
3214 } 3246 }
3215 3247
3216 } 3248 }
3217 -</style> 3249 -</style>
  3250 +</style>
3218 \ No newline at end of file 3251 \ No newline at end of file
yanshouban/src/views/customer/yixiang/index.vue
@@ -348,8 +348,13 @@ @@ -348,8 +348,13 @@
348 匹配记录 348 匹配记录
349 </div> 349 </div>
350 <div style="padding: 0 20px"> 350 <div style="padding: 0 20px">
351 - <div style="">  
352 - <el-form ref="form" :inline="true" :model="pipeiSel" style="padding-top: 10px;" class="formcontainer"> 351 + <div style="
  352 + display: flex;
  353 + justify-content: space-between;
  354 + font-size: 14px;
  355 +
  356 + ">
  357 + <el-form ref="form" :inline="true" :model="pipeiSel" style="padding-top: 10px;" >
353 <el-form-item label="意向资源类型"> 358 <el-form-item label="意向资源类型">
354 <el-select v-model="pipeiSel.resources.cereRentalPolicies.businessType" placeholder="请选择" style="width:168px"> 359 <el-select v-model="pipeiSel.resources.cereRentalPolicies.businessType" placeholder="请选择" style="width:168px">
355 <el-option label="商铺" value="sp" /> 360 <el-option label="商铺" value="sp" />
@@ -1126,11 +1131,7 @@ async getshen(item){ @@ -1126,11 +1131,7 @@ async getshen(item){
1126 </script> 1131 </script>
1127 <style src="@wangeditor/editor/dist/css/style.css"></style> 1132 <style src="@wangeditor/editor/dist/css/style.css"></style>
1128 <style scoped> 1133 <style scoped>
1129 - .formcontainer{  
1130 - display: grid;  
1131 - grid-template-columns: repeat(2, 1fr);  
1132 - grid-gap: 10px; /* 可选,设置列之间的间隙 */  
1133 - } 1134 +
1134 /deep/ .first-column-bg { 1135 /deep/ .first-column-bg {
1135 background-color: #f4f4f5 !important; 1136 background-color: #f4f4f5 !important;
1136 } 1137 }