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 57 export function recordEdit(data) {
58 58 return request({
59 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 202 // msg: ['招商服务系统'],
203 203 msg: ['招商服务系统', '推广策划系统', '在线商城系统', '支付服务模块', '票务'],
204 204 list: [
205   - ['招商资源监测', '商家管理', '商铺租赁服务', '招商方案管理', '招商租赁管理', '广告服务', '轮播图设置', '商户意向管理', '客服服务管理', '系统设置'],
  205 + ['招商资源监测', '商家管理', '商铺租赁服务', '招商方案管理', '招商租赁管理', '广告服务', '轮播图设置', '商户意向管理', '问卷调查','客服服务管理', '系统设置'],
206 206 ['品牌策划', '活动策划', '氛围策划', '媒体推广'],
207 207 ['订单管理', '积分管理', '消息中心', '会员管理', '评论管理', '商品管理', '库存管理', '销售统计', '优惠券管理', '商城商家管理'],
208 208 ['联机交易', '对账处理', '日志管理', '商户服务'],
... ... @@ -775,7 +775,7 @@
775 775 this.index = index
776 776 this.listMune = []
777 777 this.list = [
778   - ['招商资源监测', '商家管理', '商铺租赁服务', '招商方案管理', '招商租赁管理', '广告服务', '轮播图设置', '商户意向管理', '客服服务管理', '系统设置'],
  778 + ['招商资源监测', '商家管理', '商铺租赁服务', '招商方案管理', '招商租赁管理', '广告服务', '轮播图设置', '商户意向管理', '问卷调查','客服服务管理', '系统设置'],
779 779 ['品牌策划', '活动策划', '氛围策划', '媒体推广'],
780 780 ['订单管理', '积分管理', '消息中心', '会员管理', '评论管理', '商品管理', '库存管理', '销售统计', '优惠券管理', '商城商家管理'],
781 781 ['联机交易', '对账处理', '日志管理', '商户服务'],
... ...
admin-web-master/src/views/activity/activityHis.vue
... ... @@ -91,9 +91,9 @@
91 91 </el-table-column>
92 92 <el-table-column label="创建时间" prop="createDate" min-width="15%" >
93 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 97 <el-table-column label="操作" min-width="39%" fixed="right">
98 98 <template slot-scope="scope">
99 99 <div @click="actBian(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">调整</div>
... ... @@ -812,27 +812,13 @@
812 812 <el-dialog title="调整对比" :visible.sync="tiaozhengShow" custom-class='xiang_css' style="padding: 0;" width="80%" center
813 813 :close-on-click-modal="false" :close-on-press-escape="false" @close="reshData">
814 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 815 <div style="display: flex;">
830 816 <div style="width: 50%;">
831 817 <div style="width: 100%;">
832 818 <div style="font-size: 14px;padding: 10px 20px 0px 20px;">修改后</div>
833 819 <div style="padding: 10px 20px;">
834 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 822 style="width: 100%;margin: auto;">
837 823 <el-table-column class-name="first-column-bg" label="方案编号" prop="name" min-width="15%">
838 824 </el-table-column>
... ... @@ -963,7 +949,7 @@
963 949 <div style="width: 100%;">
964 950 <div style="font-size: 14px;padding: 10px 20px 0px 20px;">修改前</div>
965 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 953 <el-descriptions-item>
968 954 <template slot="label">
969 955 方案编号
... ... @@ -1716,10 +1702,14 @@
1716 1702 height:'42px',
1717 1703 },
1718 1704 labelStyleOne:{
1719   - width:'110px',
  1705 + width:'94px',
1720 1706 height:'42px',
1721 1707 color:'#000',
1722 1708 },
  1709 + contentClassNameOne:{
  1710 + width:'219px',
  1711 + // height:'42px',
  1712 + },
1723 1713 lidata:[],
1724 1714 lixiang:{},
1725 1715 duibiList:{},
... ...
admin-web-master/src/views/atmosphere/atmosphereHis.vue
... ... @@ -90,9 +90,9 @@
90 90 </el-table-column>
91 91 <el-table-column label="创建时间" prop="createDate" min-width="15%" >
92 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 96 <el-table-column label="操作" min-width="35%">
97 97 <template slot-scope="scope">
98 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 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 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 64 background-color: #fafafa;
76 65 border: 1px solid #eaeaea;
77 66 height: 42px;
... ... @@ -79,634 +68,732 @@
79 68 padding: 0 20px;
80 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 137 pipData.slice(
139   - (currentPage - 1) * pageSize,
140   - currentPage * pageSize
  138 + (pipcurrentPage - 1) * 10,
  139 + pipcurrentPage * 10
141 140 )
142 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 183 </template>
175 184  
176 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 420 </script>
341 421 <style src="@wangeditor/editor/dist/css/style.css"></style>
342 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 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 769 </style>
683 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 800 \ No newline at end of file
... ...
admin-web-master/src/views/investigation/answerSheet.vue
... ... @@ -3,7 +3,8 @@
3 3 <div class="zhuti">
4 4 <div style="height:58px;line-height:58px;">
5 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 8 </div>
8 9 <!-- 线上 -->
9 10 <div>
... ... @@ -26,143 +27,161 @@
26 27 <el-option label="待审核" value="2" />
27 28 <el-option label="已通过" value="3" />
28 29 <el-option label="不通过" value="4" />
29   - <el-option label="已下架" value="5" />
  30 + <el-option label="已禁用" value="5" />
30 31 </el-select>
31 32 </el-form-item>
32 33 </el-form>
33 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 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 42 </el-button>
39 43 </div>
40 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 69 <el-table-column label="操作" min-width="280">
73 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 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 74 </template>
78 75 </el-table-column>
79 76 </el-table>
80 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 90 </div>
85 91 </div>
86 92  
87 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 104 <div style="padding:20px;">
92 105 <div style="font-size: 14px;padding-bottom: 20px;color: #000;">详情页</div>
93 106 <div>
94 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 110 <el-descriptions-item :span="2">
98 111 <template slot="label">
99 112 问卷标题
100 113 </template>
101   - {{secondData.title}}
  114 + {{ secondData.title }}
102 115 </el-descriptions-item>
103 116 <el-descriptions-item>
104 117 <template slot="label">
105 118 状态
106 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 121 </el-descriptions-item>
109 122  
110 123 <el-descriptions-item>
111 124 <template slot="label">
112 125 开始时间
113 126 </template>
114   - {{secondData.startDate}}
  127 + {{ secondData.startDate }}
115 128 </el-descriptions-item>
116 129 <el-descriptions-item>
117 130 <template slot="label">
118 131 结束时间
119 132 </template>
120   - {{secondData.endDate}}
  133 + {{ secondData.endDate }}
121 134 </el-descriptions-item>
122 135  
123 136 <el-descriptions-item>
124 137 <template slot="label">
125 138 预计填写时长
126 139 </template>
127   - {{secondData.estimatedTime}}
  140 + {{ secondData.estimatedTime }}
128 141 </el-descriptions-item>
129 142 <el-descriptions-item>
130 143 <template slot="label">
131 144 发布端口
132 145 </template>
133   - {{secondData.publishPort}}
  146 + {{ secondData.publishPort }}
134 147 </el-descriptions-item>
135 148 <el-descriptions-item>
136 149 <template slot="label">
137 150 问卷类型
138 151 </template>
139   - {{secondData.questionnaireType}}
  152 + {{ secondData.questionnaireType }}
140 153 </el-descriptions-item>
141 154 <el-descriptions-item>
142 155 <template slot="label">
143 156 填写条件
144 157 </template>
145   - {{secondData.fillingConditions}}
  158 + {{ secondData.fillingConditions }}
146 159 </el-descriptions-item>
147 160 <el-descriptions-item>
148 161 <template slot="label">
149 162 问卷介绍
150 163 </template>
151   - {{secondData.remarks}}
  164 + {{ secondData.remarks }}
152 165 </el-descriptions-item>
153 166  
154 167 </el-descriptions>
155 168 <div style="padding: 20px 0;">问卷封面</div>
  169 +
156 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 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 180 <el-descriptions-item>
162 181 <template slot="label">
163 182 提交问卷后
164 183 </template>
165   - {{secondData.rewardForParticipation}}
  184 + {{ secondData.rewardForParticipation }}
166 185 </el-descriptions-item>
167 186 <el-descriptions-item>
168 187 <template slot="label">
... ... @@ -172,24 +191,21 @@
172 191 </el-descriptions-item>
173 192 </el-descriptions>
174 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 198 <el-table-column label="序号" min-width="100">
178 199 <template slot-scope="scope">
179   - {{scope.$index +1}}
  200 + {{ scope.$index +1 }}
180 201 </template>
181 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 206 <el-table-column label="选项" min-width="120">
191 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 209 {{ index +1 }}:{{ value.answer }}
194 210 </div>
195 211 <div v-else>
... ... @@ -201,84 +217,103 @@
201 217  
202 218 </el-table>
203 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 221 <el-descriptions-item>
206 222 <template slot="label">
207 223 创建人
208 224 </template>
209   - {{secondData.createUser}}
  225 + {{ secondData.createUser }}
210 226 </el-descriptions-item>
211 227 <el-descriptions-item>
212 228 <template slot="label">
213 229 创建时间
214 230 </template>
215   - {{secondData.createTime}}
  231 + {{ secondData.createTime }}
216 232 </el-descriptions-item>
217 233 <el-descriptions-item>
218 234 <template slot="label">
219 235 更新时间
220 236 </template>
221   -{{secondData.updateTime}}
  237 + {{ secondData.updateTime }}
222 238 </el-descriptions-item>
223 239 </el-descriptions>
224 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 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 263 </div>
245 264 </div>
246 265  
247 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 317 center :close-on-click-modal="false" :show-close="false" :close-on-press-escape="false">
283 318 <div style="padding:10px 20px;">
284 319 <div style="display: flex;justify-content: space-between;border-bottom: 1px solid #E5E5E5;padding: 0 0 10px 0;">
... ... @@ -468,7 +503,6 @@
468 503 </div>
469 504 </div>
470 505  
471   -
472 506 </div>
473 507 <div style="display:flex;justify-content: flex-end;padding:20px;">
474 508 <el-button @click="MsgSp=false"
... ... @@ -660,210 +694,202 @@
660 694 </el-dialog> -->
661 695 </div>
662 696  
663   -
664 697 </template>
665 698  
666 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 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 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 893 // if(this.liuYe == 1){
868 894 // TerminaEdit({id:this.secondData.id,reviewStatus:'3'}).then(res=>{
869 895 // this.getAll()
... ... @@ -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 912 </script>
888 913  
889 914 <style scoped>
... ... @@ -1002,7 +1027,6 @@ quxiao(){
1002 1027 font-size: 16px;
1003 1028 }
1004 1029  
1005   -
1006 1030 ::v-deep .el-dialog__wrapper {
1007 1031 .el-dialog__header {
1008 1032 background-color: #FAFAFA;
... ... @@ -1311,7 +1335,6 @@ quxiao(){
1311 1335 }
1312 1336 }
1313 1337  
1314   -
1315 1338 }
1316 1339 }
1317 1340 </style>
... ...
admin-web-master/src/views/investigation/index.vue
Changes suppressed. Click to show
1 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 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 103 <el-pagination :hide-on-single-page='flag' background small size="mini" :current-page="currentPageList"
98 104 :page-sizes="[10, 20, 50, 100]" layout="prev, pager, next,total" :total="total "
99 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 348 <template slot="label">
324 349 问卷介绍
325 350 </template>
326 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 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 667 <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
612 668 @click="closeFn(1)">返回</el-button>
613 669 <el-button @click="addCheck(2)" style="background-color: #3F9B6A;color: #fff">确认</el-button>
614 670  
615 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 692 <el-option label="物业满意度" value="物业满意度" />
637 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 834 <el-option label="必填" value="必填" />
761 835 <el-option label="非必填" value="非必填" />
762 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 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 1334 <div style="display:flex;padding:10px 0;justify-content: space-between;">
1221 1335 <div style="display:flex;">
1222 1336  
... ... @@ -1226,44 +1340,59 @@
1226 1340 {{secondData.createTime}}
1227 1341 </div>
1228 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 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 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 1396 <p class="question-title"><span v-if="item.isRequired.includes('必填')"
1268 1397 style="color: red;">*</span>{{index + 1}}.<span style="">({{item.questionType}})</span>
1269 1398 {{item.tikuTitle}}
... ... @@ -1286,1604 +1415,1835 @@
1286 1415 </div>
1287 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 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 1469 </template>
1330 1470  
1331 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 2879 </script>
2552 2880  
2553 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 3129 </style>
2796 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 3250 \ No newline at end of file
... ...
admin-web-master/src/views/investigation/question.vue
1 1 <template>
2   - <div style="background-color:#f7f7f7;padding:10px 10px;">
  2 + <div style="background-color: #f7f7f7; padding: 10px 10px">
3 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 9 </div>
8 10 <!-- 线上 -->
9 11 <div>
10 12 <!-- 搜索 -->
11 13  
12 14 <div class="formSearch">
13   -
14 15 <el-form :inline="true" :model="formSel">
15 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 23 </el-form-item>
22 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 26 </el-form-item>
25 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 29 <el-option label="单选" value="单选" />
28 30 <el-option label="多选" value="多选" />
29 31 <el-option label="文本" value="文本" />
30 32 </el-select>
31 33 </el-form-item>
32   -
33 34 </el-form>
34 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 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 43 </el-button>
40 44 </div>
41 45 </div>
42   - <div style="margin-bottom: 20px;">
  46 + <div style="margin-bottom: 20px">
43 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 50 </div>
48 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 64 <el-table-column label="序号" min-width="150">
55 65 <template slot-scope="scope">
56   - {{scope.$index +1}}
  66 + {{ scope.$index + 1 }}
57 67 </template>
58 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 73 <!-- <el-table-column label="创建人" prop="createUser" min-width="150">
67 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 76 <el-table-column label="操作" min-width="200">
72 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 82 <!-- <div @click="" class="tableBtn greens">发布</div>
76 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 87 <!-- <div @click="addbuss(3,scope.row)" class="tableBtn greens">终止</div> -->
79 88 </template>
80 89 </el-table-column>
81 90 </el-table>
82 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 94 @size-change="handleSizeChange" @current-change="handleCurrentChange" />
86 95 </div>
87 96 </div>
88   -
89 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 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 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 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 145 </div>
138 146 </div>
139   -
140 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 187 <el-option label="必填" value="必填" />
169 188 <el-option label="非必填" value="非必填" />
170 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 247 </div>
217 248 </div>
218   -
219 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 288 <el-option label="必填" value="必填" />
247 289 <el-option label="非必填" value="非必填" />
248 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 351 </div>
291 352 </div>
292 353 </el-dialog>
293 354 </div>
294   -
295   -
296 355 </template>
297 356  
298 357 <script>
299 358 import {
300 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 369 export default {
311 370 components: {
312   - upimg
  371 + upimg,
313 372 },
314 373 data() {
315 374 return {
316   - detbox: false, //详情
  375 + detbox: false, // 详情
317 376 currentPage: 1,
318 377 total: 10,
319 378 flag: false,
320 379 pageSize: 10,
321 380 ggXin: false,
322 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 391 secondData: {},
333 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 399 pageindex: {
341 400 pageNumber: 0,
342 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 442 mounted() {
374   - this.getAll()
375   - },
376   - computed: {
377   -
  443 + this.getAll();
378 444 },
379 445 methods: {
380 446 chenge(val) {
381 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 574 currentTime() {
507   - let date = new Date();
508   - let year = date.getFullYear();
  575 + const date = new Date();
  576 + const year = date.getFullYear();
509 577 let month = date.getMonth() + 1; // 月份从0~11,所以加一
510 578 let day = date.getDate();
511 579 let hours = date.getHours();
... ... @@ -513,147 +581,155 @@ rules:{
513 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 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 603 addbuss(val, item) {
536   - this.detbox = false
537   - this.ggXin = true
  604 + this.detbox = false;
  605 + this.ggXin = true;
538 606 },
539 607 handleSizeChange(val) {
540   - this.pageSize = val
  608 + this.pageSize = val;
541 609 },
542 610 handleCurrentChange(val) {
543 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 618 closeFn(val) {
553 619 if (val == 1) {
554   - this.ggXin = false
  620 + this.ggXin = false;
555 621 } else {
556   - this.bainjiBox = false
  622 + this.bainjiBox = false;
557 623 }
558 624 },
559 625  
560 626 // 查询按钮
561 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 633 resetting() {
569 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 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 729 // this.$refs.reform.resetFields()
653   - this.ggXin = true
  730 + this.ggXin = true;
654 731 },
655   - validateScore(row) {
656   -
  732 + validateScore(row) {
657 733 // 如果输入的不是数字或者是NaN,则重置为1
658 734 if (isNaN(row.num) || row.num < 0) {
659 735 row.num = 0;
... ... @@ -663,22 +739,35 @@ this.pageindex.pageNumber = 0
663 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 758 </script>
669 759  
670 760 <style scoped>
671 761 .zhuti {
672 762 padding: 0 20px 20px 20px;
673 763 min-height: calc(100vh - 50px - 20px);
674   - background-color: #Fff;
675   -
  764 + background-color: #fff;
676 765 }
677 766  
678 767 .chengeXia {
679   - border-bottom: 6px solid #3F9B6A;
  768 + border-bottom: 6px solid #3f9b6a;
680 769 padding-bottom: 4px;
681   - color: #3F9B6A;
  770 + color: #3f9b6a;
682 771 }
683 772  
684 773 /deep/ .el-form-item__content {
... ... @@ -688,8 +777,8 @@ this.pageindex.pageNumber = 0
688 777 .tableBtn {
689 778 display: inline-block;
690 779 margin-right: 10px;
691   - color: #ACACAC;
692   - cursor:pointer;
  780 + color: #acacac;
  781 + cursor: pointer;
693 782 }
694 783  
695 784 .formSearch {
... ... @@ -700,7 +789,7 @@ this.pageindex.pageNumber = 0
700 789 }
701 790  
702 791 .greens {
703   - color: #3F9B6A;
  792 + color: #3f9b6a;
704 793 }
705 794  
706 795 /deep/ .el-table__row {
... ... @@ -716,7 +805,7 @@ this.pageindex.pageNumber = 0
716 805 }
717 806  
718 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 811 .el-row {
... ... @@ -778,20 +867,19 @@ this.pageindex.pageNumber = 0
778 867  
779 868 .device-form .el-form-item__label::after {
780 869 content: "*";
781   - color: #1A1A1A;
  870 + color: #1a1a1a;
782 871 margin-left: 5px;
783 872 font-size: 16px;
784 873 }
785 874  
786   -
787 875 ::v-deep .el-dialog__wrapper {
788 876 .el-dialog__header {
789   - background-color: #FAFAFA;
  877 + background-color: #fafafa;
790 878 }
791 879 }
792 880  
793 881 ::v-deep .el-input__inner:focus {
794   - border: #3F9B6A 1px solid;
  882 + border: #3f9b6a 1px solid;
795 883 }
796 884  
797 885 .dialog-footer {
... ... @@ -802,27 +890,26 @@ this.pageindex.pageNumber = 0
802 890 }
803 891  
804 892 ::v-deep .el-input__inner:focus {
805   - border: #3F9B6A 1px solid;
  893 + border: #3f9b6a 1px solid;
806 894 }
807 895  
808 896 ::v-deep .el-input__inner:hover {
809   - border: #3F9B6A 1px solid;
  897 + border: #3f9b6a 1px solid;
810 898 }
811 899  
812 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 904 .el-select-dropdown__item.selected {
817   - color: #3F9B6A;
  905 + color: #3f9b6a;
818 906 }
819 907  
820 908 .el-pagination__sizes .el-input .el-input__inner:hover {
821   - border-color: #3F9B6A;
  909 + border-color: #3f9b6a;
822 910 }
823 911  
824 912 ::v-deep .el-dialog__wrapper {
825   -
826 913 .dialog_css {
827 914 margin-right: 12px;
828 915 margin-top: 61px !important;
... ... @@ -838,7 +925,6 @@ this.pageindex.pageNumber = 0
838 925 margin-left: 25%;
839 926 margin-top: 61px !important;
840 927 }
841   -
842 928 }
843 929  
844 930 ::v-deep .diaslog_zhong {
... ... @@ -847,7 +933,7 @@ this.pageindex.pageNumber = 0
847 933  
848 934 .el-dialog__header {
849 935 background-color: #fff;
850   - border-bottom: 1px solid #EFEFEF;
  936 + border-bottom: 1px solid #efefef;
851 937  
852 938 .el-dialog__title {
853 939 font-size: 14px;
... ... @@ -856,17 +942,17 @@ this.pageindex.pageNumber = 0
856 942 }
857 943  
858 944 .el-dialog__body {
859   - padding: 10px 30px 30px 20px
  945 + padding: 10px 30px 30px 20px;
860 946 }
861 947 }
862 948  
863 949 /deep/ .el-table_1_column_8 .hetong {
864   - color: #7DBB9A;
  950 + color: #7dbb9a;
865 951 text-decoration: underline;
866 952 }
867 953  
868 954 /deep/ .first-column-bg {
869   - background-color: #FAFAFA !important;
  955 + background-color: #fafafa !important;
870 956 }
871 957  
872 958 ::v-deep .textarea {
... ... @@ -895,14 +981,20 @@ this.pageindex.pageNumber = 0
895 981 }
896 982  
897 983 .el-icon-arrow-up:before {
898   - content: ''
  984 + content: "";
899 985 }
900   -
901 986 }
902 987  
903 988 /deep/ .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
904 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 998 </style>
907 999 <style lang="scss" scoped>
908 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 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 7 const LIULIANG = 'https://jy.scjysm.asia:18086/liuliang'
8 8 // const host = `${window.location.protocol}//${window.location.host}`
9 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 59 {
60 60 id:3,
61 61 label:'分销中心',
62   - icon:'https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/img//user/fenxiao.png',
  62 + icon:'../../../static/images/fxzx.png',
63 63 jumpUrl:'../../../pages_category_page1/distributionModule/index'
64 64 },
65 65 {
... ... @@ -83,7 +83,7 @@ export const fastCardOneList = [
83 83 {
84 84 id:7,
85 85 label:'常见问题',
86   - icon:'https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/img//user/kaquan.png',
  86 + icon:'../../../static/images/cjwt.png',
87 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 1000 \ No newline at end of file
... ...
ceres-uniapp-master/pages_category_page1/question/question.vue
... ... @@ -697,12 +697,12 @@
697 697 // console.log(result)
698 698 // console.log(JSON.stringify(result))
699 699 // console.log(tijiaoObj)
700   - // console.log(JSON.stringify(tijiaoObj))
  700 + // console.log(this.wenjuan)
701 701 // return
702 702  
703 703 NET.request(API.wenjuanUp, tijiaoObj, 'post').then(res => {
704 704 // this.show =true
705   -
  705 +
706 706 if (res.data == 'false') {
707 707 uni.reLaunch({
708 708 url: `/pages_category_page1/question/succe?chonfu=true`
... ... @@ -711,6 +711,11 @@
711 711 uni.reLaunch({
712 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 1 <template>
2 2 <view class="page">
3 3 <!-- 搜索 -->
4   -<!-- <view class="head-search">
  4 + <!-- <view class="head-search">
5 5 <u-search bg-color="#fff" placeholder="请输入" v-model="query.shopName" :show-action="false" @search="search" @clear="clearGet"></u-search>
6 6 <u-button type="success" @click="search" style="height:32px;">搜索</u-button>
7 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 14 </view>
11 15 <view class="screen-list">
12 16 <view class="list" @click="show = true">
13 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 21 </view>
17   - <!-- <view class="list" @click="setList(1)">
  22 + <!-- <view class="list" @click="setList(1)">
18 23 <text>租金</text>
19 24 <image :src="$imgUrl('/down.png')"></image>
20 25 </view>
... ... @@ -33,7 +38,8 @@
33 38 <view class="goods-list">
34 39 <view class="list" v-for="(item,index) in tableData" :key="index" @click="reconciliationdetail(item)">
35 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 43 <!-- <image :src="item.displayMainImage" mode=""></image> -->
38 44 </view>
39 45 <view class="item">
... ... @@ -45,78 +51,81 @@
45 51 <text>标签标签</text> -->
46 52 </view>
47 53 <view class="introduce">
48   - <image :src="$imgUrl('/kefu.png')"></image>
  54 + <image :src="$imgUrl('/kefu.png')"></image>
49 55 <text class="one-omit">{{item.detailedLocation}}</text>
50 56 </view>
51 57 <view class="like-goods">
52 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 64 <text class="min">¥</text>
59 65 <text class="max">{{item.id * 10}}</text>
60 66 <text class="min">/月</text>
61 67 <text class="line"></text> -->
62 68 <text>面积:</text>
63 69 <text class="max">{{item.actualUsableArea}}</text>
64   - <text class="min" >/m²</text>
  70 + <text class="min">/m²</text>
65 71 </view>
66 72 </view>
67 73 </view>
68 74 </view>
69 75 </view>
70 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 79 <view class="zulinY">
73 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 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 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 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 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 125 </view>
117 126 </view>
118 127 <u-select v-model="showList" :list="companys" @confirm="handleCompanyConfirm" mini borderless></u-select>
119   -
  128 +
120 129 </u-popup>
121 130  
122 131 </view>
... ... @@ -127,53 +136,71 @@
127 136 data() {
128 137 return {
129 138 query: {
130   - shopName:'',
  139 + shopName: '',
131 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 147 pageindex: {
139 148 pageNumber: 0,
140 149 pageSize: 10,
141   - publishStatus:2,
142   - minPrice:0,
143   - maxPrice:1000000
  150 + publishStatus: 2,
  151 + minPrice: 0,
  152 + maxPrice: 1000000
144 153 },
145 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 190 zidongS: false,
159 191 formList: {
160   - zulei: '',
161 192 belongingRegion: '',
162   - zuqi:'',
163 193 zujin: '',
164   - mianji:'',
165   - name:'',
166   - phone:'',
167   - zhouqi:'',
  194 + actualUsableArea: '',
  195 + leaseTerm: '',
168 196 pageNumber: 0,
169 197 pageSize: 10,
170   - publishStatus:2
  198 + publishStatus: 2
171 199 },
172 200 showSex: false,
173   - show:false,
174   - index:1,
175   - companys: [
176   - {
  201 + show: false,
  202 + index: 1,
  203 + companys: [{
177 204 value: '1',
178 205 label: '商铺'
179 206 },
... ... @@ -186,9 +213,9 @@
186 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 221 filters: {
... ... @@ -215,10 +242,10 @@
215 242 },
216 243 // 查询
217 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 250 queryChange(key, val) {
224 251 this.query[`${key}`] = val[0].value;
... ... @@ -230,223 +257,250 @@
230 257 url: `/pages/details/details?item=${items}`
231 258 })
232 259 },
233   -
234   -
  260 +
  261 +
235 262 // 自动匹配
236 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 429 pageNumber: 0,
444 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 506 </script>
... ...
wenjuan-h5/pages_category_page1/question/question.vue
... ... @@ -697,14 +697,12 @@
697 697 // console.log(result)
698 698 // console.log(JSON.stringify(result))
699 699 // console.log(tijiaoObj)
700   - // console.log(JSON.stringify(tijiaoObj))
  700 + // console.log(this.wenjuan)
701 701 // return
702 702  
703 703 NET.request(API.wenjuanUp, tijiaoObj, 'post').then(res => {
704 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 706 if (res.data == 'false') {
709 707 uni.reLaunch({
710 708 url: `/pages_category_page1/question/succe?chonfu=true`
... ... @@ -713,6 +711,11 @@
713 711 uni.reLaunch({
714 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 189 <div style="text-align: center;">
190 190 <div style="margin-bottom:10px;">平均答题时长</div>
191 191 <div style="font-size:16px;">
192   - {{ secondsToMinutesAndSeconds(tongjiTu.averageDuration) }}</div>
  192 + {{ secondsToMinutesAndSeconds(tongjiTu.averageDuration) }}
  193 + </div>
193 194 </div>
194 195 </div>
195 196 <div style="margin: 20px 0;font-size: 18px;">题目统计</div>
... ... @@ -365,6 +366,7 @@
365 366 <template slot="label">
366 367 提交问卷后
367 368 </template>
  369 +
368 370 {{ secondData.rewardForParticipation!=''?'转盘抽奖':'不设置奖励'}}
369 371 </el-descriptions-item>
370 372 <el-descriptions-item>
... ... @@ -372,8 +374,9 @@
372 374 奖励
373 375 </template>
374 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 380 </div>
378 381 </el-descriptions-item>
379 382 </el-descriptions>
... ... @@ -569,8 +572,7 @@
569 572 </div>
570 573 <el-form ref="form" :model="formInline" label-width="140px"
571 574 style="padding:20px;">
572   - <el-radio-group v-model="radioreward"
573   - @change="radioClick">
  575 + <el-radio-group v-model="radioreward" @change="radioClick">
574 576 <el-radio label="不设置奖励" value="不设置奖励">不设置奖励</el-radio>
575 577 <!-- <el-radio label="奖励积分" value="奖励积分">奖励积分</el-radio> -->
576 578 <el-radio label="转盘抽奖" value="转盘抽奖">转盘抽奖</el-radio>
... ... @@ -583,16 +585,16 @@
583 585 奖励 <el-input v-model="jifen" style="width:50px;" />积分
584 586 </div>
585 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 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 598 @click="actGo(0)">创建活动</el-button>
597 599 </div>
598 600 </div>
... ... @@ -996,23 +998,22 @@
996 998 <div>参与答卷奖励</div>
997 999 </div>
998 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 1002 <el-radio label="不设置奖励" value="不设置奖励">不设置奖励</el-radio>
1002 1003 <!-- <el-radio label="奖励积分" value="奖励积分">奖励积分</el-radio> -->
1003 1004 <el-radio label="转盘抽奖" value="转盘抽奖">转盘抽奖</el-radio>
1004 1005 <!-- <el-radio label="优惠券" value="优惠券">优惠券</el-radio> -->
1005 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 1014 </div>
1013 1015 <div v-else>
1014   - <el-button
1015   - style="color: #fff;background-color: #3F9B6A;"
  1016 + <el-button style="color: #fff;background-color: #3F9B6A;"
1016 1017 @click="actGo(0)">创建活动</el-button>
1017 1018 </div>
1018 1019  
... ... @@ -1365,7 +1366,8 @@
1365 1366 <div v-if="item.type == '单选' && item.layoutType == 2"
1366 1367 style="display: flex;width: 100%;flex-wrap: wrap;">
1367 1368 <div class="answerItem" v-for="(val, idx) in item.options" :key="idx">
1368   - {{ val.answer }}</div>
  1369 + {{ val.answer }}
  1370 + </div>
1369 1371 </div>
1370 1372 <el-checkbox-group v-for="(val, idx) in item.options"
1371 1373 v-if="item.type == '多选' && item.layoutType != 2" :key="idx"
... ... @@ -1381,7 +1383,8 @@
1381 1383 <div v-if="item.type == '多选' && item.layoutType == 2"
1382 1384 style="display: flex;width: 100%;flex-wrap: wrap;">
1383 1385 <div class="answerItem" v-for="(val, idx) in item.options" :key="idx">
1384   - {{ val.answer }}</div>
  1386 + {{ val.answer }}
  1387 + </div>
1385 1388 </div>
1386 1389 <div v-if="item.type == '文本'">
1387 1390 <el-input v-model="model1.name" placeholder="请输入" disabled style="width:80%" />
... ... @@ -1452,8 +1455,8 @@
1452 1455 </div>
1453 1456 </div>
1454 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 1460 <div style="padding:20px;">
1458 1461 <iframe :src="iframaUrl" ref="iframe" frameborder="0" width="100%" height="700px" />
1459 1462 <div style="padding-top:20px;display:flex;justify-content: flex-end;">
... ... @@ -1732,15 +1735,16 @@
1732 1735 shujuloading: false,
1733 1736 iframaUrl: '',
1734 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 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 1750 computed: {
... ... @@ -1749,24 +1753,25 @@
1749 1753 created() {
1750 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 1775 methods: {
1771 1776 input(e, e1) {
1772 1777 // this.formInline[e1] = e
... ... @@ -1810,14 +1815,16 @@
1810 1815 return false;
1811 1816 }
1812 1817 if (this.radioreward == '转盘抽奖') {
1813   - if (this.jiangli.id && this.jiangli.id== '') {
  1818 + if (this.jiangli.id && this.jiangli.id == '') {
1814 1819 this.$message({
1815 1820 message: '请创建转盘活动',
1816 1821 })
1817 1822 return false;
1818 1823 }
1819   - }else{
  1824 + } else {
1820 1825 this.jiangli.id = ''
  1826 + this.jiangli.actName = ''
  1827 + this.jiangli.actStyle = ''
1821 1828 }
1822 1829 let ids = null
1823 1830 if (this.wenConstData.length != 0) {
... ... @@ -1830,6 +1837,8 @@
1830 1837 return false;
1831 1838 }
1832 1839 this.formInline.rewardForParticipation = this.jiangli.id
  1840 + this.formInline.actStyle = this.jiangli.actStyle
  1841 + this.formInline.actName = this.jiangli.actName
1833 1842 this.formInline.createTime = this.currentTime()
1834 1843 TerminaAdd(this.formInline).then(res => {
1835 1844 if (res.data.code == '500') {
... ... @@ -1896,7 +1905,7 @@
1896 1905 item.question = JSON.parse(item.question)
1897 1906 }
1898 1907 const array = this.objectToArray(item.question)
1899   - this.jiangli.id = item.rewardForParticipation
  1908 + this.jiangli.id = item.rewardForParticipation
1900 1909 this.wenData = array
1901 1910 // this.secondData.cereQuestionManagements.map((res, index) => {
1902 1911 // if (typeof res.optionSettings == 'string') {
... ... @@ -2062,12 +2071,13 @@
2062 2071 if (typeof item.question === 'string') {
2063 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 2081 this.secondDataTi = item.cereQuestionManagements
2072 2082 this.bainjiBox = true
2073 2083  
... ... @@ -2091,16 +2101,20 @@
2091 2101 ids = this.secondDataTi.map(item => item.id);
2092 2102 }
2093 2103 if (this.radioreward == '转盘抽奖') {
2094   - if (this.jiangli.id &&this.jiangli.id== '') {
  2104 + if (this.jiangli.id && this.jiangli.id == '') {
2095 2105 this.$message({
2096 2106 message: '请创建转盘活动',
2097 2107 })
2098 2108 return false;
2099 2109 }
2100   - }else{
  2110 + } else {
2101 2111 this.jiangli.id = ''
  2112 + this.jiangli.actStyle = ''
  2113 + this.jiangli.actName = ''
2102 2114 }
2103 2115 this.secondData.rewardForParticipation = this.jiangli.id
  2116 + this.secondData.actStyle = this.jiangli.actStyle
  2117 + this.secondData.actName = this.jiangli.actName
2104 2118 this.secondData.questionId = ids.join(',')
2105 2119 this.secondData.updateTime = this.currentTime()
2106 2120  
... ... @@ -2588,13 +2602,13 @@
2588 2602 needGender: '必填',
2589 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 2610 this.xuanzheData = []
2597   - this.radioreward='不设置奖励'
  2611 + this.radioreward = '不设置奖励'
2598 2612 const today = new Date();
2599 2613 const startOfToday = new Date(today.getFullYear(), today.getMonth(), today.getDate());
2600 2614 const endOfToday = new Date(today.getFullYear(), today.getMonth(), today.getDate());
... ... @@ -2825,22 +2839,40 @@
2825 2839 if (token && token.startsWith('Bearer')) {
2826 2840 token = token.substring(7);
2827 2841 }
2828   - token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3RfdXNlcl9pbmZvIjoie1wiYXBwSWRcIjoxLFwiYXJlYUNvZGVzXCI6W10sXCJjb21wYW55QWRtaW5cIjpmYWxzZSxcImNvbXBhbnlDb2RlXCI6XCJKSkxEXzAwMVwiLFwiZGVwdENvZGVcIjpcIjAwMlwiLFwiZGVwdFRhZ1wiOlwiXCIsXCJsb2dpblR5cGVcIjpcIlBDXCIsXCJtYWluRGVwdENvZGVcIjpcIjAwMlwiLFwibWFuYWdlclwiOnRydWUsXCJuYW1lXCI6XCLotoXnuqfnrqHnkIblkZhcIixcInBob25lXCI6XCIxMzU0MTMwNDkxMFwiLFwicm9sZXNcIjpbXCJyb2xlX3N1cGVyX2FkbWluXCIsXCJ2aXAtYWRtaW5cIl0sXCJzdXBlckFkbWluXCI6dHJ1ZSxcInRvcERlcHRDb2RlXCI6XCIwMDJcIixcInVzZXJJZFwiOjEsXCJ1c2VybmFtZVwiOlwic3VwZXItampsZFwifSIsImp0aSI6IjA4ZWVmYzQyLWRmNzktNDc5Zi05MjcwLTdkNGI5OTcwM2I5NSIsImV4cCI6MTc0MDYzOTI1OSwiaWF0IjoxNzQwNjI0ODU5LCJzdWIiOiJDRFdMIiwiaXNzIjoiT0EifQ.t4sL7LQ7pQrVBl1juvV6crqsYZUmrHsINH78YsYpgi4'
  2842 + token =
  2843 + 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3RfdXNlcl9pbmZvIjoie1wiYXBwSWRcIjoxLFwiYXJlYUNvZGVzXCI6W10sXCJjb21wYW55QWRtaW5cIjpmYWxzZSxcImNvbXBhbnlDb2RlXCI6XCJKSkxEXzAwMVwiLFwiZGVwdENvZGVcIjpcIjAwMlwiLFwiZGVwdFRhZ1wiOlwiXCIsXCJsb2dpblR5cGVcIjpcIlBDXCIsXCJtYWluRGVwdENvZGVcIjpcIjAwMlwiLFwibWFuYWdlclwiOnRydWUsXCJuYW1lXCI6XCLotoXnuqfnrqHnkIblkZhcIixcInBob25lXCI6XCIxMzU0MTMwNDkxMFwiLFwicm9sZXNcIjpbXCJyb2xlX3N1cGVyX2FkbWluXCIsXCJ2aXAtYWRtaW5cIl0sXCJzdXBlckFkbWluXCI6dHJ1ZSxcInRvcERlcHRDb2RlXCI6XCIwMDJcIixcInVzZXJJZFwiOjEsXCJ1c2VybmFtZVwiOlwic3VwZXItampsZFwifSIsImp0aSI6ImMxMWQ5ZjJjLTc1ZjItNDM5Yy05NjMzLTliYzU4MTc2NmZmYiIsImV4cCI6MTc0MDY2Mjg2NywiaWF0IjoxNzQwNjQ4NDY3LCJzdWIiOiJDRFdMIiwiaXNzIjoiT0EifQ.-2jv7Vq8pqn8PehIpd1lMXJrSqPsmCfhXp7fddL56qI'
2829 2844 this.iframaShow = true
2830   - if(val == 0){
  2845 + if (val == 0) {
2831 2846 this.iframaUrl =
2832 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 2849 this.iframaUrl =
2835 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 2852 this.iframaUrl =
2838 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 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 3246 }
3215 3247  
3216 3248 }
3217 3249 -</style>
  3250 +</style>
3218 3251 \ No newline at end of file
... ...
yanshouban/src/views/customer/yixiang/index.vue
... ... @@ -348,8 +348,13 @@
348 348 匹配记录
349 349 </div>
350 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 358 <el-form-item label="意向资源类型">
354 359 <el-select v-model="pipeiSel.resources.cereRentalPolicies.businessType" placeholder="请选择" style="width:168px">
355 360 <el-option label="商铺" value="sp" />
... ... @@ -1126,11 +1131,7 @@ async getshen(item){
1126 1131 </script>
1127 1132 <style src="@wangeditor/editor/dist/css/style.css"></style>
1128 1133 <style scoped>
1129   - .formcontainer{
1130   - display: grid;
1131   - grid-template-columns: repeat(2, 1fr);
1132   - grid-gap: 10px; /* 可选,设置列之间的间隙 */
1133   - }
  1134 +
1134 1135 /deep/ .first-column-bg {
1135 1136 background-color: #f4f4f5 !important;
1136 1137 }
... ...