addWebsite.vue 60 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391
  1. <template>
  2. <!-- 采集咨询 -->
  3. <div>
  4. <!--表格内容 start------------------------------------------------------------>
  5. <div class="layerBox">
  6. <tableTitle :name="tableDivTitle" />
  7. <el-row class="formContent">
  8. <el-form :model="form" ref="form" :rules="formRules" autocomplete="off" label-width="130px"
  9. label-position="left">
  10. <div class="formDiv">
  11. <el-form-item label="网站名称:" :label-width="formLabelWidth" prop="website_name"
  12. class="custom-align-right">
  13. <el-input v-model="form.website_name" autocomplete="off"
  14. @change="checkWebsiteName(form.website_name,0)" placeholder="请输入网站名称"></el-input>
  15. </el-form-item>
  16. <el-form-item label="网站地址1:" :label-width="formLabelWidth" prop="website_url[0].url"
  17. class="custom-align-right">
  18. <div class="formLabelFloatBox">
  19. <el-input v-model="form.website_url[0].url" autocomplete="off"
  20. @change="checkWebsiteUrl(form.website_url[0].url, 0)"
  21. placeholder="请输入网站地址1"></el-input>
  22. <el-button type="info" icon="el-icon-plus" circle size="mini" @click="addUrlInput(1)"
  23. class="formLabeladdIcon"></el-button>
  24. <el-button type="info" icon="el-icon-delete" circle size="mini" @click=""
  25. class="formLabelDelIcon" disabled></el-button>
  26. </div>
  27. </el-form-item>
  28. <el-form-item label="网站地址2:" :label-width="formLabelWidth"
  29. v-if="form.website_url[1].show == true" class="custom-align-right">
  30. <div class="formLabelFloatBox">
  31. <el-input v-model="form.website_url[1].url" autocomplete="off"
  32. @change="checkWebsiteUrl(form.website_url[1].url, 1)"
  33. placeholder="请输入网站地址2"></el-input>
  34. <el-button type="info" icon="el-icon-plus" circle size="mini" @click="addUrlInput(2)"
  35. class="formLabeladdIcon"></el-button>
  36. <el-button type="info" icon="el-icon-delete" circle size="mini"
  37. @click="deleteUrlInput(1)" class="formLabelDelIcon"></el-button>
  38. </div>
  39. </el-form-item>
  40. <el-form-item label="网站地址3:" :label-width="formLabelWidth"
  41. v-if="form.website_url[2].show == true" class="custom-align-right">
  42. <div class="formLabelFloatBox">
  43. <el-input v-model="form.website_url[2].url" autocomplete="off"
  44. @change="checkWebsiteUrl(form.website_url[2].url, 2)"
  45. placeholder="请输入网站地址3"></el-input>
  46. <el-button type="info" icon="el-icon-plus" circle size="mini" @click="addUrlInput(3)"
  47. class="formLabeladdIcon"></el-button>
  48. <el-button type="info" icon="el-icon-delete" circle size="mini"
  49. @click="deleteUrlInput(2)" class="formLabelDelIcon"></el-button>
  50. </div>
  51. </el-form-item>
  52. <el-form-item label="网站地址4:" :label-width="formLabelWidth"
  53. v-if="form.website_url[3].show == true" class="custom-align-right">
  54. <div class="formLabelFloatBox">
  55. <el-input v-model="form.website_url[3].url" autocomplete="off"
  56. @change="checkWebsiteUrl(form.website_url[3].url, 3)"
  57. placeholder="请输入网站地址4"></el-input>
  58. <el-button type="info" icon="el-icon-plus" circle size="mini" @click="addUrlInput(4)"
  59. class="formLabeladdIcon"></el-button>
  60. <el-button type="info" icon="el-icon-delete" circle size="mini"
  61. @click="deleteUrlInput(3)" class="formLabelDelIcon"></el-button>
  62. </div>
  63. </el-form-item>
  64. <el-form-item label="网站地址5:" :label-width="formLabelWidth"
  65. v-if="form.website_url[4].show == true" class="custom-align-right">
  66. <div class="formLabelFloatBox">
  67. <el-input v-model="form.website_url[4].url" autocomplete="off"
  68. @change="checkWebsiteUrl(form.website_url[4].url, 4)"
  69. placeholder="请输入网站地址5"></el-input>
  70. <el-button type="info" icon="el-icon-plus" circle size="mini" @click=""
  71. class="formLabeladdIcon" disabled></el-button>
  72. <el-button type="info" icon="el-icon-delete" circle size="mini"
  73. @click="deleteUrlInput(4)" class="formLabelDelIcon"></el-button>
  74. </div>
  75. </el-form-item>
  76. <el-form-item label="上级网系:" :label-width="formLabelWidth" prop="website_column_arr_id"
  77. class="custom-align-right">
  78. <el-cascader v-model="form.website_column_arr_id" :props="{ checkStrictly: true }"
  79. :options="website_column_arr"></el-cascader>
  80. </el-form-item>
  81. <el-form-item label="网站logo:" prop="logo" :label-width="formLabelWidth"
  82. :class="['custom-form-item']" class="custom-align-right">
  83. <div class="uploaderBox">
  84. <!--图片上传组件 start ------------------------------------------------------------>
  85. <div class="avatar-upload-container" @mouseenter="hovering = true"
  86. @mouseleave="hovering = false">
  87. <!-- 上传组件 -->
  88. <el-upload class="avatar-uploader" action="#" :show-file-list="false"
  89. :before-upload="beforeAvatarUpload">
  90. <!-- 预览图片 -->
  91. <img v-if="logoUrl" :src="logoUrl" class="avatar">
  92. <!-- 上传图标 -->
  93. <!-- <i v-else class="el-icon-plus avatar-uploader-icon"></i> -->
  94. <div v-else class="chooseImgDiv">
  95. <div>
  96. <img src="@/assets/public/upload/noImage.png">
  97. <div>选择图片</div>
  98. </div>
  99. </div>
  100. <input type="hidden" name="logo" v-model="form.logo">
  101. </el-upload>
  102. <!-- 删除按钮,当鼠标悬浮时显示 -->
  103. <div v-if="hovering && logoUrl" class="delete-button" @click="handleDelete">
  104. <i class="el-icon-delete"></i>
  105. </div>
  106. <span class="photo_tips">请添加网站LOGO,要求图片底色为透明,不大于500K。</span>
  107. </div>
  108. <!--图片上传组件 end ------------------------------------------------------------>
  109. </div>
  110. </el-form-item>
  111. <el-form-item label="网站标题:" :label-width="formLabelWidth" prop="title"
  112. class="custom-align-right">
  113. <template #label>
  114. <span class="askBox">
  115. 网站标题:
  116. <el-tooltip class="item" effect="dark" content="网站标题,如:三农市场网_网站列表_全国信息一体化网络平台_项目大全。"
  117. placement="top">
  118. <i class="el-icon-question"></i>
  119. </el-tooltip>
  120. </span>
  121. </template>
  122. <el-input v-model="form.title" autocomplete="off" placeholder="请输入网站标题"></el-input>
  123. </el-form-item>
  124. <el-form-item label="网站关键词:" :label-width="formLabelWidth" prop="keywords"
  125. class="custom-align-right">
  126. <template #label>
  127. <span class="askBox">
  128. 网站关键词:
  129. <el-tooltip class="item" effect="dark" content="网站关键词,如:三农市场网、全国三农、信息一体化。"
  130. placement="top">
  131. <i class="el-icon-question"></i>
  132. </el-tooltip>
  133. </span>
  134. </template>
  135. <!-- <el-input v-model="form.keywords" autocomplete="off" placeholder="请输入网站关键词"></el-input> -->
  136. <inputTag :initialTags="tags" @tags-updated="updateTags" />
  137. </el-form-item>
  138. <el-form-item label="网站描述:" :label-width="formLabelWidth" prop="description"
  139. class="custom-align-right">
  140. <template #label>
  141. <span class="askBox">
  142. 网站描述:
  143. <el-tooltip class="item" effect="dark" content="网站描述,如:中国三农市场网创建以来,社会效益和会员经济效益贡献。"
  144. placement="top">
  145. <i class="el-icon-question"></i>
  146. </el-tooltip>
  147. </span>
  148. </template>
  149. <el-input type="textarea" v-model="form.description" class="custom-textarea"
  150. placeholder="请输入网站描述"></el-input>
  151. </el-form-item>
  152. <el-form-item label="网站后缀:" :label-width="formLabelWidth" prop="suffix"
  153. class="custom-align-right">
  154. <template #label>
  155. <span class="askBox">
  156. 网站后缀:
  157. <el-tooltip class="item" effect="dark" content="网站后缀,如:全国政务信息一体化应用平台"
  158. placement="top">
  159. <i class="el-icon-question"></i>
  160. </el-tooltip>
  161. </span>
  162. </template>
  163. <el-input type="textarea" v-model="form.suffix" class="custom-textarea" placeholder="请输入网站后缀"></el-input>
  164. </el-form-item>
  165. <el-form-item label="" :label-width="formLabelWidth" prop="ad_key" class="custom-align-right" >
  166. <template #label >
  167. <span class="askBox askBox1">
  168. 网站名称缩写:
  169. <el-tooltip class="item" effect="dark" content="网站名称缩写,如:网站名称缩写,如:三农市场网 snscw。"
  170. placement="top">
  171. <i class="el-icon-question"></i>
  172. </el-tooltip>
  173. </span>
  174. </template>
  175. <el-input v-model="form.ad_key" autocomplete="off" @change="checkWebsiteName(form.ad_key,0)" placeholder="请输入网站名称缩写"></el-input>
  176. </el-form-item>
  177. </div>
  178. </el-form>
  179. </el-row>
  180. <tableTitle :name="tableDivTitle1" />
  181. <el-row class="formContent">
  182. <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="110px" class="demo-ruleForm">
  183. <el-form-item label="网站声明:" class="desc">
  184. <el-input type="textarea" v-model="ruleForm.statement" placeholder="请输入网站声明..."
  185. show-word-limit></el-input>
  186. </el-form-item>
  187. <el-form-item label="主办单位:" class="desc">
  188. <el-input type="textarea" v-model="ruleForm.organizer" placeholder="请输入主办单位..."
  189. show-word-limit></el-input>
  190. </el-form-item>
  191. <el-form-item label="cnzz统计:" class="desc">
  192. <el-input type="textarea" v-model="ruleForm.statistics" placeholder="请输入cnzz统计..."
  193. show-word-limit></el-input>
  194. </el-form-item>
  195. <el-form-item label="版权信息:" class="desc">
  196. <el-input type="textarea" v-model="ruleForm.copyright_information" placeholder="请输入版权信息..."
  197. show-word-limit></el-input>
  198. </el-form-item>
  199. <el-form-item label="联系电话:">
  200. <el-input v-model="ruleForm.contact_number" placeholder="请输入联系电话" show-word-limit></el-input>
  201. </el-form-item>
  202. <el-form-item label="电子邮箱:">
  203. <el-input v-model="ruleForm.email" placeholder="请输入电子邮箱" show-word-limit></el-input>
  204. </el-form-item>
  205. <el-form-item label="公司地址:">
  206. <el-input v-model="ruleForm.company_address" placeholder="请输入公司地址" show-word-limit></el-input>
  207. </el-form-item>
  208. <!-- 项目logo -->
  209. <el-form-item label="项目logo:" :label-width="formLabelWidth" :class="['custom-form-item']"
  210. class="custom-align-right">
  211. <div class="uploaderBox">
  212. <!--图片上传组件 start ------------------------------------------------------------>
  213. <div class="avatar-upload-container" @mouseenter="hovering = true"
  214. @mouseleave="hovering = false">
  215. <!-- 上传组件 -->
  216. <el-upload class="avatar-uploader" action="#" :show-file-list="false"
  217. :before-upload="beforeAvatarUpload1">
  218. <!-- 预览图片 -->
  219. <img v-if="logoUrl_1" :src="logoUrl_1" class="avatar">
  220. <div v-else class="chooseImgDiv">
  221. <div>
  222. <img src="@/assets/public/upload/noImage.png">
  223. <div>选择图片</div>
  224. </div>
  225. </div>
  226. <input type="hidden" name="logo" v-model="ruleForm.imgSrc">
  227. </el-upload>
  228. <!-- 删除按钮,当鼠标悬浮时显示 -->
  229. <div v-if="hovering && logoUrl_1" class="delete-button" @click="handleDelete1">
  230. <i class="el-icon-delete"></i>
  231. </div>
  232. <span class="photo_tips">请添加项目LOGO,要求图片底色为透明,推荐尺寸为150*150px,不大于500K。</span>
  233. </div>
  234. <!--图片上传组件 end ------------------------------------------------------------>
  235. </div>
  236. </el-form-item>
  237. <el-form-item label="项目名称:">
  238. <el-input v-model="ruleForm.project_name" placeholder="请输入项目名称" show-word-limit></el-input>
  239. </el-form-item>
  240. <el-form-item label="项目网址:">
  241. <el-input v-model="ruleForm.project_url" placeholder="请输入项目网址" show-word-limit></el-input>
  242. </el-form-item>
  243. <!-- 公司logo -->
  244. <el-form-item label="公司logo:" :label-width="formLabelWidth" :class="['custom-form-item']"
  245. class="custom-align-right">
  246. <div class="uploaderBox">
  247. <!--图片上传组件 start ------------------------------------------------------------>
  248. <div class="avatar-upload-container" @mouseenter="hovering = true"
  249. @mouseleave="hovering = false">
  250. <!-- 上传组件 -->
  251. <el-upload class="avatar-uploader" action="#" :show-file-list="false"
  252. :before-upload="beforeAvatarUpload2">
  253. <!-- 预览图片 -->
  254. <img v-if="logoUrl_2" :src="logoUrl_2" class="avatar">
  255. <div v-else class="chooseImgDiv">
  256. <div>
  257. <img src="@/assets/public/upload/noImage.png">
  258. <div>选择图片</div>
  259. </div>
  260. </div>
  261. <input type="hidden" name="logo" v-model="ruleForm.imgSrc">
  262. </el-upload>
  263. <!-- 删除按钮,当鼠标悬浮时显示 -->
  264. <div v-if="hovering && logoUrl_2" class="delete-button" @click="handleDelete2">
  265. <i class="el-icon-delete"></i>
  266. </div>
  267. <span class="photo_tips">请添加公司LOGO,要求图片底色为透明,推荐尺寸为150*150px,不大于500K。</span>
  268. </div>
  269. <!--图片上传组件 end ------------------------------------------------------------>
  270. </div>
  271. </el-form-item>
  272. <el-form-item label="公司名称:">
  273. <el-input v-model="ruleForm.company_name" placeholder="请输入公司名称"></el-input>
  274. </el-form-item>
  275. <el-form-item label="公司网址:">
  276. <el-input v-model="ruleForm.company_url" placeholder="请输入公司网址"></el-input>
  277. </el-form-item>
  278. <el-form-item label="网站备案号:">
  279. <el-input v-model="ruleForm.icp_number" placeholder="请输入网站备案号"></el-input>
  280. </el-form-item>
  281. <el-form-item label="网安备案号:">
  282. <el-input v-model="ruleForm.record_number" placeholder="请输入网安备案号"></el-input>
  283. </el-form-item>
  284. <el-form-item label="在线客服:" class="desc">
  285. <el-input type="textarea" v-model="ruleForm.online_service" placeholder="请输入在线客服..."
  286. show-word-limit></el-input>
  287. </el-form-item>
  288. <el-form-item label="客服QQ:">
  289. <el-input v-model="ruleForm.customer_service_qq" placeholder="请输入客服QQ"></el-input>
  290. </el-form-item>
  291. <!-- 客服QQ图片 -->
  292. <el-form-item label="客服QQ图片:" :label-width="formLabelWidth" :class="['custom-form-item']"
  293. class="custom-align-right">
  294. <div class="uploaderBox">
  295. <!--图片上传组件 start ------------------------------------------------------------>
  296. <div class="avatar-upload-container" @mouseenter="hovering = true"
  297. @mouseleave="hovering = false">
  298. <!-- 上传组件 -->
  299. <el-upload class="avatar-uploader" action="#" :show-file-list="false"
  300. :before-upload="beforeAvatarUpload3">
  301. <!-- 预览图片 -->
  302. <img v-if="logoUrl_3" :src="logoUrl_3" class="avatar">
  303. <div v-else class="chooseImgDiv">
  304. <div>
  305. <img src="@/assets/public/upload/noImage.png">
  306. <div>选择图片</div>
  307. </div>
  308. </div>
  309. <input type="hidden" name="logo" v-model="ruleForm.imgSrc">
  310. </el-upload>
  311. <!-- 删除按钮,当鼠标悬浮时显示 -->
  312. <div v-if="hovering && logoUrl_3" class="delete-button" @click="handleDelete3">
  313. <i class="el-icon-delete"></i>
  314. </div>
  315. <span class="photo_tips">请添加客服QQ图片,推荐尺寸为150*150px,不大于500K。</span>
  316. </div>
  317. <!--图片上传组件 end ------------------------------------------------------------>
  318. </div>
  319. </el-form-item>
  320. <el-form-item label="通联QQ:">
  321. <el-input v-model="ruleForm.communications" placeholder="请输入通联QQ"></el-input>
  322. </el-form-item>
  323. <!-- 通联QQ图片 -->
  324. <el-form-item label="通联QQ图片:" :label-width="formLabelWidth" :class="['custom-form-item']"
  325. class="custom-align-right">
  326. <div class="uploaderBox">
  327. <!--图片上传组件 start ------------------------------------------------------------>
  328. <div class="avatar-upload-container" @mouseenter="hovering = true"
  329. @mouseleave="hovering = false">
  330. <!-- 上传组件 -->
  331. <el-upload class="avatar-uploader" action="#" :show-file-list="false"
  332. :before-upload="beforeAvatarUpload4">
  333. <!-- 预览图片 -->
  334. <img v-if="logoUrl_4" :src="logoUrl_4" class="avatar">
  335. <div v-else class="chooseImgDiv">
  336. <div>
  337. <img src="@/assets/public/upload/noImage.png">
  338. <div>选择图片</div>
  339. </div>
  340. </div>
  341. <input type="hidden" name="logo" v-model="ruleForm.imgSrc">
  342. </el-upload>
  343. <!-- 删除按钮,当鼠标悬浮时显示 -->
  344. <div v-if="hovering && logoUrl_4" class="delete-button" @click="handleDelete4">
  345. <i class="el-icon-delete"></i>
  346. </div>
  347. <span class="photo_tips">请添加通联QQ图片,推荐尺寸为150*150px,不大于500K。</span>
  348. </div>
  349. <!--图片上传组件 end ------------------------------------------------------------>
  350. </div>
  351. </el-form-item>
  352. <el-form-item label="电话客服:">
  353. <el-input v-model="ruleForm.customer_service" placeholder="请输入电话客服"></el-input>
  354. </el-form-item>
  355. </el-form>
  356. </el-row>
  357. <div slot="footer" class="dialog-footer">
  358. <div class="footerBtnbox">
  359. <el-button @click="closeWindow" type="info">取 消</el-button>
  360. <el-button type="primary" @click="editToServe" v-if="editBtn == true">修改</el-button>
  361. <el-button type="primary" @click="addToServe" v-else>提交</el-button>
  362. </div>
  363. </div>
  364. </div>
  365. <!--表格内容 end------------------------------------------------------------>
  366. </div>
  367. </template>
  368. <script>
  369. //表格标题
  370. import tableTitle from '../website/components/tableTitle.vue';
  371. //引入公用样式
  372. import '@/styles/global.less';
  373. import InputTag from '@/components/InputTag'
  374. export default {
  375. components: {
  376. InputTag,
  377. tableTitle, //表格标题
  378. },
  379. data() {
  380. const validateEmpty = (rule, value, callback) => {
  381. if (value == '') {
  382. callback(new Error('该项不能为空!'))
  383. } else {
  384. callback()
  385. }
  386. }
  387. const validateColumn = (rule, value, callback) => {
  388. if (value.length == 0) {
  389. callback(new Error('该项不能为空!'))
  390. } else {
  391. callback()
  392. }
  393. }
  394. return {
  395. webSite_id: '', // 网站id
  396. tags: [], // 标签数组
  397. tableDivTitle: "网站信息",
  398. tableDivTitle1: "底部信息",
  399. num: 1,
  400. checked: false,
  401. iconSrc: '',
  402. data: '',
  403. activeid: '', //当前被选中的id
  404. formLabelWidth: '', //广告示例图相关
  405. ruleId: '',
  406. source: '',
  407. editBtn: false,//当显示编辑按钮的时候,就不显示提交
  408. // 网站信息
  409. //3.弹出框中的表单设置 start ------------------------------------------------------------>
  410. //3.1 表单收集的数据
  411. form: {
  412. website_name: '',//需要提交的网站名称
  413. website_url: [//需要绑定的网站地址
  414. { url: "", show: true },
  415. { url: "", show: false },
  416. { url: "", show: false },
  417. { url: "", show: false },
  418. { url: "", show: false }
  419. ],
  420. website_column_arr_id: [],//需要提交的上级网系 数组
  421. //city_arr_id:[0],//需要提交的城市id
  422. logo: "",//logo地址 提交文件换取地址
  423. title: "",//需要提交的网站标题
  424. keywords: "",//需要提交的网站标题
  425. description: "",//需要提交的网站描述
  426. suffix: "",//需要提交的网站后缀
  427. ad_key: "",//需要提交的网站名称缩写
  428. //template_id:""//选择的网站皮肤
  429. },
  430. //3.2 表单验证规则
  431. formRules: {
  432. //网站名称不能为空
  433. website_name: [{ required: true, trigger: 'blur', message: "该项不能为空!" }],
  434. //网站地址不能为空
  435. 'website_url[0].url': [
  436. { required: true, message: '至少要填写一个网站地址!', trigger: 'blur' },
  437. // { validator: this.validateWebsiteUrl, trigger: 'blur' }
  438. ],
  439. //网系不能为空 注意,因为是select框,只有提交的时候才会验证
  440. website_column_arr_id: [{ type: 'array', required: true, trigger: 'change', message: '必须选择一个网系!' }],
  441. //网站标题,关键词,描述不能为空
  442. //city_arr_id:[{required:true,trigger:'blur',validator:validateColumn}],
  443. title: [{ required: true, trigger: 'blur', message: "该项不能为空! " }],
  444. keywords: [{ required: true, trigger: 'blur', message: "该项不能为空! " }],
  445. description: [{ required: true, trigger: 'blur', message: "该项不能为空! " }],
  446. logo: [{ required: true, trigger: 'blur', message: "该项不能为空!" }],
  447. logoUrl: [{ required: true, trigger: 'blur', message: "该项不能为空!" }],
  448. suffix: [{ required: true, trigger: 'blur', message: "该项不能为空!" }],
  449. //template_id:[{required:true,trigger:'blur',validator:validateEmpty}],
  450. ad_key: [{ required: true, trigger: 'blur', message: "该项不能为空!" }],
  451. },
  452. //3.3 通过api获的的数据 弹窗
  453. website_column_arr: [],//api获得的网系列表
  454. //3.4 上传logo图片
  455. logoUrl: '',
  456. logoUrl_1: '',
  457. logoUrl_2: '',
  458. logoUrl_3: '',
  459. logoUrl_4: '',
  460. hovering: false, // 鼠标悬浮状态 悬浮时显示删除
  461. //3.5 模板列表
  462. TemplateList: [],
  463. getTemplateData: {
  464. template_class_id: 1,//模板类型,暂时为1
  465. page: 1,//当前是第几页
  466. pageSize: 9,//请求多少条
  467. },
  468. TemplateallCount: 0,//总条数
  469. TemplateName: "未选择模板..",//选择的模板名称
  470. TemplateImg: "",//选择的模板图片
  471. //弹出框中的表单设置 end ------------------------------------------------------------>
  472. ruleForm: {
  473. website_id: '', // 网站id
  474. statement: '', // 网站声明
  475. organizer: '', // 主办单位
  476. statistics: '', // cnzz统计
  477. copyright_information: '', // 版权信息
  478. contact_number: '', // 联系电话
  479. email: '', // 电子邮箱
  480. company_address: '', // 公司地址
  481. project_logo: '', // 项目logo
  482. project_name: '', // 项目名称
  483. project_url: '', // 项目网址
  484. company_logo: '', // 公司logo
  485. company_name: '', // 公司名称
  486. company_url: '', // 公司网址
  487. icp_number: '', // 网站备案号
  488. record_number: '', // 网安备案号
  489. online_service: '', // 在线客服
  490. customer_service_qq: '', // 客服QQ
  491. service_qq_img: '', // 客服QQ图片
  492. communications: '', // 通联QQ
  493. communications_img: '', // 通联QQ图片
  494. customer_service: '', // 电话客服
  495. },
  496. rules: {},
  497. //1.4图片上传
  498. imgUrl: "",//在页面上显示缩略图
  499. //获取父级导航池
  500. parentKey: 0,//获取父级导航
  501. parentData: {
  502. checkStrictly: true,
  503. lazy: true,
  504. async lazyLoad(node, resolve) {
  505. const { level, data } = node;
  506. if (data && data.children && data.children.length !== 0) {
  507. return resolve(node)
  508. }
  509. console.log(level)
  510. let parentId = level == 0 ? 0 : data.value
  511. let parames = {
  512. 'pid': parentId
  513. }
  514. self.$store.dispatch('pool/categoryList', parames).then(res => {
  515. if (res.data) {
  516. const nodes = res.data.map(item => ({
  517. value: item.id,
  518. label: item.name,
  519. leaf: level >= 3,
  520. children: []
  521. }))
  522. resolve(nodes)
  523. }
  524. })
  525. }
  526. },
  527. }
  528. },
  529. methods: {
  530. //关键词标签
  531. updateTags(newTags) {
  532. // this.foem.seo_keywords = newTags;
  533. this.tags = newTags;
  534. this.form.keywords = newTags.join(',');
  535. },
  536. //设置图片格式 __网站LOGO__
  537. beforeAvatarUpload(file) {
  538. const isJPG = file.type === 'image/jpeg';
  539. const isPNG = file.type === 'image/png';
  540. const isLt2M = file.size / 1024 / 1024 < 2;
  541. if (!isJPG && !isPNG) {
  542. this.$message.error('上传缩略图只能是 JPG 或 PNG 格式!');
  543. return false;
  544. }
  545. if (!isLt2M) {
  546. this.$message.error('上传缩略图大小不能超过 2MB!');
  547. return false;
  548. }
  549. const formData = new FormData();
  550. formData.append('file', file);
  551. this.$store.dispatch('pool/uploadFile', formData).then(res => {
  552. this.logoUrl = res.data.imgUrl;//显示缩略图
  553. this.form.logo = res.data.imgUrl;//提供表单地址
  554. console.log('11111', res.data.imgUrl)
  555. console.log('22222', this.ruleForm.logo);
  556. }).catch(() => {
  557. this.$message({
  558. type: 'info',
  559. message: '网络错误,请重试!'
  560. });
  561. })
  562. // 阻止默认的上传行为
  563. return false;
  564. },
  565. //项目logo
  566. beforeAvatarUpload1(file) {
  567. const isJPG = file.type === 'image/jpeg';
  568. const isPNG = file.type === 'image/png';
  569. const isLt2M = file.size / 1024 / 1024 < 2;
  570. if (!isJPG && !isPNG) {
  571. this.$message.error('上传缩略图只能是 JPG 或 PNG 格式!');
  572. return false;
  573. }
  574. if (!isLt2M) {
  575. this.$message.error('上传缩略图大小不能超过 2MB!');
  576. return false;
  577. }
  578. const formData = new FormData();
  579. formData.append('file', file);
  580. this.$store.dispatch('pool/uploadFile', formData).then(res => {
  581. this.logoUrl_1 = res.data.imgUrl;//显示缩略图
  582. this.ruleForm.project_logo = res.data.imgUrl;//提供表单地址
  583. console.log(res.data.imgUrl)
  584. }).catch(() => {
  585. this.$message({
  586. type: 'info',
  587. message: '网络错误,请重试!'
  588. });
  589. })
  590. // 阻止默认的上传行为
  591. return false;
  592. },
  593. //公司logo
  594. beforeAvatarUpload2(file) {
  595. const isJPG = file.type === 'image/jpeg';
  596. const isPNG = file.type === 'image/png';
  597. const isLt2M = file.size / 1024 / 1024 < 2;
  598. if (!isJPG && !isPNG) {
  599. this.$message.error('上传缩略图只能是 JPG 或 PNG 格式!');
  600. return false;
  601. }
  602. if (!isLt2M) {
  603. this.$message.error('上传缩略图大小不能超过 2MB!');
  604. return false;
  605. }
  606. const formData = new FormData();
  607. formData.append('file', file);
  608. this.$store.dispatch('pool/uploadFile', formData).then(res => {
  609. this.logoUrl_2 = res.data.imgUrl;//显示缩略图
  610. this.ruleForm.company_logo = res.data.imgUrl;//提供表单地址
  611. console.log(res.data.imgUrl)
  612. }).catch(() => {
  613. this.$message({
  614. type: 'info',
  615. message: '网络错误,请重试!'
  616. });
  617. })
  618. // 阻止默认的上传行为
  619. return false;
  620. },
  621. //客服qq图片
  622. beforeAvatarUpload3(file) {
  623. const isJPG = file.type === 'image/jpeg';
  624. const isPNG = file.type === 'image/png';
  625. const isLt2M = file.size / 1024 / 1024 < 2;
  626. if (!isJPG && !isPNG) {
  627. this.$message.error('上传缩略图只能是 JPG 或 PNG 格式!');
  628. return false;
  629. }
  630. if (!isLt2M) {
  631. this.$message.error('上传缩略图大小不能超过 2MB!');
  632. return false;
  633. }
  634. const formData = new FormData();
  635. formData.append('file', file);
  636. this.$store.dispatch('pool/uploadFile', formData).then(res => {
  637. this.logoUrl_3 = res.data.imgUrl;//显示缩略图
  638. this.ruleForm.service_qq_img = res.data.imgUrl;//提供表单地址
  639. console.log(res.data.imgUrl)
  640. }).catch(() => {
  641. this.$message({
  642. type: 'info',
  643. message: '网络错误,请重试!'
  644. });
  645. })
  646. // 阻止默认的上传行为
  647. return false;
  648. },
  649. //通联qq图片
  650. beforeAvatarUpload4(file) {
  651. const isJPG = file.type === 'image/jpeg';
  652. const isPNG = file.type === 'image/png';
  653. const isLt2M = file.size / 1024 / 1024 < 2;
  654. if (!isJPG && !isPNG) {
  655. this.$message.error('上传缩略图只能是 JPG 或 PNG 格式!');
  656. return false;
  657. }
  658. if (!isLt2M) {
  659. this.$message.error('上传缩略图大小不能超过 2MB!');
  660. return false;
  661. }
  662. const formData = new FormData();
  663. formData.append('file', file);
  664. this.$store.dispatch('pool/uploadFile', formData).then(res => {
  665. this.logoUrl_4 = res.data.imgUrl;//显示缩略图
  666. this.ruleForm.communications_img = res.data.imgUrl;//提供表单地址
  667. console.log(res.data.imgUrl)
  668. }).catch(() => {
  669. this.$message({
  670. type: 'info',
  671. message: '网络错误,请重试!'
  672. });
  673. })
  674. // 阻止默认的上传行为
  675. return false;
  676. },
  677. handleDelete() {
  678. // 删除图片
  679. this.logoUrl = ''; // 清空图片 URL
  680. },
  681. handleDelete1() {
  682. // 删除图片
  683. this.logoUrl_1 = ''; // 清空图片 URL
  684. },
  685. handleDelete2() {
  686. // 删除图片
  687. this.logoUrl_2 = ''; // 清空图片 URL
  688. },
  689. handleDelete3() {
  690. // 删除图片
  691. this.logoUrl_3 = ''; // 清空图片 URL
  692. },
  693. handleDelete4() {
  694. // 删除图片
  695. this.logoUrl_4 = ''; // 清空图片 URL
  696. },
  697. //取消添加或编辑
  698. goCancel() {
  699. this.$message({
  700. message: "已取消修改",
  701. type: "error"
  702. })
  703. this.$router.push(`/webCrawlerList?id=${this.ruleId}&source=${this.source}`)
  704. },
  705. //浏览量
  706. handleChange(value) {
  707. console.log(value);
  708. this.ruleForm.count = value
  709. },
  710. //2.2 关闭弹出框
  711. closeWindow() {
  712. this.$router.push({
  713. path: '/webSite',
  714. });
  715. this.clearToServe();
  716. },
  717. //2.3 重置窗口内容
  718. clearToServe() {
  719. //还原表单
  720. this.form.website_name = "";
  721. this.form.website_column_arr_id = "";
  722. this.form.website_url = [
  723. { url: "", show: true },
  724. { url: "", show: false },
  725. { url: "", show: false },
  726. { url: "", show: false },
  727. { url: "", show: false }
  728. ];
  729. //this.form.city_arr_id = [0];
  730. this.form.logo = "";
  731. this.form.title = "";
  732. this.form.keywords = "";
  733. this.form.description = "";
  734. this.form.template_id = "";
  735. //还原logo缩略图
  736. this.logoUrl = "";
  737. //还原模板
  738. this.TemplateList = [];
  739. this.getTemplateData.page = 1;
  740. this.TemplateImg = "";
  741. this.TemplateallCount = 0;
  742. this.form.suffix = "";
  743. this.form.keywords = "";
  744. this.tags = [];
  745. this.form.ad_key = ""; // 网站名称缩写
  746. },
  747. //3.1 获得所有网系
  748. getwebsiteColumn() {
  749. let that = this;
  750. this.$store.dispatch('pool/getwebsiteColumn').then(res => {
  751. let arrData = this.transformData(res.data)
  752. this.website_column_arr = arrData;
  753. })
  754. },
  755. transformData(arrData) {
  756. let that = this;
  757. return arrData.map(item => {
  758. // 创建一个新的对象,替换键名
  759. let newItem = {
  760. label: item.column_name,
  761. value: item.id,
  762. // 保留其他不需要改动的字段
  763. pid: item.pid,
  764. sort: item.sort,
  765. remark: item.remark,
  766. column_arr_id: item.column_arr_id,
  767. updated_at: item.updated_at,
  768. created_at: item.created_at,
  769. };
  770. // 如果有 children,则递归处理 children 数组
  771. if (item.children && item.children.length > 0) {
  772. newItem.children = that.transformData(item.children);
  773. }
  774. return newItem;
  775. });
  776. },
  777. //3.3 添加一条网站地址
  778. addUrlInput(key) {
  779. this.form.website_url[key].show = true;
  780. },
  781. //3.4 删除一条网站地址
  782. deleteUrlInput(key) {
  783. this.form.website_url[key].show = false;
  784. this.form.website_url[key].url = "";
  785. },
  786. //3.7 提交表单
  787. addToServe() {
  788. console.log('2222', this.form)
  789. //先进行验证
  790. this.$refs.form.validate(valid => {
  791. if (valid) {
  792. //提交之前把域名列表转换成数组
  793. let webSiteArray = [];
  794. for (let item of this.form.website_url) {
  795. if (item.url != "") {
  796. webSiteArray.push(item.url)
  797. }
  798. }
  799. //循环完毕 重置提交的url
  800. this.form.website_url = webSiteArray;
  801. //console.log(webSiteArray)
  802. console.log(this.form)
  803. //提交表单
  804. this.$store.dispatch('pool/addWebsite', this.form).then(res => {
  805. // console.log("55555555555555555",res.code == 200)
  806. if (res.code == 200) {
  807. // console.log(333);
  808. //汇报结果
  809. // this.$message({
  810. // type: 'success',
  811. // message: '已成功添加网站!'
  812. // });
  813. this.ruleForm.website_id = res.data.id;
  814. this.getfootInfo()
  815. //重新获取表单
  816. // this.getData();
  817. //清空并退出
  818. this.closeWindow();
  819. } else {
  820. this.$message({
  821. type: 'error',
  822. message: '添加失败!请检查网络!'
  823. });
  824. //清空并退出
  825. this.closeWindow();
  826. }
  827. }).catch(() => {
  828. this.$message({
  829. type: 'warning',
  830. message: '网络错误,请重试!'
  831. });
  832. })
  833. }
  834. })
  835. },
  836. //3.8 检测网站名称是否存在
  837. checkWebsiteName(name,num) {
  838. let data = {}
  839. if(num == 0){
  840. data = {
  841. website_name: name
  842. }
  843. }else{
  844. data = {
  845. ad_key: name,
  846. }
  847. }
  848. // console.log("gjsrolighjorsihg",data)
  849. if (this.editId != "") {
  850. data.id = this.editId;
  851. }
  852. this.$store.dispatch('pool/checkWebsiteName', data).then(res => {
  853. if (res.code == 200) {
  854. this.form.website_name = "";
  855. this.$message({
  856. type: 'warning',
  857. message: '网站名称已存在!请重新输入!'
  858. });
  859. }
  860. })
  861. },
  862. //3.9 检测网站url是否存在
  863. checkWebsiteUrl(url, num) {
  864. let data = {
  865. website_url: url
  866. }
  867. if (this.editId != "") {
  868. data.id = this.editId;
  869. }
  870. this.$store.dispatch('pool/checkWebsiteUrl', data).then(res => {
  871. if (res.code == 200) {
  872. if (num == 0) { this.form.website_url[0].url = "" }
  873. if (num == 1) { this.form.website_url[1].url = "" }
  874. if (num == 2) { this.form.website_url[2].url = "" }
  875. if (num == 3) { this.form.website_url[3].url = "" }
  876. if (num == 4) { this.form.website_url[4].url = "" }
  877. this.$message({
  878. type: 'warning',
  879. message: '当前网站已经被占用,请重新输入!'
  880. });
  881. }
  882. })
  883. },
  884. //添加底部信息接口
  885. getfootInfo() {
  886. this.$store.dispatch('pool/addWebFootInfo', this.ruleForm).then(res => {
  887. console.log('00001', res);
  888. if (res.code == 200) {
  889. this.$message({
  890. message: '添加成功',
  891. type: 'success'
  892. })
  893. this.$router.push({
  894. path: '/webSite'
  895. })
  896. } else {
  897. this.$message({
  898. message: '添加失败',
  899. type: 'error'
  900. })
  901. }
  902. })
  903. },
  904. //5.2修改表单
  905. editToServe() {
  906. //执行验证
  907. this.$refs.form.validate(valid => {
  908. if (valid) {
  909. //提交之前把域名列表转换成数组
  910. let webSiteArray = [];
  911. for (let item of this.form.website_url) {
  912. if (item.url != "") {
  913. webSiteArray.push(item.url)
  914. }
  915. }
  916. //循环完毕 重置提交的url
  917. this.form.website_url = webSiteArray;
  918. this.form.id = this.activeid;
  919. //提交表单
  920. this.$store.dispatch('pool/updateWebsite', this.form).then(res => {
  921. console.log(res.code)
  922. if (res.code == 200) {
  923. //修改底部信息
  924. this.editFootInfo()
  925. //清空并退出
  926. // this.closeWindow();
  927. //重新请求列表
  928. // this.getData();
  929. } else {
  930. this.$message.error(res.message)
  931. //清空并退出
  932. // this.closeWindow();
  933. }
  934. })
  935. // .catch(() => {
  936. // this.$message({
  937. // type: 'warning',
  938. // message: '网络错误,请重试!'
  939. // });
  940. // })
  941. }
  942. })
  943. },
  944. //5.3 修改底部信息
  945. editFootInfo() {
  946. this.ruleForm.website_id = this.activeid;
  947. this.$store.dispatch('pool/upWebFootInfo', this.ruleForm).then(res => {
  948. if (res.code == 200) {
  949. this.$message({
  950. message: '修改成功',
  951. type: 'success'
  952. })
  953. this.$router.push({ path: '/webSite' })
  954. } else {
  955. this.$message({
  956. message: '修改失败',
  957. type: 'error'
  958. })
  959. this.getfootInfo()
  960. }
  961. })
  962. },
  963. // 1.5 获取底部信息详情接口
  964. // this.ruleForm.website_id = this.activeid;
  965. getfootInfo() {
  966. this.ruleForm.website_id = this.activeid;
  967. this.$store.dispatch('pool/getWebFootInfo', { website_id: this.activeid }).then(res => {
  968. console.log('1111', res);
  969. if (res.code == 200) {
  970. this.ruleForm.statement = res.data.statement;
  971. this.ruleForm.organizer = res.data.organizer;
  972. this.ruleForm.statistics = res.data.statistics;
  973. this.ruleForm.copyright_information = res.data.copyright_information;
  974. this.ruleForm.contact_number = res.data.contact_number;
  975. this.ruleForm.email = res.data.email;
  976. this.ruleForm.company_address = res.data.company_address;
  977. this.ruleForm.project_logo = res.data.project_logo;
  978. this.logoUrl_1 = res.data.project_logo;
  979. this.ruleForm.project_name = res.data.project_name;
  980. this.ruleForm.project_url = res.data.project_url;
  981. this.ruleForm.company_logo = res.data.company_logo;
  982. this.logoUrl_2 = res.data.company_logo;
  983. this.ruleForm.company_name = res.data.company_name;
  984. this.ruleForm.company_url = res.data.company_url;
  985. this.ruleForm.icp_number = res.data.icp_number;
  986. this.ruleForm.record_number = res.data.record_number;
  987. this.ruleForm.customer_service = res.data.customer_service;
  988. this.ruleForm.customer_service_qq = res.data.customer_service_qq;
  989. this.ruleForm.service_qq_img = res.data.service_qq_img;
  990. this.logoUrl_3 = res.data.service_qq_img;
  991. this.ruleForm.communications = res.data.communications;
  992. this.ruleForm.communications_img = res.data.communications_img;
  993. this.logoUrl_4 = res.data.communications_img;
  994. this.ruleForm.online_service = res.data.online_service;
  995. }
  996. })
  997. }
  998. },
  999. mounted() {
  1000. // 1.1 获取所有网系
  1001. this.getwebsiteColumn()
  1002. // 1.2 获取到的被编辑的id
  1003. this.activeid = this.$route.query.id
  1004. // console.log("1111", this.$route.query.id);
  1005. // 1.3 通过id判断当前是添加还是编辑
  1006. if (this.activeid) {
  1007. this.editBtn = true;//显示编辑按钮
  1008. // 1.4 获取网站详情
  1009. this.$store.dispatch('pool/getWebsiteInfo', { id: this.activeid }).then(res => {
  1010. //清除错误状态
  1011. // this.$refs.form.clearValidate();
  1012. console.log(res)
  1013. //回显网站名称
  1014. this.form.website_name = res.data.website_name;
  1015. //回显星系
  1016. this.form.website_column_arr_id = res.data.website_column_arr_id;
  1017. //回显logo
  1018. this.form.logo = res.data.logo;
  1019. this.logoUrl = res.data.logo;
  1020. //回显url
  1021. let that = this;
  1022. if (res.data.website_url == null) {
  1023. //为null什么都不执行
  1024. } else {
  1025. for (let index in res.data.website_url) {
  1026. this.form.website_url[index].url = res.data.website_url[index];
  1027. this.form.website_url[index].show = true;
  1028. }
  1029. }
  1030. //回显id
  1031. //存放城市id
  1032. //this.form.city_arr_id = res.data.city_arr_id;
  1033. //当cascaderKey的值改变的时候 级联选择器会重置里面的内容
  1034. //this.cascaderKey += 1;
  1035. //回显网站标题,描述,关键词
  1036. console.log(res.data.title, res.data.keywords, res.data.description)
  1037. this.form.title = res.data.title;
  1038. this.form.keywords = res.data.keywords;
  1039. this.tags = res.data.keywords ? res.data.keywords.split(',') : [];
  1040. this.form.description = res.data.description;
  1041. this.form.suffix = res.data.suffix;
  1042. this.form.ad_key = res.data.ad_key; // 网站名称缩写
  1043. //回显模板信息
  1044. // this.form.template_id = res.data.template_id;
  1045. // this.TemplateName = res.data.template_name;
  1046. // this.TemplateImg = JSON.parse(res.data.template_img)[0];
  1047. })
  1048. this.getfootInfo()
  1049. }
  1050. }
  1051. }
  1052. </script>
  1053. <style scoped lang="less">
  1054. p {
  1055. padding: 0;
  1056. margin: 0;
  1057. }
  1058. .layerBox {
  1059. padding: 30px 20px;
  1060. position: relative;
  1061. .listBtnBox {
  1062. justify-content: left;
  1063. }
  1064. // 表单内容
  1065. .formContent {
  1066. background-color: #f5f7fb;
  1067. padding: 30px 25px;
  1068. position: relative;
  1069. margin-bottom: 20px;
  1070. // 顶部引用外链
  1071. .links {
  1072. position: absolute;
  1073. top: 37px;
  1074. right: 97px;
  1075. }
  1076. //底部免责声明提示文字
  1077. .tips {
  1078. margin: 0 auto;
  1079. font-size: 13px;
  1080. color: #666666;
  1081. }
  1082. // 图片上传提示文字
  1083. .imgTips {
  1084. color: #8B8D97;
  1085. font-size: 14px;
  1086. }
  1087. // 资讯关键词 和 资讯描述 的 文字提示
  1088. .keywords,
  1089. .desc {
  1090. position: relative;
  1091. i {
  1092. position: absolute;
  1093. top: 0;
  1094. left: -15px;
  1095. }
  1096. }
  1097. // 文字提示用到的图标的颜色
  1098. .el-icon-warning {
  1099. color: #a9a9a9;
  1100. }
  1101. // input框右下角数字颜色
  1102. ::v-deep .el-input__count {
  1103. color: #999;
  1104. }
  1105. // 多行文本框的高度
  1106. ::v-deep .el-textarea__inner {
  1107. height: 100px;
  1108. }
  1109. // 下拉框
  1110. ::v-deep .el-select {
  1111. width: 100%;
  1112. display: inline-block;
  1113. position: relative;
  1114. }
  1115. }
  1116. //按钮
  1117. .btn {
  1118. width: 440px;
  1119. margin: 50px auto 20px;
  1120. button {
  1121. width: 180px;
  1122. height: 58px;
  1123. border-radius: 12px;
  1124. border: none;
  1125. font-size: 20px;
  1126. }
  1127. .cancel {
  1128. color: #333;
  1129. background-color: #f5f7fb;
  1130. border: 2px solid #e3e8fa;
  1131. margin-right: 80px;
  1132. }
  1133. .sure {
  1134. background-color: #5570f1;
  1135. color: #fff;
  1136. }
  1137. }
  1138. //缩略图
  1139. .uploaderBox {
  1140. .avatar {
  1141. width: 140px;
  1142. height: auto;
  1143. }
  1144. .chooseImgDiv {
  1145. background-color: #fff;
  1146. img {
  1147. display: inline-block;
  1148. }
  1149. }
  1150. }
  1151. }
  1152. /*表单特殊样式 start------------------------------------------------------------>*/
  1153. //1.1 模板表单
  1154. .webSite {
  1155. background: #f0f2f5;
  1156. width: 200px;
  1157. height: 300px;
  1158. line-height: 300px;
  1159. text-align: center;
  1160. margin: 0 auto;
  1161. }
  1162. .webSiteTemplate {
  1163. display: flex;
  1164. .webSiteTitle {
  1165. width: 120px;
  1166. line-height: 140px;
  1167. text-align: right;
  1168. padding-right: 12px;
  1169. font-weight: bold;
  1170. }
  1171. }
  1172. .webSiteBtn {
  1173. padding: 50px 0 0 0;
  1174. text-align: center;
  1175. }
  1176. .formLabelFloatBox {
  1177. position: relative;
  1178. .formLabeladdIcon {
  1179. position: absolute;
  1180. right: 45px;
  1181. top: 5px;
  1182. width: 38px;
  1183. height: 24px;
  1184. }
  1185. .formLabelDelIcon {
  1186. position: absolute;
  1187. right: 5px;
  1188. top: 5px;
  1189. width: 38px;
  1190. height: 24px;
  1191. }
  1192. }
  1193. .templateBox {
  1194. display: flex;
  1195. .templateListClass {
  1196. margin-right: 20px;
  1197. .templateListClassItem {
  1198. width: 120px;
  1199. height: 38px;
  1200. text-align: center;
  1201. line-height: 38px;
  1202. border: 1px solid #E3E8FA;
  1203. background: #F5F7FB;
  1204. margin-bottom: 10px;
  1205. border-radius: 8px;
  1206. cursor: pointer;
  1207. }
  1208. }
  1209. .templateListBox {
  1210. box-sizing: border-box;
  1211. width: 100%;
  1212. display: flex;
  1213. flex-wrap: wrap;
  1214. .templateList {
  1215. margin-right: 10px;
  1216. text-align: center;
  1217. font-size: 12px;
  1218. margin-bottom: 10px;
  1219. border: 1px solid #fff;
  1220. padding: 5px;
  1221. .templateImg {
  1222. width: 129px;
  1223. height: 157px;
  1224. border-radius: 8px;
  1225. cursor: pointer;
  1226. }
  1227. }
  1228. }
  1229. }
  1230. //1.1 模板分页
  1231. .pageNumBox {
  1232. text-align: center;
  1233. padding-top: 20px;
  1234. }
  1235. .webSiteTemplateName {
  1236. margin-left: 10px;
  1237. line-height: 36px;
  1238. }
  1239. //1.2 模板缩略图
  1240. .webSiteTemplateImg {
  1241. width: 140px;
  1242. height: 140px;
  1243. cursor: pointer;
  1244. display: flex;
  1245. align-items: center;
  1246. justify-content: center;
  1247. border-radius: 12px;
  1248. border: 1px solid #E1E2E9;
  1249. .selectWebSiteTemplateImg {
  1250. width: 140px;
  1251. height: 140px;
  1252. border-radius: 12px;
  1253. display: block;
  1254. cursor: pointer;
  1255. }
  1256. .webSiteTemplateText {
  1257. color: #5570F1;
  1258. height: 36px;
  1259. line-height: 36px;
  1260. text-align: center;
  1261. }
  1262. img {
  1263. display: block;
  1264. }
  1265. }
  1266. /*表单样式 end------------------------------------------------------------>*/
  1267. //执行v-deep穿透scope选择器 start------------------------------------------------------------>*/
  1268. ::v-deep .custom-form-item>.el-form-item__label {
  1269. line-height: 140px !important;
  1270. }
  1271. ::v-deep .custom-textarea .el-textarea__inner {
  1272. resize: none;
  1273. /* 禁止用户拖拽调整大小 */
  1274. }
  1275. ::v-deep .custom-align-right .el-form-item__label {
  1276. text-align: right;
  1277. /* 设置标签文字右对齐 */
  1278. }
  1279. ::v-deep .custom-align-right.key {
  1280. text-align: right;
  1281. background-color: red;
  1282. /* 设置标签文字右对齐 */
  1283. }
  1284. //该项不能为空几个字的位置
  1285. ::v-deep .el-form-item__error {
  1286. color: #ff4949;
  1287. font-size: 12px;
  1288. line-height: 1;
  1289. padding-top: 4px;
  1290. position: relative;
  1291. // top: 22%;
  1292. // left: 93%;
  1293. }
  1294. //输入框距离底部的距离
  1295. ::v-deep .el-form-item {
  1296. margin-bottom: 5px;
  1297. }
  1298. //图片提示文字样式
  1299. .photo_tips {
  1300. // font-size: 12px;
  1301. color: #999;
  1302. }
  1303. //执行v-deep穿透scope选择器 end------------------------------------------------------------>*/</style>