config.vue 58 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262
  1. <template>
  2. <div class="app-container">
  3. <el-tabs v-model="activeName" @tab-click="handleClick" >
  4. <el-tab-pane label="商城配置" name="store.config">
  5. <el-form ref="form1" :model="form1" :rules="rules1" label-width="180px">
  6. <el-form-item label="搜索关键字" prop="hotSearch">
  7. <el-input v-model="form1.hotSearch" label="请输入搜索关键字,多个用,号分隔"></el-input>
  8. </el-form-item>
  9. <el-form-item label="资质证明" prop="certs">
  10. <Material v-model="photoArr" type="image" :num="10" :width="150" :height="150" />
  11. </el-form-item>
  12. <el-form-item label="货到付款支付比例" prop="payRate">
  13. <el-tooltip class="item" effect="dark" content="货到付款支付比例(%)" placement="top-end">
  14. <el-input-number v-model="form1.payRate" ></el-input-number>
  15. </el-tooltip>
  16. </el-form-item>
  17. <el-form-item label="默认自定义金额" prop="payAmount">
  18. <el-tooltip class="item" effect="dark" content="货到付款默认自定义金额(元)" placement="top-end">
  19. <el-input-number v-model="form1.payAmount" :min="10" ></el-input-number>
  20. </el-tooltip>
  21. </el-form-item>
  22. <el-form-item label="待支付订单取消时间" prop="unPayTime">
  23. <el-tooltip class="item" effect="dark" content="待支付订单取消时间(分钟)" placement="top-end">
  24. <el-input-number v-model="form1.unPayTime" :min="1" ></el-input-number>
  25. </el-tooltip>
  26. </el-form-item>
  27. <el-form-item label="公司推广佣金比例" prop="tuiMoneyRate">
  28. <el-tooltip class="item" effect="dark" content="公司推广佣金比例(%)" placement="top-end">
  29. <el-input-number v-model="form1.tuiMoneyRate" :min="1" :max="100" ></el-input-number>
  30. </el-tooltip>
  31. </el-form-item>
  32. <el-form-item label="服务费" prop="serviceFee">
  33. <el-tooltip class="item" effect="dark" content="服务费(元)" placement="top-end">
  34. <el-input-number v-model="form1.serviceFee" :min="0" ></el-input-number>
  35. </el-tooltip>
  36. </el-form-item>
  37. <el-form-item label="成本售价比例" prop="salesPriceRate">
  38. <el-tooltip class="item" effect="dark" content="成本售价比例(%)" placement="top-end">
  39. <el-input-number v-model="form1.salesPriceRate" :min="1" :max="300" ></el-input-number>
  40. </el-tooltip>
  41. </el-form-item>
  42. <el-form-item label="公司制单金额最低比例" prop="createMoneyRate">
  43. <el-tooltip class="item" effect="dark" content="公司制单金额最低比例(%)" placement="top-end">
  44. <el-input-number v-model="form1.createMoneyRate" :min="1" :max="100" ></el-input-number>
  45. </el-tooltip>
  46. </el-form-item>
  47. <el-form-item label="申请售后有效天数" prop="storeAfterSalesDay">
  48. <el-tooltip class="item" effect="dark" content="确认收货后申请售后天数" placement="top-end">
  49. <el-input-number v-model="form1.storeAfterSalesDay" :min="0" :max="100" ></el-input-number>
  50. </el-tooltip>
  51. </el-form-item>
  52. <el-form-item label="退货收货人" prop="refundConsignee">
  53. <el-tooltip class="item" effect="dark" content="退货收货人" placement="top-end">
  54. <el-input style="width:200px" v-model="form1.refundConsignee" ></el-input>
  55. </el-tooltip>
  56. </el-form-item>
  57. <el-form-item label="退货手机号" prop="refundPhoneNumber">
  58. <el-tooltip class="item" effect="dark" content="退货手机号" placement="top-end">
  59. <el-input style="width:200px" v-model="form1.refundPhoneNumber" ></el-input>
  60. </el-tooltip>
  61. </el-form-item>
  62. <el-form-item label="退货地址" prop="refundAddress">
  63. <el-tooltip class="item" effect="dark" content="退货地址" placement="top-end">
  64. <el-input v-model="form1.refundAddress" ></el-input>
  65. </el-tooltip>
  66. </el-form-item>
  67. <el-form-item label="会员海报图片" prop="userPosterImage">
  68. <ImageUpload v-model="form1.userPosterImage" type="image" :num="10" :width="150" :height="150" :limit="1"/>
  69. </el-form-item>
  70. <el-form-item label="订单审核" prop="auditSwitch">
  71. <el-tooltip class="item" effect="dark" content="订单是否需要审核" placement="top-end">
  72. <el-radio-group v-model="form1.auditSwitch">
  73. <el-radio :label="0">关闭</el-radio>
  74. <el-radio :label="1">开启</el-radio>
  75. </el-radio-group>
  76. </el-tooltip>
  77. </el-form-item>
  78. <el-form-item label="制单改价" prop="createSalesOrderType">
  79. <el-tooltip class="item" effect="dark" content="销售制单改价形式" placement="top-end">
  80. <el-radio-group v-model="form1.createSalesOrderType">
  81. <el-radio :label="1">改商品单价</el-radio>
  82. <el-radio :label="2">改订单总价</el-radio>
  83. </el-radio-group>
  84. </el-tooltip>
  85. </el-form-item>
  86. <div class="footer">
  87. <el-button type="primary" @click="submitForm1">提 交</el-button>
  88. </div>
  89. </el-form>
  90. </el-tab-pane>
  91. <el-tab-pane label="企业理念" name="store.concept">
  92. <el-form ref="form3" :model="form7" :rules="rules7" label-width="160px">
  93. <el-form-item label="企业理念图片" prop="images">
  94. <Material v-model="images" type="image" :num="10" :width="150" :height="150" />
  95. </el-form-item>
  96. <el-form-item label="企业理念视频" prop="videoUrl">
  97. <div>
  98. <el-upload
  99. ref="upload"
  100. class="upload-demo"
  101. :action="uploadUrl"
  102. :on-success="handleSuccess"
  103. :before-upload="beforeUpload"
  104. :limit="1"
  105. :accept="videoAccept"
  106. >
  107. <el-button size="small" type="primary">点击上传视频</el-button>
  108. </el-upload>
  109. <video :src="form7.videoUrl" controls style="max-width: 400px; max-height: 400px;"></video>
  110. </div>
  111. </el-form-item>
  112. <div class="footer">
  113. <el-button type="primary" @click="submitForm7">提 交</el-button>
  114. </div>
  115. </el-form>
  116. </el-tab-pane>
  117. <el-tab-pane label="云存储桶配置" name="sys.oss.cloudStorage">
  118. <el-form ref="form2" :model="form2" :rules="rules2" label-width="140px">
  119. <el-form-item label="类型" prop="type">
  120. <el-radio-group v-model="form2.type">
  121. <el-radio :label="1">七牛云</el-radio>
  122. <el-radio :label="2">阿里云</el-radio>
  123. <el-radio :label="3">腾讯云</el-radio>
  124. <el-radio :label="4">华为云</el-radio>
  125. </el-radio-group>
  126. </el-form-item>
  127. <el-form-item v-if="form2.type==1" label="七牛绑定的域名" prop="qiniuDomain">
  128. <el-input v-model="form2.qiniuDomain" label="请输入七牛绑定的域名"></el-input>
  129. </el-form-item>
  130. <el-form-item v-if="form2.type==1" label="七牛路径前缀" prop="qiniuPrefix">
  131. <el-input v-model="form2.qiniuPrefix" label="请输入七牛路径前缀"></el-input>
  132. </el-form-item>
  133. <el-form-item v-if="form2.type==1" label="七牛ACCESS_KEY" prop="qiniuAccessKey">
  134. <el-input v-model="form2.qiniuAccessKey" label="请输入七牛ACCESS_KEY"></el-input>
  135. </el-form-item>
  136. <el-form-item v-if="form2.type==1" label="七牛SecretKey" prop="qiniuSecretKey">
  137. <el-input v-model="form2.qiniuSecretKey" label="七牛SecretKey不能为空"></el-input>
  138. </el-form-item>
  139. <el-form-item v-if="form2.type==1" label="七牛空间名" prop="qiniuBucketName">
  140. <el-input v-model="form2.qiniuBucketName" label="七牛空间名不能为空"></el-input>
  141. </el-form-item>
  142. <el-form-item v-if="form2.type==2" label="阿里云绑定的域名" prop="aliyunDomain">
  143. <el-input v-model="form2.aliyunDomain" label="阿里云绑定的域名不能为空"></el-input>
  144. </el-form-item>
  145. <el-form-item v-if="form2.type==2" label="阿里云路径前缀" prop="aliyunPrefix">
  146. <el-input v-model="form2.aliyunPrefix" label="阿里云路径前缀不能为空"></el-input>
  147. </el-form-item>
  148. <el-form-item v-if="form2.type==2" label="阿里云EndPoint" prop="aliyunEndPoint">
  149. <el-input v-model="form2.aliyunEndPoint" label="阿里云EndPoint不能为空"></el-input>
  150. </el-form-item>
  151. <el-form-item v-if="form2.type==2" label="阿里云AccessKeyId" prop="aliyunAccessKeyId">
  152. <el-input v-model="form2.aliyunAccessKeyId" label="阿里云AccessKeyId不能为空"></el-input>
  153. </el-form-item>
  154. <el-form-item v-if="form2.type==2" label="阿里云AccessKeySecret" prop="aliyunAccessKeySecret">
  155. <el-input v-model="form2.aliyunAccessKeySecret" label="阿里云AccessKeySecret不能为空"></el-input>
  156. </el-form-item>
  157. <el-form-item v-if="form2.type==2" label="阿里云BucketName" prop="aliyunBucketName">
  158. <el-input v-model="form2.aliyunBucketName" label="阿里云BucketName不能为空"></el-input>
  159. </el-form-item>
  160. <el-form-item v-if="form2.type==3" label="腾讯云绑定的域名" prop="qcloudDomain">
  161. <el-input v-model="form2.qcloudDomain" label="腾讯云绑定的域名格式不正确"></el-input>
  162. </el-form-item>
  163. <el-form-item v-if="form2.type==3" label="腾讯云前缀" prop="qcloudPrefix">
  164. <el-input v-model="form2.qcloudPrefix" label="腾讯云前缀不能为空"></el-input>
  165. </el-form-item>
  166. <el-form-item v-if="form2.type==3" label="腾讯云SecretId" prop="qcloudSecretId">
  167. <el-input v-model="form2.qcloudSecretId" label="腾讯云SecretId不能为空"></el-input>
  168. </el-form-item>
  169. <el-form-item v-if="form2.type==3" label="腾讯云SecretKey" prop="qcloudSecretKey">
  170. <el-input v-model="form2.qcloudSecretKey" label="腾讯云SecretKey不能为空"></el-input>
  171. </el-form-item>
  172. <el-form-item v-if="form2.type==3" label="腾讯云BucketName" prop="qcloudBucketName">
  173. <el-input v-model="form2.qcloudBucketName" label="腾讯云BucketName不能为空"></el-input>
  174. </el-form-item>
  175. <el-form-item v-if="form2.type==3" label="所属地区" prop="qcloudRegion">
  176. <el-input v-model="form2.qcloudRegion" label="所属地区不能为空"></el-input>
  177. </el-form-item>
  178. <el-form-item v-if="form2.type==4" label="华为云绑定的域名" prop="huaweiDomain">
  179. <el-input v-model="form2.huaweiDomain" label="华为云绑定的域名格式不正确"></el-input>
  180. </el-form-item>
  181. <el-form-item v-if="form2.type==4" label="华为云Endpoint" prop="huaweiBucketName">
  182. <el-input v-model="form2.huaweiEndpoint" label="华为云Endpoint不能为空"></el-input>
  183. </el-form-item>
  184. <el-form-item v-if="form2.type==4" label="华为云AK" prop="huaweiAK">
  185. <el-input v-model="form2.huaweiAK" label="华为云AK不能为空"></el-input>
  186. </el-form-item>
  187. <el-form-item v-if="form2.type==4" label="华为云SK" prop="huaweiSK">
  188. <el-input v-model="form2.huaweiSK" label="华为云SK不能为空"></el-input>
  189. </el-form-item>
  190. <el-form-item v-if="form2.type==4" label="华为云BucketName" prop="huaweiBucketName">
  191. <el-input v-model="form2.huaweiBucketName" label="华为云BucketName不能为空"></el-input>
  192. </el-form-item>
  193. <div class="footer">
  194. <el-button type="primary" @click="submitForm2">提 交</el-button>
  195. </div>
  196. </el-form>
  197. </el-tab-pane>
  198. <el-tab-pane label="积分配置" name="store.integral">
  199. <el-form ref="form3" :model="form3" :rules="rules3" label-width="160px">
  200. <el-form-item label="积分抵用比例" prop="integralRatio">
  201. <el-tooltip class="item" effect="dark" content="1积分抵多少金额" placement="top-end">
  202. <el-input-number v-model="form3.integralRatio" ></el-input-number>
  203. </el-tooltip>
  204. </el-form-item>
  205. <el-form-item label="满多少可以抵扣" prop="integralFull">
  206. <el-tooltip class="item" effect="dark" content="消费必须满一定额度才可使用,0代表无限制" placement="top-end">
  207. <el-input-number v-model="form3.integralFull" ></el-input-number>
  208. </el-tooltip>
  209. </el-form-item>
  210. <el-form-item label="单次最大抵扣积分" prop="integralMax">
  211. <el-tooltip class="item" effect="dark" content="限制一次只能使用多少积分,0代表无限制" placement="top-end">
  212. <el-input-number v-model="form3.integralMax" ></el-input-number>
  213. </el-tooltip>
  214. </el-form-item>
  215. <div class="footer">
  216. <el-button type="primary" @click="submitForm3">提 交</el-button>
  217. </div>
  218. </el-form>
  219. </el-tab-pane>
  220. <el-tab-pane label="签到配置" name="store.sign">
  221. <el-form ref="form4" :model="form4" label-width="160px">
  222. <el-table
  223. border
  224. :data="form4.sign"
  225. style="width: 100%">
  226. <el-table-column
  227. prop="day"
  228. label="名称"
  229. >
  230. </el-table-column>
  231. <el-table-column
  232. prop="signNum"
  233. label="获得积分"
  234. >
  235. </el-table-column>
  236. <el-table-column
  237. prop="sort"
  238. label="排序"
  239. >
  240. </el-table-column>
  241. <el-table-column
  242. label="操作"
  243. width="100">
  244. <template slot-scope="scope">
  245. <el-button type="text" size="small" @click="handleSignEdit(scope.row)">编辑</el-button>
  246. </template>
  247. </el-table-column>
  248. </el-table>
  249. <div class="footer" style="margin-top:10px;">
  250. <el-button type="primary" @click="submitForm4">提 交</el-button>
  251. </div>
  252. </el-form>
  253. </el-tab-pane>
  254. <el-tab-pane label="用户协议" name="store.agreement">
  255. <el-form ref="form5" :model="form5" :rules="rules5" label-width="100px">
  256. <el-form-item label="用户协议" prop="userAgreement">
  257. <editor ref="myeditor1" @on-text-change="updateText1" />
  258. </el-form-item>
  259. <el-form-item label="隐私政策" prop="privacyPolicy">
  260. <editor ref="myeditor2" @on-text-change="updateText2" />
  261. </el-form-item>
  262. <div class="footer">
  263. <el-button type="primary" @click="submitForm5">提 交</el-button>
  264. </div>
  265. </el-form>
  266. </el-tab-pane>
  267. <el-tab-pane label="支付配置" name="store.pay">
  268. <el-form ref="form6" :model="form6" label-width="160px">
  269. <el-form-item label="支付类型" prop="type">
  270. <el-radio-group v-model="form6.type">
  271. <el-radio label="wx">微信支付</el-radio>
  272. <el-radio label="hf">汇付</el-radio>
  273. </el-radio-group>
  274. </el-form-item>
  275. <el-form-item label="appId" prop="appId">
  276. <el-input v-model="form6.appId" label="请输入appId"></el-input>
  277. </el-form-item>
  278. <el-form-item v-if="form6.type=='wx'" label="微信商户号" prop="wxMchId">
  279. <el-input v-model="form6.wxMchId" label="请输入微信商户号"></el-input>
  280. </el-form-item>
  281. <el-form-item v-if="form6.type=='wx'" label="微信商户密钥" prop="wxMchKey">
  282. <el-input v-model="form6.wxMchKey" label="请输入商户密钥"></el-input>
  283. </el-form-item>
  284. <el-form-item v-if="form6.type=='wx'" label="微信商户V3密钥" prop="wxMchKey">
  285. <el-input v-model="form6.wxApiV3Key" label="请输入商户V3密钥"></el-input>
  286. </el-form-item>
  287. <el-form-item v-if="form6.type=='hf'" label="汇付产品号" prop="hfProductId">
  288. <el-input v-model="form6.hfProductId" label="汇付产品号"></el-input>
  289. </el-form-item>
  290. <el-form-item v-if="form6.type=='hf'" label="系统号" prop="hfSysId">
  291. <el-input v-model="form6.hfSysId" label="系统号Key"></el-input>
  292. </el-form-item>
  293. <el-form-item v-if="form6.type=='hf'" label="商户号" prop="huifuId">
  294. <el-input v-model="form6.huifuId" label="商户号"></el-input>
  295. </el-form-item>
  296. <el-form-item v-if="form6.type=='hf'" label="服务商私钥" prop="hfRsaPrivateKey">
  297. <el-input v-model="form6.hfRsaPrivateKey" label="服务商私钥"></el-input>
  298. </el-form-item>
  299. <el-form-item v-if="form6.type=='hf'" label="汇付公钥" prop="hfRsaPublicKey">
  300. <el-input v-model="form6.hfRsaPublicKey" label="汇付公钥"></el-input>
  301. </el-form-item>
  302. <el-form-item v-if="form6.type=='hf'" label="汇付支付回调地址" prop="hfPayNotifyUrl">
  303. <el-input v-model="form6.hfPayNotifyUrl" label="汇付支付回调地址"></el-input>
  304. </el-form-item>
  305. <el-form-item v-if="form6.type=='hf'" label="大额支付回调地址" prop="hfPayOnlineNotifyUrl">
  306. <el-input v-model="form6.hfPayOnlineNotifyUrl" label="汇付支付回调地址"></el-input>
  307. </el-form-item>
  308. <el-form-item v-if="form6.type=='hf'" label="汇付退款回调地址" prop="hfRefundNotifyUrl">
  309. <el-input v-model="form6.hfRefundNotifyUrl" label="汇付退款回调地址"></el-input>
  310. </el-form-item>
  311. <el-form-item v-if="form6.type=='hf'" label="汇付大额退款回调地址" prop="hfOnlineRefundNotifyUrl">
  312. <el-input v-model="form6.hfOnlineRefundNotifyUrl" label="汇付分账回调地址"></el-input>
  313. </el-form-item>
  314. <div class="footer">
  315. <el-button type="primary" @click="submitform6">提 交</el-button>
  316. </div>
  317. </el-form>
  318. </el-tab-pane>
  319. <el-tab-pane label="点播配置" name="course.config">
  320. <el-form ref="form18" :model="form18" label-width="120px">
  321. <el-form-item label="可答题进度(%)">
  322. <el-tooltip class="item" effect="dark" content="课程可答题进度(%)" placement="top-end">
  323. <el-input-number v-model="form18.answerRate" :min="1" :max="100" ></el-input-number>
  324. </el-tooltip>
  325. </el-form-item>
  326. <el-form-item label="短链有效期(天)">
  327. <el-tooltip class="item" effect="dark" content="短链有效期(天)" placement="top-end">
  328. <el-input-number v-model="form18.videoLinkExpireDate" :min="1" ></el-input-number>
  329. </el-tooltip>
  330. </el-form-item>
  331. <el-form-item label="答题允许错误次数(次)">
  332. <el-tooltip class="item" effect="dark" content="课程答题允许错误次数(次)" placement="top-end">
  333. <el-input-number v-model="form18.answerErrorCount" :min="1" ></el-input-number>
  334. </el-tooltip>
  335. </el-form-item>
  336. <el-form-item label="最大缓冲时长(秒)">
  337. <el-tooltip class="item" effect="dark" content="当前播放时间之后缓冲秒数(秒)" placement="top-end">
  338. <el-input-number v-model="form18.maxBufferLength" :min="1" ></el-input-number>
  339. </el-tooltip>
  340. </el-form-item>
  341. <el-form-item label="每十分钟获取积分">
  342. <el-tooltip class="item" effect="dark" content="每十分钟获取多少积分" placement="top-end">
  343. <el-input-number v-model="form18.videoIntegral" :min="1" ></el-input-number>
  344. </el-tooltip>
  345. </el-form-item>
  346. <el-form-item label="答题获得积分">
  347. <el-tooltip class="item" effect="dark" content="答题获得积分" placement="top-end">
  348. <el-input-number v-model="form18.answerIntegral" :min="1" ></el-input-number>
  349. </el-tooltip>
  350. </el-form-item>
  351. <el-form-item label="通用看课域名">
  352. <el-tooltip class="item" effect="dark" content="看课域名" placement="top-end">
  353. <el-input style="width: 300px" v-model="form18.realLinkDomainName" ></el-input>
  354. </el-tooltip>
  355. </el-form-item>
  356. <el-form-item label="注册域名">
  357. <el-tooltip class="item" effect="dark" content="注册域名" placement="top-end">
  358. <el-input style="width: 300px" v-model="form18.registerDomainName" ></el-input>
  359. </el-tooltip>
  360. </el-form-item>
  361. <el-form-item label="主域名">
  362. <el-tooltip class="item" effect="dark" content="所有销售的看课二级域名根据此主域名来发放" placement="top-end">
  363. <el-input style="width: 200px" v-model="form18.courseDomainName" label="看课主域名"></el-input>
  364. </el-tooltip>
  365. </el-form-item>
  366. <el-form-item label="看课默认线路">
  367. <el-radio-group v-model="form18.defaultLine">
  368. <el-radio label="0">线路一</el-radio>
  369. <el-radio label="1">线路二</el-radio>
  370. </el-radio-group>
  371. </el-form-item>
  372. <el-form-item label="网页授权域名">
  373. <el-tooltip class="item" effect="dark" content="公众号网页授权域名" placement="top-end">
  374. <el-input v-model="form18.authDomainName" ></el-input>
  375. </el-tooltip>
  376. </el-form-item>
  377. <el-form-item label="公众号appId">
  378. <el-tooltip class="item" effect="dark" content="授权公众号appId" placement="top-end">
  379. <el-input v-model="form18.mpAppId" ></el-input>
  380. </el-tooltip>
  381. </el-form-item>
  382. <el-form-item label="小程序appid">
  383. <el-tooltip class="item" effect="dark" content="小程序appid" placement="top-end">
  384. <el-input v-model="form18.miniprogramAppid" ></el-input>
  385. </el-tooltip>
  386. </el-form-item>
  387. <el-form-item label="小程序page路径">
  388. <el-tooltip class="item" effect="dark" content="小程序消息打开后的路径" placement="top-end">
  389. <el-input v-model="form18.miniprogramPage" ></el-input>
  390. </el-tooltip>
  391. </el-form-item>
  392. <el-form-item label="奖励类型">
  393. <el-radio-group v-model="form18.rewardType">
  394. <el-radio label="1">红包</el-radio>
  395. <el-radio label="2">积分</el-radio>
  396. </el-radio-group>
  397. </el-form-item>
  398. <el-form-item label="红包金额" v-if="form18.rewardType == 1">
  399. <el-tooltip class="item" effect="dark" content="课程默认红包金额" placement="top-end">
  400. <el-input-number v-model="form18.redPackageMoney" :min="0.01" ></el-input-number>
  401. </el-tooltip>
  402. </el-form-item>
  403. <el-form-item label="禁止发送时间段">
  404. <el-row v-for="(item, index) in form18.disabledTimeList" style="margin-top: 10px">
  405. <el-time-picker
  406. class="custom-input"
  407. v-model="item.startDisabledTime"
  408. value-format="HH:mm"
  409. format="HH:mm"
  410. placeholder="开始时间"
  411. style="width: 130px;height: 20px;">
  412. </el-time-picker>
  413. <el-time-picker
  414. class="custom-input"
  415. v-model="item.endDisabledTime"
  416. value-format="HH:mm"
  417. format="HH:mm"
  418. placeholder="结束时间"
  419. style="width: 130px;height: 20px;margin-left: 10px">
  420. </el-time-picker>
  421. <el-button type="danger" icon="el-icon-delete" circle style="margin-left: 20px" @click="removeDisabledTime(index)"></el-button>
  422. </el-row>
  423. <el-button @click="addDisabledTime" style="margin-top: 10px">添加时间段</el-button>
  424. </el-form-item>
  425. <el-form-item label="红包模式" v-if="form18.rewardType==1">
  426. <el-radio-group v-model="form18.redPacketMode">
  427. <el-radio label="1">总公司</el-radio>
  428. <el-radio label="2">分公司</el-radio>
  429. </el-radio-group>
  430. </el-form-item>
  431. <el-form-item label="默认客服二维码图片" prop="companyUserQRCode">
  432. <ImageUpload v-model="form18.companyUserQRCode" type="image" :num="10" :width="150" :height="150" :limit="1"/>
  433. </el-form-item>
  434. <el-form-item label="课程LOGO" prop="courseLogo">
  435. <image-upload v-model="form18.courseLogo" :limit="1" />
  436. </el-form-item>
  437. <el-form-item label="开启评论/弹幕" prop="openCommentStatus">
  438. <el-radio-group v-model="form18.openCommentStatus">
  439. <el-radio :label="1" >开启评论</el-radio>
  440. <el-radio :label="2" >开启弹幕</el-radio>
  441. <el-radio :label="3" >关闭</el-radio>
  442. </el-radio-group>
  443. </el-form-item>
  444. <el-form-item label="是否允许销售公司金额位负数" prop="isAllowUserPause">
  445. <el-switch
  446. v-model="form18.isNegative"
  447. active-color="#13ce66"
  448. inactive-color="#ff4949">
  449. </el-switch>
  450. </el-form-item>
  451. <el-form-item label="可查看评论条数" v-if="false">
  452. <el-tooltip class="item" effect="dark" content="在评论区可以查看的历史评论条数,默认200" placement="top-end">
  453. <el-input-number v-model="form18.viewCommentNum" :min="1"></el-input-number>
  454. </el-tooltip>
  455. </el-form-item>
  456. <el-form-item label="授权方式">
  457. <el-tooltip class="item" effect="dark" content="小程序授权头像昵称方式(目前仅会员看课有效)" placement="top-end">
  458. <el-radio-group v-model="form18.miniAppAuthType">
  459. <el-radio label="1">小程序原生</el-radio>
  460. <el-radio label="2">跳转H5服务号</el-radio>
  461. </el-radio-group>
  462. </el-tooltip>
  463. </el-form-item>
  464. <el-form-item v-if="form18.miniAppAuthType==2" label="跳转域名">
  465. <el-tooltip class="item" effect="dark" content="会员看课小程序授权头像昵称,跳转H5服务号授权域名" placement="top-end">
  466. <el-input style="width: 200px" v-model="form18.userCourseAuthDomain" label="跳转域名"></el-input>
  467. </el-tooltip>
  468. </el-form-item>
  469. <div class="line"></div>
  470. <div style="float:right;margin-right:20px">
  471. <el-button type="primary" @click="submitForm18">提交</el-button>
  472. </div>
  473. </el-form>
  474. </el-tab-pane>
  475. <el-tab-pane label="点播播放源配置" name="courseMa.config">
  476. <el-button type="primary" @click="addCourseMaConfig" style="margin-bottom: 10px">添加配置</el-button>
  477. <el-table height="660" border v-loading="courseMaConfigLoading" :data="courseMaConfigList">
  478. <el-table-column label="名称" align="center" prop="name">
  479. <template slot-scope="scope">
  480. <el-input v-model="scope.row.name" placeholder="请输入名称" :disabled="!scope.row.editing" />
  481. </template>
  482. </el-table-column>
  483. <el-table-column label="类型" align="center" prop="type">
  484. <template slot-scope="scope">
  485. <el-select
  486. v-model="scope.row.type"
  487. placeholder="请选择类型"
  488. :disabled="!scope.row.editing">
  489. <el-option label="小程序" value="1"></el-option>
  490. <el-option label="服务号" value="2"></el-option>
  491. </el-select>
  492. </template>
  493. </el-table-column>
  494. <el-table-column label="小程序原始ID" align="center" prop="username">
  495. <template slot-scope="scope" v-if="scope.row.type == 1">
  496. <el-input v-model="scope.row.username" placeholder="请输入原始ID" :disabled="!scope.row.editing" />
  497. </template>
  498. </el-table-column>
  499. <el-table-column label="小程序图标" align="center" prop="log">
  500. <template slot-scope="scope" v-if="scope.row.type == 1">
  501. <el-image v-if="!scope.row.editing && scope.row.log" :src="scope.row.log" :preview-src-list="[scope.row.log]" />
  502. <image-upload v-if="scope.row.editing" v-model="scope.row.log" :file-type='["png", "jpg", "jpeg"]' :limit="1"/>
  503. </template>
  504. </el-table-column>
  505. <el-table-column label="AppId" align="center" prop="appid">
  506. <template slot-scope="scope">
  507. <el-input v-model="scope.row.appid" placeholder="请输入AppId" :disabled="!scope.row.editing" />
  508. </template>
  509. </el-table-column>
  510. <el-table-column label="Secret" align="center" prop="secret">
  511. <template slot-scope="scope">
  512. <el-input v-model="scope.row.secret" placeholder="请输入Secret" :disabled="!scope.row.editing" />
  513. </template>
  514. </el-table-column>
  515. <el-table-column label="token" align="center" prop="token">
  516. <template slot-scope="scope">
  517. <el-input v-model="scope.row.token" placeholder="请输入token" :disabled="!scope.row.editing" />
  518. </template>
  519. </el-table-column>
  520. <el-table-column label="aesKey" align="center" prop="aesKey">
  521. <template slot-scope="scope">
  522. <el-input v-model="scope.row.aesKey" placeholder="请输入aesKey" :disabled="!scope.row.editing" />
  523. </template>
  524. </el-table-column>
  525. <el-table-column label="msgDataFormat" align="center" prop="msgDataFormat">
  526. <template slot-scope="scope">
  527. <el-input v-model="scope.row.msgDataFormat" placeholder="请输入消息格式" :disabled="!scope.row.editing" />
  528. </template>
  529. </el-table-column>
  530. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  531. <template slot-scope="scope">
  532. <el-button
  533. v-if="!scope.row.editing"
  534. size="mini"
  535. type="text"
  536. icon="el-icon-edit"
  537. @click="handleEdit(scope.$index, scope.row)"
  538. >编辑</el-button>
  539. <el-button
  540. v-if="scope.row.editing"
  541. size="mini"
  542. type="text"
  543. icon="el-icon-check"
  544. @click="handleSave(scope.$index, scope.row)"
  545. >保存</el-button>
  546. <el-button
  547. size="mini"
  548. type="text"
  549. icon="el-icon-delete"
  550. @click="deleteCourseMaConfig(scope.$index)"
  551. >删除</el-button>
  552. </template>
  553. </el-table-column>
  554. </el-table>
  555. <div class="footer">
  556. <el-button type="primary" @click="submitCourseMaConfig">提 交</el-button>
  557. </div>
  558. </el-tab-pane>
  559. <el-tab-pane label="红包商户配置" name="redPacket.config" >
  560. <el-form ref="form19" :model="form19" label-width="150px">
  561. <el-form-item label="红包接口类型" prop="isNew">
  562. <el-radio-group v-model="form19.isNew">
  563. <el-radio label="0">商家转账到零钱(旧)</el-radio>
  564. <el-radio label="1">商家转账(新)</el-radio>
  565. </el-radio-group>
  566. </el-form-item>
  567. <el-form-item label="公众号appid" prop="appId">
  568. <el-input v-model="form19.appId" label="请输入appId"></el-input>
  569. </el-form-item>
  570. <el-form-item label="小程序appid" prop="appId">
  571. <el-input v-model="form19.miniappId" label="请输入appId"></el-input>
  572. </el-form-item>
  573. <el-form-item label="商户号" prop="mchId">
  574. <el-input v-model="form19.mchId" label="请输入mchId"></el-input>
  575. </el-form-item>
  576. <el-form-item label="商户密钥" prop="mchKey">
  577. <el-input v-model="form19.mchKey" label="mchKey"></el-input>
  578. </el-form-item>
  579. <el-form-item label="p12证书路径" prop="keyPath">
  580. <el-input v-model="form19.keyPath" label="请输入keyPath"></el-input>
  581. </el-form-item>
  582. <el-form-item label="apiV3密钥" prop="apiV3Key">
  583. <el-input v-model="form19.apiV3Key" label="请输入apiV3Key"></el-input>
  584. </el-form-item>
  585. <el-form-item label="公钥ID" prop="publicKeyId">
  586. <el-input v-model="form19.publicKeyId" label="请输入公钥ID"></el-input>
  587. </el-form-item>
  588. <el-form-item label="公钥证书" prop="publicKeyPath">
  589. <el-input v-model="form19.publicKeyPath" label="请输入publicKeyPath"></el-input>
  590. </el-form-item>
  591. <el-form-item label="key路径" prop="privateKeyPath">
  592. <el-input v-model="form19.privateKeyPath" label="请输入"></el-input>
  593. </el-form-item>
  594. <el-form-item label="cert路径" prop="privateCertPath">
  595. <el-input v-model="form19.privateCertPath" label="请输入"></el-input>
  596. </el-form-item>
  597. <el-form-item label="回调地址" prop="notifyUrl">
  598. <el-input v-model="form19.notifyUrl" label="请输入"></el-input>
  599. </el-form-item>
  600. <div class="footer">
  601. <el-button type="primary" @click="submitForm19">提 交</el-button>
  602. </div>
  603. </el-form>
  604. </el-tab-pane>
  605. <el-tab-pane label="布局配置" name="store.appShow" >
  606. <div >
  607. <el-table border :data="form10">
  608. <el-table-column prop="name" label="模块名称" width="300">
  609. <template slot-scope="scope"> <el-input v-model="scope.row.name" ></el-input></template>
  610. </el-table-column>
  611. <el-table-column prop="sort"label="排序号" width="300">
  612. <template slot-scope="scope"><el-input-number v-model="scope.row.sort" :min="0" :max="100" ></el-input-number> </template>
  613. </el-table-column>
  614. <el-table-column prop="isShow" label="是否展示" width="100">
  615. <template slot-scope="scope"> <el-switch
  616. v-model="scope.row.isShow"
  617. active-color="#13ce66"
  618. inactive-color="#ff4949">
  619. </el-switch> </template>
  620. </el-table-column>
  621. </el-table>
  622. <div class="footer">
  623. <el-button type="primary" @click="submitForm10">提 交</el-button>
  624. </div>
  625. </div>
  626. </el-tab-pane>
  627. <el-tab-pane label="企微配置" name="qw.config">
  628. <el-form ref="form11" :model="form11" :rules="rules11" label-width="180px">
  629. <el-form-item label="是否开启重粉" prop="isRepeat">
  630. <el-switch v-model="form11.ooo
  631. " />
  632. </el-form-item>
  633. <el-form-item label="是否重项目" prop="isProject">
  634. <el-switch v-model="form11.isProject" />
  635. </el-form-item>
  636. <div class="footer">
  637. <el-button type="primary" @click="submitForm11">提 交</el-button>
  638. </div>
  639. </el-form>
  640. </el-tab-pane>
  641. <el-tab-pane label="统计配置" name="statis.config">
  642. <el-form ref="form12" :model="form12" :rules="rules12" label-width="180px">
  643. <el-form-item label="流量价格(每G/元)" prop="trafficPrice">
  644. <el-input-number v-model="form12.trafficPrice" />
  645. </el-form-item>
  646. <div class="footer">
  647. <el-button type="primary" @click="submitForm12">提 交</el-button>
  648. </div>
  649. </el-form>
  650. </el-tab-pane>
  651. <el-tab-pane label="erp配置" name="erp.config">
  652. <el-form ref="form13" :model="form13" :rules="rules13" label-width="180px">
  653. <el-form-item label="是否开启erp">
  654. <el-switch
  655. v-model="form13.erpOpen"
  656. active-color="#13ce66"
  657. inactive-color="#ff4949"
  658. active-value=1
  659. inactive-value=0>
  660. </el-switch>
  661. </el-form-item>
  662. <el-form-item label="erp类型" v-if="form13.erpOpen == 1">
  663. <el-radio v-model="form13.erpType" label=1>管易</el-radio>
  664. <el-radio v-model="form13.erpType" label=2>旺店通</el-radio>
  665. <el-radio v-model="form13.erpType" label=3>金博</el-radio>
  666. </el-form-item>
  667. <el-form-item label="不推送erp的公司" v-if="form13.erpOpen == 1">
  668. <el-select filterable v-model="form13.noErpCompany" placeholder="请选公司" multiple clearable size="small"
  669. >
  670. <el-option
  671. v-for="item in companyOptions"
  672. :key="item.companyId"
  673. :label="item.companyName"
  674. :value="item.companyId"
  675. />
  676. </el-select>
  677. </el-form-item>
  678. <!-- <el-form-item label="推送erp的商品类型" v-if="form13.erpOpen == 1">
  679. <el-select filterable v-model="form13.productType" placeholder="请选商品类型" multiple clearable size="small"
  680. >
  681. <el-option
  682. v-for="item in productTypeOptions"
  683. :key="item.dictValue"
  684. :label="item.dictLabel"
  685. :value="item.dictValue"
  686. />
  687. </el-select>
  688. </el-form-item> -->
  689. <el-form-item label="erpAppKey" v-if="form13.erpOpen == 1 && form13.erpType == 1 " prop="erpAppKey">
  690. <el-input v-model="form13.erpAppKey" label="请输入erpAppKey"></el-input>
  691. </el-form-item>
  692. <el-form-item label="erpSessionKey" v-if="form13.erpOpen == 1 && form13.erpType == 1 " prop="erpSessionKey">
  693. <el-input v-model="form13.erpSessionKey" label="请输入erpSessionKey"></el-input>
  694. </el-form-item>
  695. <el-form-item label="erpSecret" v-if="form13.erpOpen == 1 && form13.erpType == 1 " prop="erpSecret">
  696. <el-input v-model="form13.erpSecret" label="请输入erpSecret"></el-input>
  697. </el-form-item>
  698. <el-form-item label="erpUrl" v-if="form13.erpOpen == 1 && form13.erpType == 1 " prop="erpUrl">
  699. <el-input v-model="form13.erpUrl" label="请输入erpUrl"></el-input>
  700. </el-form-item>
  701. <el-form-item label="erpShopCode" v-if="form13.erpOpen == 1 && form13.erpType == 1 " prop="erpShopCode">
  702. <el-input v-model="form13.erpShopCode" label="请输入erpShopCode"></el-input>
  703. </el-form-item>
  704. <el-form-item label="erpWdAppKey" v-if="form13.erpOpen == 1 && form13.erpType == 2 " prop="erpWdAppKey">
  705. <el-input v-model="form13.erpWdAppKey" label="请输入erpAppKey"></el-input>
  706. </el-form-item>
  707. <el-form-item label="erpWdAppsecret" v-if="form13.erpOpen == 1 && form13.erpType == 2 " prop="erpWdAppsecret">
  708. <el-input v-model="form13.erpWdAppsecret" label="erpWdAppsecret"></el-input>
  709. </el-form-item>
  710. <el-form-item label="erpWdSid" v-if="form13.erpOpen == 1 && form13.erpType == 2 " prop="erpWdSid">
  711. <el-input v-model="form13.erpWdSid" label="请输入erpWdSid"></el-input>
  712. </el-form-item>
  713. <el-form-item label="erpWdShopCode" v-if="form13.erpOpen == 1 && form13.erpType == 2 " prop="erpWdShopCode">
  714. <el-input v-model="form13.erpWdShopCode" label="请输入erpWdShopCode"></el-input>
  715. </el-form-item>
  716. <el-form-item label="erpWdBaseUrl" v-if="form13.erpOpen == 1 && form13.erpType == 2 " prop="erpWdBaseUrl">
  717. <el-input v-model="form13.erpWdBaseUrl" label="请输入erpWdBaseUrl"></el-input>
  718. </el-form-item>
  719. <el-form-item label="erpWarehouseCode" v-if="form13.erpOpen == 1 && form13.erpType == 2 " prop="erpWarehouseCode">
  720. <el-input v-model="form13.erpWarehouseCode" label="请输入erpWarehouseCode"></el-input>
  721. </el-form-item>
  722. <el-form-item label="kingbosan" v-if="form13.erpOpen == 1 && form13.erpType == 3 " prop="kingbosan">
  723. <el-input v-model="form13.kingbosan" label="请输入账套名称(kingbosan)"></el-input>
  724. </el-form-item>
  725. <el-form-item label="kingbosSecret" v-if="form13.erpOpen == 1 && form13.erpType == 3 " prop="kingbosSecret">
  726. <el-input v-model="form13.kingbosSecret" label="请输入密钥(kingbosSecret)"></el-input>
  727. </el-form-item>
  728. <el-form-item label="kingbosUrl" v-if="form13.erpOpen == 1 && form13.erpType == 3 " prop="kingbosUrl">
  729. <el-input v-model="form13.kingbosUrl" label="请输入金博地址(kingbosUrl)"></el-input>
  730. </el-form-item>
  731. <el-form-item label="corgid" v-if="form13.erpOpen == 1 && form13.erpType == 3 " prop="corgid">
  732. <el-input v-model="form13.corgid" label="请输入机构编码(corgid)"></el-input>
  733. </el-form-item>
  734. <el-form-item label="cwarehouseCode" v-if="form13.erpOpen == 1 && form13.erpType == 3 " prop="cwarehouseCode">
  735. <el-input v-model="form13.cwarehouseCode" label="请输入仓库编码(cwarehouseCode)"></el-input>
  736. </el-form-item>
  737. <el-form-item label="cwarehouseName" v-if="form13.erpOpen == 1 && form13.erpType == 3 " prop="cwarehouseName">
  738. <el-input v-model="form13.cwarehouseName" label="请输入仓库名称(cwarehouseName)"></el-input>
  739. </el-form-item>
  740. <div class="footer">
  741. <el-button type="primary" @click="submitForm13">提 交</el-button>
  742. </div>
  743. </el-form>
  744. </el-tab-pane>
  745. <el-tab-pane label="公司销售角色默认生成配置" name="companymenu.config">
  746. <companyMenuConfig></companyMenuConfig>
  747. </el-tab-pane>
  748. </el-tabs>
  749. <el-dialog :title="sign.title" :visible.sync="sign.open" width="500px" append-to-body>
  750. <el-form ref="signform" :model="signform" label-width="80px">
  751. <el-form-item label="名称" prop="day">
  752. <el-input v-model="signform.day" placeholder="请输入名称" />
  753. </el-form-item>
  754. <el-form-item label="获得积分" prop="signNum">
  755. <el-input-number v-model="signform.signNum" placeholder="请输入获得积分" />
  756. </el-form-item>
  757. <el-form-item label="排序" prop="sort">
  758. <el-input-number v-model="signform.sort" placeholder="请输入排序" />
  759. </el-form-item>
  760. </el-form>
  761. <div slot="footer" class="dialog-footer">
  762. <el-button type="primary" @click="submitSignForm">确 定</el-button>
  763. </div>
  764. </el-dialog>
  765. </div>
  766. </template>
  767. <script>
  768. import Editor from '@/components/Editor/wang';
  769. import { getConfigByKey,updateConfigByKey, clearCache } from "@/api/system/config";
  770. import { listCompany } from "@/api/company/company";
  771. import Material from '@/components/Material'
  772. import {treeselect as menuTreeselect} from "@/api/system/menu";
  773. import companyMenuConfig from "./companyMenuConfig";
  774. export default {
  775. name: "Config",
  776. components: {
  777. Material,
  778. companyMenuConfig,
  779. Editor
  780. },
  781. watch: {
  782. photoArr: function(val) {
  783. this.form1.certs = val.join(',')
  784. },
  785. images: function(val) {
  786. this.form7.images = val.join(',')
  787. }
  788. },
  789. data() {
  790. return {
  791. courseMaConfigLoading:false,
  792. courseMaConfigList:[],
  793. // productTypeOptions:[],
  794. companyOptions:[],
  795. uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
  796. videoAccept:"video/*",
  797. sign:{
  798. title:"修改签到",
  799. open:false,
  800. },
  801. signform: {
  802. },
  803. photoArr:[],
  804. images:[],
  805. activeName:"store.config",
  806. configId:null,
  807. configKey:null,
  808. // 表单参数
  809. form1: {
  810. hotSearch:"",
  811. },
  812. // 表单校验
  813. rules1: {
  814. },
  815. rules11: {
  816. },
  817. form2: {
  818. },
  819. // 表单校验
  820. rules2: {
  821. },
  822. form3: {
  823. },
  824. // 表单校验
  825. rules3: {
  826. },
  827. rules12: {
  828. trafficPrice: [{
  829. required: true, message: '流量价格不能为空', trigger: 'blur'
  830. }]
  831. },
  832. form4: {
  833. sign:[],
  834. },
  835. // 表单校验
  836. rules4: {
  837. },
  838. form5: {
  839. },
  840. form6: {
  841. },
  842. form7: {
  843. },
  844. rules7: {
  845. },
  846. form18:{
  847. },
  848. form10:[],
  849. form11:{},
  850. form12:{trafficPrice: 0},
  851. form19:{
  852. },
  853. // 表单校验
  854. rules5: {
  855. },
  856. form13:{},
  857. rules13:{},
  858. };
  859. },
  860. created() {
  861. this.getConfigByKey(this.activeName);
  862. },
  863. methods: {
  864. addCourseMaConfig() {
  865. this.courseMaConfigList.push({
  866. name: "",
  867. appid: "",
  868. secret: "",
  869. token: "",
  870. aesKey: "",
  871. msgDataFormat: "",
  872. editing: true
  873. });
  874. },
  875. handleEdit(index, row) {
  876. this.$set(this.courseMaConfigList[index], 'editing', true);
  877. },
  878. handleSave(index, row) {
  879. // 验证必填字段
  880. if (!row.name || !row.appid || !row.secret) {
  881. this.$message.error('请填写所有必填字段');
  882. return;
  883. }
  884. this.$set(this.courseMaConfigList[index], 'editing', false);
  885. },
  886. deleteCourseMaConfig(index) {
  887. this.$confirm('确认删除该配置?', '提示', {
  888. confirmButtonText: '确定',
  889. cancelButtonText: '取消',
  890. type: 'warning'
  891. }).then(() => {
  892. this.courseMaConfigList.splice(index, 1);
  893. this.$message.success('删除成功');
  894. }).catch(() => {});
  895. },
  896. submitCourseMaConfig() {
  897. // 验证所有必填字段
  898. const isValid = this.courseMaConfigList.every(item => {
  899. return item.name && item.appid && item.secret;
  900. });
  901. if (!isValid) {
  902. this.$message.error('请填写所有必填字段');
  903. return;
  904. }
  905. var param = {configId: this.configId, configValue: JSON.stringify(this.courseMaConfigList)};
  906. updateConfigByKey(param).then(response => {
  907. if (response.code === 200) {
  908. this.msgSuccess("修改成功");
  909. }
  910. });
  911. },
  912. getCompanyOptions() {
  913. listCompany().then(response=>{
  914. this.companyOptions = response.rows
  915. })
  916. },
  917. handleSuccess(response, file) {
  918. // 上传成功后的回调函数
  919. this.myloading.close();
  920. this.form7.videoUrl = response.url;
  921. this.$refs.upload.clearFiles();
  922. },
  923. beforeUpload(file) {
  924. // 上传前的钩子函数,可以在这里对文件进行处理
  925. // 返回 false 则取消上传
  926. // 例如限制文件大小
  927. const isLt2M = file.size / 1024 / 1024 < 200;
  928. if (!isLt2M) {
  929. this.$message.error('上传视频文件大小不能超过 200MB!');
  930. return false;
  931. }
  932. this.myloading = this.$loading({
  933. lock: true,
  934. text: '上传中',
  935. spinner: 'el-icon-loading',
  936. background: 'rgba(0, 0, 0, 0.7)'
  937. });
  938. },
  939. handleSignEdit(item){
  940. this.signform=item;
  941. this.sign.open=true;
  942. },
  943. submitSignForm(){
  944. this.sign.open=false;
  945. },
  946. updateText1(text){
  947. this.form5.userAgreement=text
  948. },
  949. updateText2(text){
  950. this.form5.privacyPolicy=text
  951. },
  952. handleClick(tab, event){
  953. console.log(tab.name)
  954. this.getConfigByKey(tab.name);
  955. },
  956. getConfigByKey(key){
  957. getConfigByKey(key).then(response => {
  958. console.log(response)
  959. if(key=="store.config"){
  960. this.configId=response.data.configId;
  961. this.configKey=response.data.configKey;
  962. this.form1 =JSON.parse(response.data.configValue);
  963. if(this.form1.certs!=null){
  964. this.photoArr=this.form1.certs.split(",");
  965. }
  966. }
  967. else if(key=="store.concept"){
  968. this.configId=response.data.configId;
  969. this.configKey=response.data.configKey;
  970. this.form7 =JSON.parse(response.data.configValue);
  971. if(this.form7.images!=null){
  972. this.images=this.form7.images.split(",");
  973. }
  974. }
  975. else if(key=="store.integral"){
  976. this.configId=response.data.configId;
  977. this.configKey=response.data.configKey;
  978. console.log(response.data.configValue)
  979. this.form3 =JSON.parse(response.data.configValue);
  980. console.log(this.form3.sign)
  981. }
  982. else if(key=="store.sign"){
  983. this.configId=response.data.configId;
  984. this.configKey=response.data.configKey;
  985. this.form4.sign =JSON.parse(response.data.configValue);
  986. console.log(this.form4.sign)
  987. }
  988. else if(key=="store.agreement"){
  989. this.configId=response.data.configId;
  990. this.configKey=response.data.configKey;
  991. this.form5 =JSON.parse(response.data.configValue);
  992. this.$refs.myeditor1.setText(this.form5.userAgreement);
  993. this.$refs.myeditor2.setText(this.form5.privacyPolicy);
  994. }
  995. else if(key=="sys.oss.cloudStorage"){
  996. this.configId=response.data.configId;
  997. this.configKey=response.data.configKey;
  998. this.form2 =JSON.parse(response.data.configValue);
  999. }
  1000. else if(key=="store.pay"){
  1001. this.configId=response.data.configId;
  1002. this.configKey=response.data.configKey;
  1003. this.form6 =JSON.parse(response.data.configValue);
  1004. }
  1005. else if(key=="course.config"){
  1006. this.configId=response.data.configId;
  1007. this.configKey=response.data.configKey;
  1008. this.form18 =JSON.parse(response.data.configValue);
  1009. }else if(key=="courseMa.config"){
  1010. this.configId=response.data.configId;
  1011. this.configKey=response.data.configKey;
  1012. this.courseMaConfigLoading = true;
  1013. if(response.data && response.data.configValue) {
  1014. this.courseMaConfigList = JSON.parse(response.data.configValue).map(item => ({
  1015. ...item,
  1016. editing: false
  1017. }));
  1018. } else {
  1019. this.courseMaConfigList = [];
  1020. }
  1021. this.courseMaConfigLoading = false;
  1022. }
  1023. else if(key=="redPacket.config"){
  1024. this.configId=response.data.configId;
  1025. this.configKey=response.data.configKey;
  1026. this.form19 =JSON.parse(response.data.configValue);
  1027. }
  1028. else if(key=="store.appShow"){
  1029. this.configId=response.data.configId;
  1030. this.configKey=response.data.configKey;
  1031. this.form10 =JSON.parse(response.data.configValue);
  1032. }
  1033. else if(key=="qw.config"){
  1034. this.configId=response.data.configId;
  1035. this.configKey=response.data.configKey;
  1036. this.form11 =JSON.parse(response.data.configValue);
  1037. }
  1038. else if(key == "statis.config"){
  1039. this.configId=response.data.configId;
  1040. this.configKey=response.data.configKey;
  1041. if(response.data.configValue != null) {
  1042. this.form12 =JSON.parse(response.data.configValue);
  1043. }
  1044. }
  1045. else if(key == "erp.config"){
  1046. this.getCompanyOptions();
  1047. this.configId=response.data.configId;
  1048. this.configKey=response.data.configKey;
  1049. if(response.data.configValue != null) {
  1050. this.form13 =JSON.parse(response.data.configValue);
  1051. }
  1052. // this.getDicts("store_product_type").then((response) => {
  1053. // this.productTypeOptions = response.data;
  1054. // });
  1055. }
  1056. });
  1057. },
  1058. /** 提交按钮 */
  1059. submitForm1: function() {
  1060. this.$refs["form1"].validate(valid => {
  1061. if (valid) {
  1062. var param={configId:this.configId,configKey:this.configKey,configValue:JSON.stringify(this.form1)}
  1063. updateConfigByKey(param).then(response => {
  1064. if (response.code === 200) {
  1065. this.msgSuccess("修改成功");
  1066. }
  1067. });
  1068. }
  1069. });
  1070. },
  1071. submitForm2: function() {
  1072. this.$refs["form2"].validate(valid => {
  1073. if (valid) {
  1074. var param={configId:this.configId,configKey:this.configKey,configValue:JSON.stringify(this.form2)}
  1075. updateConfigByKey(param).then(response => {
  1076. if (response.code === 200) {
  1077. this.msgSuccess("修改成功");
  1078. }
  1079. });
  1080. }
  1081. });
  1082. },
  1083. submitForm3: function() {
  1084. this.$refs["form3"].validate(valid => {
  1085. if (valid) {
  1086. var param={configId:this.configId,configKey:this.configKey,configValue:JSON.stringify(this.form3)}
  1087. updateConfigByKey(param).then(response => {
  1088. if (response.code === 200) {
  1089. this.msgSuccess("修改成功");
  1090. }
  1091. });
  1092. }
  1093. });
  1094. },
  1095. submitForm4: function() {
  1096. this.$refs["form4"].validate(valid => {
  1097. if (valid) {
  1098. var param={configId:this.configId,configKey:this.configKey,configValue:JSON.stringify(this.form4.sign)}
  1099. updateConfigByKey(param).then(response => {
  1100. if (response.code === 200) {
  1101. this.msgSuccess("修改成功");
  1102. }
  1103. });
  1104. }
  1105. });
  1106. },
  1107. submitForm5: function() {
  1108. this.$refs["form5"].validate(valid => {
  1109. if (valid) {
  1110. var param={configId:this.configId,configKey:this.configKey,configValue:JSON.stringify(this.form5)}
  1111. updateConfigByKey(param).then(response => {
  1112. if (response.code === 200) {
  1113. this.msgSuccess("修改成功");
  1114. }
  1115. });
  1116. }
  1117. });
  1118. },
  1119. submitform6: function() {
  1120. this.$refs["form6"].validate(valid => {
  1121. if (valid) {
  1122. var param={configId:this.configId,configKey:this.configKey,configValue:JSON.stringify(this.form6)}
  1123. updateConfigByKey(param).then(response => {
  1124. if (response.code === 200) {
  1125. this.msgSuccess("修改成功");
  1126. }
  1127. });
  1128. }
  1129. });
  1130. },
  1131. submitForm7(){
  1132. var param={configId:this.configId,configKey:this.configKey,configValue:JSON.stringify(this.form7)}
  1133. updateConfigByKey(param).then(response => {
  1134. if (response.code === 200) {
  1135. this.msgSuccess("修改成功");
  1136. }
  1137. });
  1138. },
  1139. submitForm18(){
  1140. var param={configId:this.configId,configKey:this.configKey,configValue:JSON.stringify(this.form18)}
  1141. updateConfigByKey(param).then(response => {
  1142. if (response.code === 200) {
  1143. this.msgSuccess("修改成功");
  1144. }
  1145. });
  1146. },
  1147. submitForm19(){
  1148. var param={configId:this.configId,configKey:this.configKey,configValue:JSON.stringify(this.form19)}
  1149. updateConfigByKey(param).then(response => {
  1150. if (response.code === 200) {
  1151. this.msgSuccess("修改成功");
  1152. }
  1153. });
  1154. },
  1155. submitForm10(){
  1156. var param={configId:this.configId,configKey:this.configKey,configValue:JSON.stringify(this.form10)}
  1157. updateConfigByKey(param).then(response => {
  1158. if (response.code === 200) {
  1159. this.msgSuccess("修改成功");
  1160. }
  1161. });
  1162. },
  1163. submitForm11(){
  1164. var param={configId:this.configId,configKey:this.configKey,configValue:JSON.stringify(this.form11)}
  1165. updateConfigByKey(param).then(response => {
  1166. if (response.code === 200) {
  1167. this.msgSuccess("修改成功");
  1168. }
  1169. });
  1170. },
  1171. submitForm12(){
  1172. var param={configId:this.configId,configKey:this.configKey,configValue:JSON.stringify(this.form12)}
  1173. updateConfigByKey(param).then(response => {
  1174. if (response.code === 200) {
  1175. this.msgSuccess("修改成功");
  1176. }
  1177. });
  1178. },
  1179. submitForm13(){
  1180. var param={configId:this.configId,configValue:JSON.stringify(this.form13)}
  1181. updateConfigByKey(param).then(response => {
  1182. if (response.code === 200) {
  1183. this.msgSuccess("修改成功");
  1184. }
  1185. });
  1186. },
  1187. /** 清理缓存按钮操作 */
  1188. handleClearCache() {
  1189. clearCache().then(response => {
  1190. if (response.code === 200) {
  1191. this.msgSuccess("清理成功");
  1192. }
  1193. });
  1194. },
  1195. addDisabledTime(){
  1196. if(this.form18.disabledTimeList == null || this.form18.disabledTimeList == undefined){
  1197. this.form18.disabledTimeList = []
  1198. }
  1199. this.form18.disabledTimeList.push({startDisabledTime: "", endDisabledTime: ""});
  1200. this.$forceUpdate();
  1201. },
  1202. removeDisabledTime(index){
  1203. this.form18.disabledTimeList.splice(index, 1);
  1204. },
  1205. }
  1206. };
  1207. </script>
  1208. <style scoped>
  1209. .footer{
  1210. width: 100%;
  1211. display: flex;
  1212. align-items: flex-end;
  1213. justify-content: flex-end;
  1214. }
  1215. </style>