index.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627
  1. <template>
  2. <div>
  3. <div class="userInfoBox">
  4. <tableTitle :name="tableDivTitle"/>
  5. <div class="userInfoTabs">
  6. <el-tabs :tab-position="tabPosition" style="height:550px" class="demo-tabs">
  7. <el-tab-pane label="用户信息">
  8. <el-form :model="infoform" ref="infoform" :rules="infoFormRules" autocomplete="off" label-position="left">
  9. <div class="infoBox">
  10. <div>
  11. <!-- <img :src="user.avatar" class="avatar"> -->
  12. <el-form-item label="头像:" prop="avatar" :label-width="formLabelWidth" :class="['custom-form-item']" class="custom-align-right">
  13. <div class="uploaderBox">
  14. <!--图片上传组件 start ------------------------------------------------------------>
  15. <div class="avatar-upload-container" @mouseenter="hovering = true" @mouseleave="hovering = false">
  16. <!-- 上传组件 -->
  17. <el-upload
  18. class="avatar-uploader"
  19. action="#"
  20. :show-file-list="false"
  21. :before-upload="beforeAvatarUpload"
  22. >
  23. <!-- 预览图片 -->
  24. <img v-if="avatarUrl" :src="avatarUrl" class="avatar">
  25. <!-- 上传图标 -->
  26. <!-- <i v-else class="el-icon-plus avatar-uploader-icon"></i> -->
  27. <div v-else class="chooseImgDiv">
  28. <div>
  29. <img src="@/assets/public/upload/noImage.png">
  30. <div>选择图片</div>
  31. </div>
  32. </div>
  33. <input type="hidden" v-model="infoform.avatar">
  34. </el-upload>
  35. <!-- 删除按钮,当鼠标悬浮时显示 -->
  36. <div v-if="hovering && avatarUrl" class="delete-button" @click="handleDelete">
  37. <i class="el-icon-delete"></i>
  38. </div>
  39. </div>
  40. <!--图片上传组件 end ------------------------------------------------------------>
  41. </div>
  42. </el-form-item>
  43. <el-form-item label="昵称:" :label-width="formLabelWidth" prop="nickname" class="custom-align-right">
  44. <el-input v-model="infoform.nickname" autocomplete="off" placeholder="请输入用户昵称.."></el-input>
  45. </el-form-item>
  46. </div>
  47. </div>
  48. </el-form>
  49. <div class="infoBtnBox">
  50. <el-button type="primary" @click="changeInfo">保存</el-button>
  51. </div>
  52. </el-tab-pane>
  53. <el-tab-pane label="修改密码">
  54. <el-form ref="form" :model="form" :rules="loginRules" class="login-form" autocomplete="on" label-position="left">
  55. <!--现有密码 start------------------------------------------>
  56. <el-tooltip v-model="capsTooltip1" content="大小写已开启!" placement="right" manual>
  57. <div class="PasswordBox">
  58. <div class="PasswordTitle">现有密码:</div>
  59. <el-form-item prop="password">
  60. <div class="PasswordBody">
  61. <el-input
  62. :key="passwordType1"
  63. ref="password1"
  64. v-model="form.password"
  65. :type="passwordType1"
  66. placeholder="请输入密码"
  67. name="password"
  68. tabindex="2"
  69. autocomplete="off"
  70. @blur="capsTooltip1 = false"
  71. />
  72. <span class="show-pwd" @click="showPwd(1)">
  73. <svg-icon :icon-class="passwordType1 === 'password' ? 'eye' : 'eye-open'" />
  74. </span>
  75. </div>
  76. </el-form-item>
  77. </div>
  78. </el-tooltip>
  79. <!--现有密码 end------------------------------------------>
  80. <!--新密码 start------------------------------------------>
  81. <el-tooltip v-model="capsTooltip2" content="大小写已开启!" placement="right" manual>
  82. <div class="PasswordBox">
  83. <div class="PasswordTitle">新密码:</div>
  84. <el-form-item prop="new_password">
  85. <div class="PasswordBody">
  86. <el-input
  87. :key="passwordType2"
  88. ref="password2"
  89. v-model="form.new_password"
  90. :type="passwordType2"
  91. placeholder="请输入密码"
  92. name="password"
  93. tabindex="2"
  94. autocomplete="off"
  95. @blur="capsTooltip2 = false"
  96. />
  97. <span class="show-pwd" @click="showPwd(2)">
  98. <svg-icon :icon-class="passwordType2 === 'password' ? 'eye' : 'eye-open'" />
  99. </span>
  100. </div>
  101. </el-form-item>
  102. </div>
  103. </el-tooltip>
  104. <!--新密码 end------------------------------------------>
  105. <!--新密码 start------------------------------------------>
  106. <el-tooltip v-model="capsTooltip3" content="大小写已开启!" placement="right" manual>
  107. <div class="PasswordBox">
  108. <div class="PasswordTitle">确认新密码:</div>
  109. <el-form-item prop="new_password1">
  110. <div class="PasswordBody">
  111. <el-input
  112. :key="passwordType3"
  113. ref="password3"
  114. v-model="form.new_password1"
  115. :type="passwordType3"
  116. placeholder="请输入密码"
  117. name="password"
  118. tabindex="2"
  119. autocomplete="off"
  120. @blur="capsTooltip3 = false"
  121. />
  122. <span class="show-pwd" @click="showPwd(3)">
  123. <svg-icon :icon-class="passwordType3 === 'password' ? 'eye' : 'eye-open'" />
  124. </span>
  125. </div>
  126. </el-form-item>
  127. </div>
  128. </el-tooltip>
  129. <!--新密码 end------------------------------------------>
  130. </el-form>
  131. <div class="infoBtnBox">
  132. <!-- <el-button type="info" @click="clearInput">重置</el-button> -->
  133. <el-button type="primary" @click="changePassword">保存</el-button>
  134. </div>
  135. </el-tab-pane>
  136. <!--企业信息 start------------------------------------------>
  137. <el-tab-pane label="企业信息" v-if="creatNews_user_type == '3'">
  138. <el-form :model="companyform" ref="companyform" :rules="companyRules" autocomplete="off" label-position="left">
  139. <div class="infoBox">
  140. <div>
  141. <!-- <img :src="user.avatar" class="avatar"> -->
  142. <el-form-item label="公司名称:" :label-width="formLabelWidth" prop="business_name" class="custom-align-right">
  143. <el-input v-model="companyform.business_name" autocomplete="off" placeholder="请输入公司名称"></el-input>
  144. </el-form-item>
  145. <el-form-item label="所属行业:" :label-width="formLabelWidth" prop="company_hy_id" class="custom-align-right">
  146. <el-select v-model="companyform.company_hy_id" clearable placeholder="请输入所属行业" >
  147. <el-option v-for="item in company_hy_id" :key="item.hyid" :label="item.hyname" :value="item.hyid">
  148. </el-option>
  149. </el-select>
  150. </el-form-item>
  151. <el-form-item label="公司规模:" :label-width="formLabelWidth" prop="company_size" class="custom-align-right">
  152. <el-select v-model="companyform.company_size" clearable placeholder="请输入公司规模" >
  153. <el-option v-for="item in company_size" :key="item.evalue" :label="item.ename" :value="item.evalue">
  154. </el-option>
  155. </el-select>
  156. </el-form-item>
  157. <el-form-item label="公司性质:" :label-width="formLabelWidth" prop="company_nature" class="custom-align-right">
  158. <el-select v-model="companyform.company_nature" clearable placeholder="请输入公司性质" >
  159. <el-option v-for="item in company_nature" :key="item.id" :label="item.nature_name" :value="item.id">
  160. </el-option>
  161. </el-select>
  162. </el-form-item>
  163. <el-form-item label="公司简介:" :label-width="formLabelWidth" prop="introduction" class="custom-align-right">
  164. <el-input v-model="companyform.introduction" autocomplete="off" type="textarea" :rows="2"
  165. placeholder="请输入公司简介"> </el-input>
  166. </el-form-item>
  167. <el-form-item label="公司网址:" :label-width="formLabelWidth" prop="company_url" class="custom-align-right">
  168. <el-input v-model="companyform.company_url" autocomplete="off"
  169. placeholder="请输入公司网址"></el-input>
  170. </el-form-item>
  171. <el-form-item label="地址:" :label-width="formLabelWidth" prop="address_arr_id" class="custom-align-right">
  172. <CityCascader v-model="companyform.address_arr_id" @update-city-id="update_city_arr_id" ></CityCascader>
  173. <!-- <el-select v-model="form.address_arr_id" placeholder="请选择省" @change="createjob_pronvice"> -->
  174. <!-- <el-option v-for="item in address_arr_id" :key="item.id" :label="item.name" :value="item.id"> -->
  175. <!-- </el-option> -->
  176. <!-- </el-select> -->
  177. <br>
  178. <el-input v-model="companyform.address" :label-width="formLabelWidth" placeholder="请输入公司地址"></el-input>
  179. </el-form-item>
  180. </div>
  181. </div>
  182. </el-form>
  183. <div class="infoBtnBox">
  184. <!-- <el-button type="info" @click="clearInput">重置</el-button> -->
  185. <el-button type="primary" @click="changeCompany">保存</el-button>
  186. </div>
  187. </el-tab-pane>
  188. </el-tabs>
  189. </div>
  190. </div>
  191. </div>
  192. </template>
  193. <script>
  194. //引入公用样式
  195. import '@/styles/global.less';
  196. //表格标题
  197. import tableTitle from './components/tableTitle';
  198. import CityCascader from './components/CityCascader';
  199. import { formatLocalDate } from '@/utils/public';
  200. import { getWebSiteId, getUseType } from '@/utils/auth'
  201. export default {
  202. components: {
  203. tableTitle,//表格标题
  204. CityCascader,//城市选择器
  205. },
  206. data() {
  207. // 配置验证规则:用于表单验证
  208. const validatePassword = (rule, value, callback) => {
  209. if (value.length < 6) {
  210. callback(new Error('密码不能低于6位!'))
  211. } else {
  212. callback()
  213. }
  214. }
  215. const validateEmpty = (rule,value,callback) => {
  216. if (!value || value.trim() === "") {
  217. callback(new Error('该项不能为空!'));
  218. } else {
  219. callback();
  220. }
  221. }
  222. //表单验证
  223. const validateCompanyEmpty = (rule, value, callback) => {
  224. if (value.length == 0) {
  225. callback(new Error('该项不能为空!'))
  226. } else {
  227. callback()
  228. }
  229. }
  230. return {
  231. tableDivTitle:"修改个人信息",
  232. tabPosition:"left",
  233. formLabelWidth:"120px",
  234. //修改用户信息
  235. infoform:{
  236. avatar:"",
  237. nickname:""
  238. },
  239. avatarUrl:"",//头像缩略图
  240. hovering:false,//鼠标悬浮状态
  241. infoFormRules:{
  242. avatar: [{ required: true, trigger: 'blur', validator: validateEmpty }],
  243. nickname: [{ required: true, trigger: 'blur', validator: validateEmpty }]
  244. },
  245. //修改密码
  246. form:{
  247. password:"",
  248. new_password:"",
  249. new_password1:""
  250. },
  251. // 修改企业信息
  252. companyform:{
  253. business_name:"",//公司名称
  254. company_hy_id:"",//所属行业
  255. company_size:"",//公司规模
  256. company_nature:"",//公司性质
  257. introduction:"",//公司简介
  258. real_name:"",//联系人
  259. mobile:"",//联系电话
  260. company_url:"",//公司网址
  261. address_arr_id:[],//地址
  262. address:""//具体地址
  263. },
  264. creatNews_user_type: '0',//判断用户类型'
  265. capsTooltip1: false,//显示大小写提示
  266. capsTooltip2: false,
  267. capsTooltip3: false,
  268. passwordType1: 'password',//密码域默认type 当显示密码的时候改为text
  269. passwordType2: 'password',//密码域默认type 当显示密码的时候改为text
  270. passwordType3: 'password',//密码域默认type 当显示密码的时候改为text
  271. loginRules: { //配置from表单验证规则
  272. password: [{ required: true, trigger: 'blur', validator: validatePassword }],
  273. new_password: [{ required: true, trigger: 'blur', validator: validatePassword }],
  274. new_password1: [{ required: true, trigger: 'blur', validator: validatePassword }]
  275. },
  276. companyRules: { //配置from表单验证规则
  277. // 公司名称
  278. business_name: { required: true, trigger: 'blur', validator: validateCompanyEmpty },
  279. // 所属行业
  280. company_hy_id: { required: true, trigger: 'blur', validator: validateCompanyEmpty },
  281. // 公司规模
  282. company_size: { required: true, trigger: 'blur', validator: validateCompanyEmpty },
  283. // 公司简介
  284. introduction: { required: true, trigger: 'blur', validator: validateCompanyEmpty },
  285. // 联系人
  286. real_name: { required: true, trigger: 'blur', validator: validateCompanyEmpty },
  287. // 联系电话
  288. mobile: { required: true, trigger: 'blur', validator: validateCompanyEmpty },
  289. // 地址
  290. address_arr_id: { required: true, trigger: 'blur', validator: validateCompanyEmpty },
  291. // 具体地址
  292. address: { required: true, trigger: 'blur', validator: validateCompanyEmpty },
  293. },
  294. }
  295. },
  296. mounted() {
  297. this.creatNews_user_type = getUseType()
  298. this.getUserInfo()
  299. this.company_hy_id()
  300. this.company_size()
  301. this.company_nature()
  302. this.address_arr_id()
  303. this.getCompanyInfo()
  304. },
  305. methods: {
  306. //0.全局操作 start ---------------------------------------->
  307. //获取用户身份信息
  308. getUserInfo(){
  309. this.$store.dispatch('public/getInfo').then(res=> {
  310. console.log(res)
  311. this.avatarUrl = res.data.avatar;
  312. this.infoform.avatar = res.data.avatar;
  313. this.infoform.nickname = res.data.nickname;
  314. }).catch(() => {
  315. this.$message({
  316. type: 'info',
  317. message: '网络错误,请重试!'
  318. });
  319. })
  320. },
  321. //0.全局操作 end ---------------------------------------->
  322. //1.修改密码 start ---------------------------------------->
  323. //1.1 修改用户密码
  324. changePassword(){
  325. this.$refs.form.validate(valid => {
  326. if (valid) {
  327. this.$store.dispatch('public/changePassword',this.form).then(res=> {
  328. //console.log(res)
  329. if(res.code == 200){
  330. this.$message({
  331. type: 'success',
  332. message: "密码修改成功!"
  333. });
  334. this.clearInput();
  335. }else{
  336. this.$message({
  337. type: 'warning',
  338. message: res.message
  339. });
  340. }
  341. }).catch(() => {
  342. this.$message({
  343. type: 'info',
  344. message: '网络错误,请重试!'
  345. });
  346. })
  347. }else{
  348. this.$message.error('请填写完整信息!');
  349. }
  350. })
  351. },
  352. // 切换密码框的显示与隐藏
  353. showPwd(num) {
  354. const passwordTypeKey = 'passwordType' + num; // 动态生成 passwordType 的键
  355. const passwordRefKey = 'password' + num; // 动态生成 password 的引用
  356. // 切换密码类型
  357. if (this[passwordTypeKey] === 'password') {
  358. this[passwordTypeKey] = ''; // 显示密码
  359. } else {
  360. this[passwordTypeKey] = 'password'; // 隐藏密码
  361. }
  362. // 使用 $nextTick 聚焦到对应的密码输入框
  363. this.$nextTick(() => {
  364. this.$refs[passwordRefKey].focus(); // 聚焦到对应的密码输入框
  365. });
  366. },
  367. //清空输入列表
  368. clearInput(){
  369. this.form = {
  370. password:"",
  371. new_password:"",
  372. new_password1:""
  373. }
  374. },
  375. //1.修改密码 end ---------------------------------------->
  376. //2.修改头像和昵称 start ---------------------------------------->
  377. //2.1上传图片操作
  378. beforeAvatarUpload(file) {
  379. const isJPG = file.type === 'image/jpeg';
  380. const isPNG = file.type === 'image/png';
  381. const isLt2M = file.size / 1024 / 1024 < 2;
  382. if (!isJPG && !isPNG) {
  383. this.$message.error('上传头像图片只能是 JPG 或 PNG 格式!');
  384. return false;
  385. }
  386. if (!isLt2M) {
  387. this.$message.error('上传头像图片大小不能超过 2MB!');
  388. return false;
  389. }
  390. const formData = new FormData();
  391. formData.append('file', file);
  392. this.$store.dispatch('pool/uploadFile',formData).then(res=> {
  393. this.avatarUrl = res.data.imgUrl;//显示缩略图
  394. this.infoform.avatar = res.data.imgUrl;//提供表单地址
  395. console.log(res.data.imgUrl)
  396. console.log(this.infoform.avatar)
  397. }).catch(() => {
  398. this.$message({
  399. type: 'warning',
  400. message: '网络错误,请重试!'
  401. });
  402. })
  403. // 阻止默认的上传行为
  404. return false;
  405. },
  406. //2.2 删除图片
  407. handleDelete() {
  408. // 删除图片
  409. this.avatarUrl = ''; // 清空图片 URL
  410. },
  411. //2.3 修改用户信息
  412. changeInfo(){
  413. console.log(this.infoform)
  414. this.$refs.infoform.validate(valid => {
  415. if (valid) {
  416. this.$store.dispatch('user/updateUserAvatarNickname',this.infoform).then(res=> {
  417. if(res.code == 200){
  418. this.$message.success("修改成功!");
  419. //更新store中的头像和昵称
  420. this.$store.commit('user/SET_AVATAR', this.infoform.avatar);
  421. this.$store.commit('user/SET_NAME', this.infoform.nickname);
  422. }
  423. }).catch(() => {
  424. this.$message.error('网络错误,请重试!');
  425. })
  426. }else{
  427. this.$message.error('请填写完整信息!');
  428. }
  429. })
  430. },
  431. //2.修改头像和昵称 end ---------------------------------------->
  432. // 3.企业信息 start ---------------------------------------->//1.4更新详细地址
  433. // 12.获取公司分类
  434. company_hy_id(value) {
  435. this.$store.dispatch('news/getIndustry').then(res => {
  436. this.company_hy_id = res.data;
  437. })
  438. },
  439. //13.获取公司规模
  440. company_size(value) {
  441. this.$store.dispatch('news/getCompanySize').then(res => {
  442. this.company_size = res.data;
  443. })
  444. },
  445. //14.获取公司性质
  446. company_nature(value) {
  447. this.$store.dispatch('news/getCompanyNature').then(res => {
  448. this.company_nature = res.data;
  449. })
  450. },
  451. // 15.获取地址
  452. address_arr_id(value) {
  453. this.$store.dispatch('news/getJobRecruitingArea').then(res => {
  454. this.address_arr_id = res.data;
  455. })
  456. },
  457. getCompanyInfo(){
  458. this.$store.dispatch('news/getJobCompany', {}).then(res => {
  459. console.log('-----------res------------------',res);
  460. this.companyform.address_arr_id = Array.isArray(res.data.address_arr_id) ? res.data.address_arr_id : JSON.parse(res.data.address_arr_id);
  461. this.companyform.business_name = res.data.business_name;
  462. this.companyform.company_hy_id = res.data.company_hy_id;
  463. this.companyform.company_size = res.data.company_size;
  464. this.companyform.company_nature = res.data.company_nature;
  465. this.companyform.introduction = res.data.introduction;
  466. this.companyform.company_url = res.data.company_url;
  467. this.companyform.address = res.data.address;
  468. })
  469. },
  470. update_city_arr_id(value) {
  471. console.log("行政区划ID已更新:", value);
  472. this.form.city_arr_id = value;
  473. },
  474. //1.3 清理表单
  475. cleatForm(type) {
  476. if (type == 2) {
  477. //使用了外链,进行部分表单清理
  478. //this.form.cat_arr_id = "";
  479. this.form.address_arr_id = [];
  480. this.form.business_name = "";
  481. this.form.company_hy_id = "";
  482. this.form.company_size = "";
  483. this.form.company_nature = "";
  484. //this.form.author = "";
  485. this.form.introduction = "";
  486. this.form.company_url = "";
  487. this.form.address = "";
  488. }
  489. },
  490. changeCompany(value){
  491. console.log(this.companyform)
  492. this.$store.dispatch('news/upJobCompany', this.companyform).then(res => {
  493. if (res.code == 200) {
  494. //汇报结果
  495. this.$message({
  496. type: 'success',
  497. message: '已成功修改公司信息!'
  498. });
  499. this.cleatForm(2);
  500. //返回列表页
  501. // this.returnPage()
  502. } else {
  503. this.$message({
  504. type: 'error',
  505. message: ": '发布失败!'.".this.$message
  506. });
  507. }
  508. }).catch(() => {
  509. this.$message({
  510. type: 'info',
  511. message: '网络错误,请重试!'
  512. });
  513. })
  514. }
  515. //3.企业信息 end ---------------------------------------->
  516. }
  517. }
  518. </script>
  519. <style scoped lang="less">
  520. @avatarBorderColor:#E1E2E9;
  521. @spacingPx:30px;
  522. .userInfoBox {
  523. margin: @spacingPx;
  524. border-radius: 20px;
  525. background: #fff;
  526. border: 1px solid #E9EDF7;
  527. padding: @spacingPx - 10px;
  528. -webkit-box-sizing: border-box;
  529. box-sizing: border-box;
  530. padding-bottom: @spacingPx;
  531. .userInfoTabs {
  532. padding: 20px 40px 20px 0;
  533. background: #F5F7FB
  534. }
  535. .avatar {
  536. border-radius: 50%;
  537. width: 140px;
  538. height: 140px;
  539. border: 1px solid @avatarBorderColor;
  540. border-radius: 12px;
  541. padding:15px;
  542. }
  543. .show-pwd{
  544. margin-left: @spacingPx;
  545. }
  546. .infoBox {
  547. margin-top: @spacingPx;
  548. }
  549. .infoInput {
  550. flex: 1;
  551. }
  552. .infoPassword {
  553. display: flex;
  554. align-items: center;
  555. }
  556. }
  557. .inputBox {
  558. margin-bottom: @spacingPx;
  559. .inputIcon {
  560. width: 24px;
  561. height: 24px;
  562. margin: 0 @spacingPx - 10px;
  563. }
  564. .inputIconSmall {
  565. width: 18px;
  566. height: 18px;
  567. }
  568. }
  569. .PasswordBox {
  570. display: flex;
  571. align-items: center;
  572. margin-top: @spacingPx;
  573. .el-form-item {
  574. flex: 1;
  575. }
  576. .PasswordTitle {
  577. width:120px;
  578. text-align: right;
  579. margin-right: 10px;
  580. margin-bottom:22px;
  581. font-size: 14px;
  582. color: #666;
  583. font-weight: bold;
  584. }
  585. .PasswordBody {
  586. flex: 1;
  587. display: flex;
  588. align-items: center;
  589. }
  590. }
  591. .infoBtnBox {
  592. margin-top: @spacingPx;
  593. padding-bottom: @spacingPx;
  594. text-align: center;
  595. }
  596. // ----------------------企业信息下拉框宽度---------------------->
  597. .el-select {
  598. // text-align: right; /* 设置标签文字右对齐 */
  599. width: 100%; /* 设置标签宽度 */;
  600. }
  601. // ----------------------企业信息下拉框宽度---------------------->
  602. //执行v-deep穿透scope选择器 start------------------------------------------------------------>*/
  603. ::v-deep .custom-form-item > .el-form-item__label {
  604. line-height: 140px !important;
  605. }
  606. ::v-deep .custom-textarea .el-textarea__inner {
  607. resize: none; /* 禁止用户拖拽调整大小 */
  608. }
  609. ::v-deep .custom-align-right .el-form-item__label {
  610. text-align: right; /* 设置标签文字右对齐 */
  611. }
  612. //执行v-deep穿透scope选择器 end------------------------------------------------------------>*/
  613. </style>