agencyCompanyDetail.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819
  1. <template>
  2. <div class="line-container-p24">
  3. <i class="el-icon-arrow-left"></i>
  4. <div
  5. class="dib go-back ml8"
  6. @click="router.replace('/agencyManage/agencyCompanyList')"
  7. >
  8. 返回代理公司列表
  9. </div>
  10. </div>
  11. <div class="container-title">代理信息</div>
  12. <div class="line-container-p24">
  13. <div class="df aic">
  14. <div class="normal-label">代理名称</div>
  15. <el-input
  16. style="width: 220px; margin-right: 20px"
  17. :disabled="!isBasicInfoEdit"
  18. v-model="proxyName"
  19. ></el-input>
  20. <div class="normal-label">代理名称缩写</div>
  21. <el-input
  22. style="width: 220px; margin-right: 20px"
  23. :disabled="!isBasicInfoEdit"
  24. v-model="shortName"
  25. ></el-input>
  26. <el-button v-if="!isBasicInfoEdit" @click="editBasicInfo" type="primary">
  27. 修改
  28. </el-button>
  29. <el-button
  30. v-if="isBasicInfoEdit"
  31. @click="submitBasicInfoEdit"
  32. type="primary"
  33. >
  34. 提交
  35. </el-button>
  36. <el-button v-if="isBasicInfoEdit" @click="cancelBasicInfoEdit">
  37. 取消
  38. </el-button>
  39. </div>
  40. <div class="df aic mt20">
  41. <div class="normal-label">联系人</div>
  42. <el-input
  43. style="width: 220px; margin-right: 20px"
  44. :disabled="true"
  45. v-model="contactName"
  46. ></el-input>
  47. <div class="normal-label">联系人手机号</div>
  48. <el-input
  49. style="width: 220px; margin-right: 20px"
  50. :disabled="true"
  51. v-model="contactPhone"
  52. ></el-input>
  53. </div>
  54. <div class="df aic mt20">
  55. <div class="normal-label">过期时间</div>
  56. <el-date-picker
  57. v-model="expiredTime"
  58. class="mr20"
  59. type="datetime"
  60. format="YYYY/MM/DD"
  61. value-format="YYYY/MM/DD"
  62. placeholder="过期时间"
  63. :disabled="!expiredTimeEditable"
  64. ></el-date-picker>
  65. <el-button
  66. v-if="!expiredTimeEditable"
  67. @click="editExpiredTime"
  68. type="primary"
  69. >
  70. 修改
  71. </el-button>
  72. <el-button
  73. v-if="expiredTimeEditable"
  74. @click="submitExpiredTime"
  75. type="primary"
  76. >
  77. 提交
  78. </el-button>
  79. <el-button v-if="expiredTimeEditable" @click="cancelExpiredTime">
  80. 取消
  81. </el-button>
  82. </div>
  83. </div>
  84. <div class="container-title">子账号信息</div>
  85. <div class="line-container-p24">
  86. <div style="display: flex; justify-content: space-between">
  87. <div style="display: flex">
  88. <el-input
  89. placeholder="请输入代理子账户/手机号"
  90. prefix-icon="el-icon-search"
  91. v-model="term"
  92. clearable
  93. style="height: 32px; width: 330px; line-height: 32px"
  94. ></el-input>
  95. <el-button
  96. class="ml20"
  97. type="primary"
  98. @click="getAgencySubAccountList(1)"
  99. >
  100. 查询
  101. </el-button>
  102. </div>
  103. <el-button class="ml20" type="primary" @click="dialogFormVisible = true">
  104. 添加代理子账户
  105. </el-button>
  106. <el-dialog
  107. :title="ruleForm.id ? '编辑代理子账户' : '添加代理子账户'"
  108. v-model="dialogFormVisible"
  109. @closed="resetForm"
  110. >
  111. <template v-slot:default>
  112. <el-form
  113. :model="ruleForm"
  114. :rules="rules"
  115. ref="ruleFormRef"
  116. label-width="110px"
  117. label-position="left"
  118. >
  119. <el-form-item prop="userName" label="姓名">
  120. <el-input
  121. style="width: 280px"
  122. v-model="ruleForm.userName"
  123. ></el-input>
  124. </el-form-item>
  125. <el-form-item prop="phone" label="手机号" v-if="!ruleForm.id">
  126. <el-input
  127. style="width: 280px"
  128. v-model="ruleForm.phone"
  129. ></el-input>
  130. </el-form-item>
  131. <el-form-item prop="email" label="邮箱">
  132. <el-input
  133. style="width: 280px"
  134. v-model="ruleForm.email"
  135. ></el-input>
  136. </el-form-item>
  137. <el-form-item prop="password" label="密码" v-if="!ruleForm.id">
  138. <el-input
  139. style="width: 280px"
  140. v-model="ruleForm.password"
  141. placeholder="(不填自动生成)"
  142. ></el-input>
  143. </el-form-item>
  144. <el-form-item prop="isAdmin" label="管理员" v-if="!ruleForm.id">
  145. <el-select v-model="ruleForm.isAdmin" placeholder="是否管理员">
  146. <el-option label="否" value="0" />
  147. <el-option label="是" value="1" />
  148. </el-select>
  149. </el-form-item>
  150. </el-form>
  151. </template>
  152. <template v-slot:footer>
  153. <div class="dialog-footer">
  154. <el-button @click="resetForm">取 消</el-button>
  155. <el-button
  156. v-if="!ruleForm.id"
  157. type="primary"
  158. @click="addAgencySubAccount(ruleForm)"
  159. >
  160. 确 定
  161. </el-button>
  162. <el-button
  163. v-else
  164. type="primary"
  165. @click="editAgencySubAccount(ruleForm)"
  166. >
  167. 修改
  168. </el-button>
  169. </div>
  170. </template>
  171. </el-dialog>
  172. </div>
  173. <div style="margin-top: 24px">
  174. <el-table :data="tableData" stripe style="width: 100%">
  175. <el-table-column
  176. type="index"
  177. label="序号"
  178. min-width="80"
  179. align="center"
  180. ></el-table-column>
  181. <el-table-column
  182. prop="userName"
  183. label="姓名"
  184. min-width="120"
  185. align="center"
  186. ></el-table-column>
  187. <el-table-column
  188. prop="phone"
  189. label="手机号"
  190. min-width="160"
  191. align="center"
  192. ></el-table-column>
  193. <el-table-column
  194. prop="email"
  195. label="邮箱"
  196. min-width="160"
  197. align="center"
  198. ></el-table-column>
  199. <el-table-column
  200. prop="deptName"
  201. label="部门"
  202. min-width="160"
  203. align="center"
  204. >
  205. <template v-slot="scope">
  206. {{ scope.row.deptName || "暂无部门" }}
  207. </template>
  208. </el-table-column>
  209. <el-table-column
  210. prop="roleName"
  211. label="职位"
  212. min-width="160"
  213. align="center"
  214. >
  215. <template v-slot="scope">
  216. {{ scope.row.roleName || "暂无职位" }}
  217. </template>
  218. </el-table-column>
  219. <el-table-column label="操作" min-width="160" align="center">
  220. <template v-slot="scope">
  221. <el-button type="primary" size="small" @click="showEdit(scope.row)">
  222. 编辑
  223. </el-button>
  224. </template>
  225. </el-table-column>
  226. </el-table>
  227. <div style="width: 100%; text-align: right; margin-top: 43px">
  228. <el-pagination
  229. background
  230. layout="prev, pager, next"
  231. :current-page="currentPage"
  232. :total="total"
  233. @current-change="pageChange"
  234. ></el-pagination>
  235. </div>
  236. </div>
  237. </div>
  238. <div class="container-title">货主信息</div>
  239. <div class="line-container-p24">
  240. <div style="display: flex; justify-content: space-between">
  241. <div style="display: flex">
  242. <el-input
  243. placeholder="公司名称/联系人/手机号"
  244. prefix-icon="el-icon-search"
  245. v-model="term2"
  246. clearable
  247. style="width: 330px"
  248. ></el-input>
  249. <el-button
  250. class="ml20"
  251. type="primary"
  252. @click="getCargoOwnerCompanyByAgencyCompany(1)"
  253. >
  254. 查询
  255. </el-button>
  256. </div>
  257. <el-button class="ml20" type="primary" @click="dialogFormVisible2 = true">
  258. 关联货主公司
  259. </el-button>
  260. <el-dialog
  261. title="关联货主公司"
  262. v-model="dialogFormVisible2"
  263. @closed="resetForm2"
  264. >
  265. <template v-slot:default>
  266. <el-form
  267. :model="ruleForm2"
  268. :rules="rules2"
  269. ref="form2"
  270. label-width="110px"
  271. label-position="left"
  272. >
  273. <el-form-item prop="cargoOwnerId" label="货主公司">
  274. <RemoteSearch
  275. api="getCargoOwnerCompanySelect"
  276. v-model="cargoOwnerCompanyStr"
  277. placeholder="公司名称/联系人/手机号"
  278. @selectItem="selectCargoOwner($event)"
  279. class="mb10"
  280. ></RemoteSearch>
  281. </el-form-item>
  282. </el-form>
  283. </template>
  284. <template v-slot:footer>
  285. <div class="dialog-footer">
  286. <el-button @click="resetForm2">取 消</el-button>
  287. <el-button type="primary" @click="relateCargoAgency(ruleForm2)">
  288. 确认关联
  289. </el-button>
  290. </div>
  291. </template>
  292. </el-dialog>
  293. </div>
  294. <div style="margin-top: 24px">
  295. <el-table :data="tableData2" stripe style="width: 100%">
  296. <el-table-column
  297. type="index"
  298. label="序号"
  299. min-width="80"
  300. align="center"
  301. ></el-table-column>
  302. <el-table-column
  303. prop="cargoOwnerName"
  304. label="公司名称"
  305. min-width="120"
  306. align="center"
  307. ></el-table-column>
  308. <el-table-column
  309. prop="contactName"
  310. label="联系人"
  311. min-width="120"
  312. align="center"
  313. ></el-table-column>
  314. <el-table-column
  315. prop="contactPhone"
  316. label="联系人手机号"
  317. min-width="160"
  318. align="center"
  319. ></el-table-column>
  320. <el-table-column
  321. prop="contactEmail"
  322. label="联系人邮箱"
  323. min-width="160"
  324. align="center"
  325. ></el-table-column>
  326. <el-table-column
  327. prop="copId"
  328. label="操作"
  329. min-width="160"
  330. align="center"
  331. >
  332. <template v-slot="scope">
  333. <el-button
  334. type="danger"
  335. size="small"
  336. @click="unrelateCargoAgency(scope.row.cargoOwnerId)"
  337. >
  338. 取消关联
  339. </el-button>
  340. </template>
  341. </el-table-column>
  342. </el-table>
  343. <div style="width: 100%; text-align: right; margin-top: 43px">
  344. <el-pagination
  345. background
  346. layout="prev, pager, next"
  347. :current-page="currentPage2"
  348. :total="total2"
  349. @current-change="pageChange2"
  350. ></el-pagination>
  351. </div>
  352. </div>
  353. </div>
  354. </template>
  355. <script setup>
  356. import { ref, h, reactive, toRefs, onMounted } from "vue";
  357. import {
  358. ElNotification,
  359. ElMessageBox,
  360. ElMessage,
  361. ElLoading,
  362. } from "element-plus";
  363. import store from "../../store";
  364. import router from "../../router";
  365. import { useRoute } from "vue-router";
  366. import api from "../../apis/fetch";
  367. import { subTimeStr } from "../../utils/utils";
  368. const route = useRoute();
  369. let dialogFormVisible = ref(false);
  370. let ruleFormRef = ref(null);
  371. let ruleForm = ref({
  372. userName: "",
  373. phone: "",
  374. email: "",
  375. password: "",
  376. isAdmin: "",
  377. });
  378. async function resetForm() {
  379. dialogFormVisible.value = false;
  380. ruleForm.value = {};
  381. }
  382. const rules = ref({
  383. userName: [
  384. { required: true, message: "请填写代理子账户名称", trigger: "blur" },
  385. ],
  386. phone: [
  387. { required: true, message: "请填写手机号", trigger: "blur" },
  388. { min: 11, max: 11, message: "请正确填写手机号", trigger: "blur" },
  389. ],
  390. email: [{ required: true, message: "请填写邮箱", trigger: "blur" }],
  391. });
  392. async function addAgencySubAccount() {
  393. ruleFormRef.value.validate(async (valid) => {
  394. if (valid) {
  395. let { userName, phone, email, password, isAdmin } = ruleForm.value;
  396. const loading = ElLoading.service({
  397. lock: true,
  398. text: "正在提交...",
  399. background: "rgba(0, 0, 0, 0.7)",
  400. });
  401. let res = await api.addAgencySubAccount({
  402. proxyId: route.query.id,
  403. userName,
  404. phone,
  405. email,
  406. password,
  407. isAdmin,
  408. });
  409. loading.close();
  410. if (res.data.status == 0) {
  411. ElNotification.success({
  412. title: "添加成功",
  413. duration: 0,
  414. message: `${userName}:${res.data.msg}`,
  415. type: "success",
  416. });
  417. resetForm();
  418. getAgencySubAccountList();
  419. } else {
  420. ElNotification.error({
  421. title: "失败",
  422. duration: 3000,
  423. message: res.data.msg,
  424. });
  425. }
  426. } else {
  427. return false;
  428. }
  429. });
  430. }
  431. function editAgencySubAccount() {
  432. ruleFormRef.value.validate(async (valid) => {
  433. if (valid) {
  434. let { id: proxyLoginAccountId, userName, email } = ruleForm.value;
  435. const loading = ElLoading.service({
  436. lock: true,
  437. text: "正在提交...",
  438. background: "rgba(0, 0, 0, 0.7)",
  439. });
  440. let res = await api.editAgencySubAccount({
  441. proxyId: route.query.id,
  442. proxyLoginAccountId,
  443. userName,
  444. email,
  445. });
  446. loading.close();
  447. if (res.data.status == 0) {
  448. ElNotification.success({
  449. title: "修改成功",
  450. duration: 0,
  451. message: `${userName}:${res.data.msg}`,
  452. type: "success",
  453. });
  454. resetForm();
  455. getAgencySubAccountList();
  456. } else {
  457. ElNotification.error({
  458. title: "失败",
  459. duration: 3000,
  460. message: res.data.msg,
  461. });
  462. }
  463. } else {
  464. return false;
  465. }
  466. });
  467. }
  468. let currentPage = ref(1);
  469. let term = ref("");
  470. let tableData = ref([]);
  471. let total = ref(0);
  472. async function getAgencySubAccountList(page) {
  473. currentPage.value = page || currentPage.value;
  474. let res = await api.getAgencySubAccountList({
  475. currentPage: currentPage.value,
  476. size: 10,
  477. term: term.value,
  478. proxyId: route.query.id,
  479. });
  480. if (res.data.status == 0) {
  481. tableData.value = res.data.result;
  482. total.value = res.data.total;
  483. } else {
  484. tableData.value = [];
  485. total.value = 0;
  486. }
  487. }
  488. function pageChange(e) {
  489. currentPage.value = e;
  490. getAgencySubAccountList();
  491. }
  492. let proxyName = ref();
  493. let shortName = ref();
  494. let contactName = ref();
  495. let contactPhone = ref();
  496. let contactEmail = ref();
  497. async function getAgencyCompanyDetail() {
  498. let res = await api.getAgencyCompanyDetail({
  499. proxyId: route.query.id,
  500. });
  501. if (res.data.status == 0) {
  502. proxyName.value = res.data.result.proxyName;
  503. shortName.value = res.data.result.shortName;
  504. contactName.value = res.data.result.contactName;
  505. contactPhone.value = res.data.result.contactPhone;
  506. contactEmail.value = res.data.result.contactEmail;
  507. expiredTime.value = res.data.result.expiredTime;
  508. } else {
  509. console.log(res);
  510. }
  511. }
  512. let tableData2 = ref([]);
  513. let term2 = ref("");
  514. let currentPage2 = ref(1);
  515. let total2 = ref(0);
  516. let dialogFormVisible2 = ref(false);
  517. let form2 = ref(null);
  518. async function getCargoOwnerCompanyByAgencyCompany(page) {
  519. currentPage2.value = page || currentPage2.value;
  520. let res = await api.getCargoOwnerCompanyByAgencyCompany({
  521. proxyId: route.query.id,
  522. currentPage: currentPage2.value,
  523. size: 10,
  524. term: term2.value,
  525. });
  526. if (res.data.status == 0) {
  527. tableData2.value = res.data.result;
  528. total2.value = res.data.total;
  529. } else {
  530. tableData2.value = [];
  531. total2.value = 0;
  532. }
  533. }
  534. let cargoOwnerCompanyStr = ref("");
  535. const ruleForm2 = ref({
  536. cargoOwnerId: "",
  537. });
  538. const rules2 = ref({
  539. cargoOwnerId: [
  540. { required: true, message: "请选择货主公司", trigger: "blur" },
  541. ],
  542. });
  543. function selectCargoOwner(item) {
  544. ruleForm2.value.cargoOwnerId = item.key;
  545. console.log(ruleForm2.value);
  546. }
  547. function resetForm2() {
  548. dialogFormVisible2.value = false;
  549. cargoOwnerCompanyStr.value = "";
  550. form2.value.resetFields();
  551. }
  552. function pageChange2(e) {
  553. currenrPage2.value = e;
  554. getCargoOwnerCompanyByAgencyCompany();
  555. }
  556. async function relateCargoAgency() {
  557. form2.value.validate(async (valid) => {
  558. if (valid) {
  559. let { cargoOwnerId } = ruleForm2.value;
  560. let res = await api.relateCargoAgency({
  561. proxyId: route.query.id,
  562. cargoOwnerId,
  563. });
  564. console.log(res);
  565. if (res.data.status == 0) {
  566. ElNotification.success({
  567. title: "添加成功",
  568. duration: 2000,
  569. message: `${res.data.msg}`,
  570. type: "success",
  571. });
  572. resetForm2();
  573. getCargoOwnerCompanyByAgencyCompany();
  574. } else {
  575. ElNotification.error({
  576. title: "失败",
  577. duration: 3000,
  578. message: res.data.msg,
  579. });
  580. }
  581. } else {
  582. return false;
  583. }
  584. });
  585. }
  586. const unrelateCargoAgency = (cargoOwnerId) => {
  587. ElMessageBox.confirm(
  588. "取消关联后代理公司将无法继续为对应的货主公司创建航次,是否继续取消关联?",
  589. "警告",
  590. {
  591. confirmButtonText: "确认取消",
  592. cancelButtonText: "再想想",
  593. type: "warning",
  594. }
  595. )
  596. .then(async () => {
  597. console.log(cargoOwnerId);
  598. let res = await api.unrelateCargoAgency({
  599. cargoOwnerId,
  600. proxyId: route.query.id,
  601. });
  602. getCargoOwnerCompanyByAgencyCompany();
  603. })
  604. .catch(() => {
  605. // ElMessage({
  606. // type: "info",
  607. // message: "Delete canceled",
  608. // });
  609. });
  610. };
  611. let expiredTime = ref("");
  612. let expiredTimeEditable = ref(false);
  613. let expiredTimeCache = "";
  614. function editExpiredTime() {
  615. expiredTimeCache = expiredTime.value;
  616. expiredTimeEditable.value = true;
  617. }
  618. async function submitExpiredTime() {
  619. let res = await api.updateAgencyExpiredTime({
  620. expiredTime: expiredTime.value,
  621. proxyId: route.query.id,
  622. });
  623. if (res.data.status == 0) {
  624. expiredTimeEditable.value = false;
  625. } else {
  626. console.log(res);
  627. }
  628. }
  629. function cancelExpiredTime() {
  630. expiredTime.value = expiredTimeCache;
  631. expiredTimeEditable.value = false;
  632. }
  633. function showEdit(row) {
  634. dialogFormVisible.value = true;
  635. ruleForm.value = {
  636. ...row,
  637. };
  638. }
  639. const isBasicInfoEdit = ref(false);
  640. const nameCache = ref("");
  641. const shortCache = ref("");
  642. function editBasicInfo() {
  643. isBasicInfoEdit.value = true;
  644. nameCache.value = proxyName.value;
  645. shortCache.value = shortName.value;
  646. }
  647. async function submitBasicInfoEdit() {
  648. let { data } = await api.updateAgencyCompany({
  649. proxyId: route.query.id,
  650. companyName: proxyName.value,
  651. shortName: shortName.value,
  652. });
  653. if (data.status == 0) {
  654. ElNotification.success({
  655. title: "成功",
  656. duration: 2000,
  657. message: `${data.msg}`,
  658. type: "success",
  659. });
  660. getAgencyCompanyDetail();
  661. isBasicInfoEdit.value = false;
  662. } else {
  663. ElNotification.error({
  664. title: "失败",
  665. duration: 3000,
  666. message: data.msg,
  667. });
  668. }
  669. }
  670. function cancelBasicInfoEdit() {
  671. isBasicInfoEdit.value = false;
  672. proxyName.value = nameCache.value;
  673. shortName.value = shortCache.value;
  674. }
  675. onMounted(() => {
  676. getAgencyCompanyDetail();
  677. getCargoOwnerCompanyByAgencyCompany();
  678. getAgencySubAccountList();
  679. });
  680. </script>
  681. <style scoped>
  682. .go-back {
  683. font-size: 16px;
  684. font-family: PingFangSC-Medium, PingFang SC;
  685. font-weight: 500;
  686. color: #333d43;
  687. line-height: 100%;
  688. cursor: pointer;
  689. }
  690. .normal-label {
  691. width: 100px;
  692. font-size: 14px;
  693. font-family: PingFangSC-Regular, PingFang SC;
  694. font-weight: 400;
  695. color: #353a42;
  696. margin-right: 10px;
  697. }
  698. .show-input {
  699. width: 200px;
  700. height: 32px;
  701. background: #ffffff;
  702. border-radius: 2px;
  703. border: 1px solid #dee0e3;
  704. font-size: 14px;
  705. font-family: PingFangSC-Regular, PingFang SC;
  706. font-weight: 400;
  707. color: #333333;
  708. line-height: 32px;
  709. padding-left: 12px;
  710. margin-right: 40px;
  711. }
  712. .radio-btns {
  713. height: 38px;
  714. width: 103px;
  715. border: 1px solid #1486f9;
  716. line-height: 38px;
  717. text-align: center;
  718. font-size: 14px;
  719. font-family: PingFangSC-Regular, PingFang SC;
  720. font-weight: 400;
  721. color: #0094fe;
  722. cursor: pointer;
  723. }
  724. .left-radius {
  725. border-top-left-radius: 19px;
  726. border-bottom-left-radius: 19px;
  727. }
  728. .right-radius {
  729. border-top-right-radius: 19px;
  730. border-bottom-right-radius: 19px;
  731. }
  732. .currentbtn {
  733. background: #1486f9;
  734. color: #fff;
  735. }
  736. .seach-btn {
  737. display: inline-block;
  738. width: 60px;
  739. height: 38px;
  740. background: #0094fe;
  741. border-radius: 2px;
  742. font-size: 14px;
  743. font-family: PingFangSC-Regular, PingFang SC;
  744. font-weight: 400;
  745. color: #ffffff;
  746. text-align: center;
  747. line-height: 38px;
  748. margin-left: 15px;
  749. cursor: pointer;
  750. box-sizing: border-box;
  751. }
  752. .seach-btn {
  753. display: inline-block;
  754. width: 60px;
  755. height: 38px;
  756. background: #0094fe;
  757. border-radius: 2px;
  758. font-size: 14px;
  759. font-family: PingFangSC-Regular, PingFang SC;
  760. font-weight: 400;
  761. color: #ffffff;
  762. text-align: center;
  763. line-height: 38px;
  764. margin-left: 15px;
  765. cursor: pointer;
  766. box-sizing: border-box;
  767. }
  768. .cargo-owner-add {
  769. width: 120px;
  770. height: 36px;
  771. border-radius: 2px;
  772. border: 1px solid #0094fe;
  773. font-size: 14px;
  774. font-family: PingFangSC-Regular, PingFang SC;
  775. font-weight: 400;
  776. color: #0094fe;
  777. line-height: 36px;
  778. text-align: center;
  779. cursor: pointer;
  780. margin-right: 20px;
  781. }
  782. :deep().el-dialog {
  783. width: 560px;
  784. padding: 20px 50px;
  785. border-radius: 6px;
  786. }
  787. :deep() .el-dialog__title {
  788. font-size: 18px;
  789. font-family: PingFangSC-Regular, PingFang SC;
  790. font-weight: 400;
  791. color: #0094fe;
  792. }
  793. </style>