laborerInfo-detail.vue 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <template>
  2. <el-dialog
  3. :visible.sync="showDialog"
  4. :title="title"
  5. :modal-append-to-body="false"
  6. style="text-align: left;"
  7. @close="closeDialog"
  8. :close-on-click-modal="false"
  9. width="900px"
  10. >
  11. <div class="user-panel" v-loading="loading">
  12. <el-form
  13. ref="form"
  14. :model="formModel"
  15. :rules="ruleValidate"
  16. :label-width="'100px'"
  17. :inline="true"
  18. >
  19. <el-form-item label="企业名称" prop="name">
  20. <el-input v-model="formModel.name" placeholder="请输入企业名称" style="width: 300px"></el-input>
  21. </el-form-item>
  22. <el-form-item label="联系电话" prop="phone">
  23. <el-input v-model="formModel.phone" placeholder="请输入联系电话" style="width: 300px"></el-input>
  24. </el-form-item>
  25. <el-form-item label="身份证号" prop="idCard">
  26. <el-input v-model="formModel.idCard" placeholder="请输入真实姓名" style="width: 300px"></el-input>
  27. </el-form-item>
  28. <el-form-item label="年龄" prop="age">
  29. <el-input v-model="formModel.age" placeholder="请输入所在地区" style="width: 300px"></el-input>
  30. </el-form-item>
  31. </el-form>
  32. </div>
  33. <span slot="footer" class="dialog-footer">
  34. <el-button @click="closeDialog">取 消</el-button>
  35. <el-button type="primary" @click="handleSubmit" :loading="submitting"
  36. >确 定</el-button
  37. >
  38. </span>
  39. </el-dialog>
  40. </template>
  41. <script>
  42. import Constant from "@/constant";
  43. import { getToken } from "@/utils/auth"; // get token from cookie
  44. import laborerInfoApi from "@/api/base/laborerInfo";
  45. export default {
  46. props: ["businessKey", "title"],
  47. data() {
  48. return {
  49. showPwd: true,
  50. ruleValidate: {
  51. userName: [
  52. { required: true, message: "用户名不能为空", trigger: "blur" },
  53. ],
  54. realName: [
  55. { required: true, message: "真实名称不能为空", trigger: "blur" },
  56. ],
  57. phone: [
  58. { required: true, message: "联系电话不能为空", trigger: "blur" },
  59. ],
  60. idCard: [
  61. { required: true, message: "身份证号不能为空", trigger: "blur" },
  62. ],
  63. age: [
  64. { required: true, message: "年龄不能为空", trigger: "blur" },
  65. ],
  66. gender: [
  67. { required: true, message: "性别不能为空", trigger: "blur" },
  68. ],
  69. },
  70. roleList: [],
  71. formModel: {},
  72. showDialog: true,
  73. loading: false,
  74. submitting: false,
  75. enterpriseList:[],
  76. //上传地址
  77. uploadUrl: Constant.serverUrl + "/uploadPicture",
  78. uploadData: {
  79. subFolder: "water-tank",
  80. },
  81. fileUrl: "",
  82. headers: {
  83. Authorization: getToken(),
  84. },
  85. };
  86. },
  87. created() {
  88. },
  89. methods: {
  90. closeDialog() {
  91. this.$emit("close", false);
  92. },
  93. handleSubmit() {
  94. var self = this;
  95. this.$refs["form"].validate((valid) => {
  96. if (valid) {
  97. (function () {
  98. var id = self.formModel.id;
  99. if (id == null || id.length == 0) {
  100. return laborerInfoApi.add(self.formModel);
  101. } else {
  102. return laborerInfoApi.update(self.formModel);
  103. }
  104. })().then(function (response) {
  105. var jsonData = response.data;
  106. if (jsonData.result) {
  107. self.$message({
  108. message: "保存成功!",
  109. type: "success",
  110. });
  111. self.$emit("close", true);
  112. } else {
  113. self.$message({
  114. message: jsonData.message + "",
  115. type: "warning",
  116. });
  117. self.$emit("close", false);
  118. }
  119. });
  120. }
  121. });
  122. },
  123. handleAvatarSuccess(res, file) {
  124. var self = this;
  125. self.formModel.image = res.data;
  126. self.fileUrl =
  127. res.data + "?x-oss-process=image/resize,m_lfit,h_300,w_300";
  128. },
  129. beforeAvatarUpload(file) {
  130. const isLt2M = file.size / 1024 / 1024 < 2;
  131. if (!isLt2M) {
  132. this.$message.error('上传头像图片大小不能超过 2MB!');
  133. }
  134. return isLt2M;
  135. }
  136. },
  137. async mounted() {
  138. var self = this;
  139. self.loading = true;
  140. (function () {
  141. if (self.businessKey != null && self.businessKey.length > 0) {
  142. return laborerInfoApi.edit(self.businessKey);
  143. } else {
  144. return laborerInfoApi.create();
  145. }
  146. })()
  147. .then((response) => {
  148. var jsonData = response.data;
  149. if (jsonData.result) {
  150. self.formModel = jsonData.data;
  151. let image = self.formModel.image;
  152. if (image != null) {
  153. self.fileUrl = image
  154. }
  155. self.showModal = true;
  156. } else {
  157. self.$message.error(jsonData.message + "");
  158. }
  159. self.loading = false;
  160. })
  161. .catch((error) => {
  162. self.$message.error(error + "");
  163. self.loading = false;
  164. });
  165. },
  166. components: {
  167. },
  168. };
  169. </script>
  170. <style scoped>
  171. .user-panel {
  172. margin: 10px auto;
  173. }
  174. .avatar-uploader .el-upload {
  175. border: 1px dashed #d9d9d9;
  176. border-radius: 6px;
  177. cursor: pointer;
  178. position: relative;
  179. overflow: hidden;
  180. }
  181. .avatar-uploader .el-upload:hover {
  182. border-color: #409EFF;
  183. }
  184. .avatar-uploader-icon {
  185. font-size: 28px;
  186. color: #8c939d;
  187. width: 178px;
  188. height: 178px;
  189. line-height: 178px;
  190. text-align: center;
  191. }
  192. .avatar {
  193. width: 178px;
  194. height: 178px;
  195. display: block;
  196. }
  197. </style>