addWebsite.vue 60 KB

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