checkinInfo-detail.vue 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. <style scoped>
  2. .user-panel {
  3. margin: 10px auto;
  4. }
  5. </style>
  6. <template>
  7. <el-dialog
  8. :visible.sync="showDialog"
  9. :title="title"
  10. :modal-append-to-body="true"
  11. append-to-body
  12. :close-on-click-modal="false"
  13. style="text-align: left"
  14. width="80%"
  15. @close="closeDialog"
  16. >
  17. <div class="user-panel" v-loading="loading">
  18. <el-form
  19. ref="form"
  20. :model="formModel"
  21. :rules="ruleValidate"
  22. :label-width="'150px'"
  23. inline
  24. >
  25. <el-form-item label="楼栋" prop="building">
  26. <el-input
  27. v-model="formModel.building"
  28. placeholder="请输入楼栋"
  29. style="width: 300px"
  30. ></el-input>
  31. </el-form-item>
  32. <el-form-item label="房号" prop="room">
  33. <el-input
  34. v-model="formModel.room"
  35. placeholder="请输入房号"
  36. style="width: 300px"
  37. ></el-input>
  38. </el-form-item>
  39. <!-- <el-form-item label="企业名称" prop="name">
  40. <el-input
  41. v-model="formModel.name"
  42. placeholder="请输入企业名称"
  43. style="width: 300px"
  44. ></el-input>
  45. </el-form-item> -->
  46. <el-form-item label="企业名称" prop="companyId">
  47. <el-select-tree
  48. :props="companyProps"
  49. :options="companyResult"
  50. v-model="formModel.companyId"
  51. style="width: 300px"
  52. size="mediumn"
  53. ></el-select-tree>
  54. </el-form-item>
  55. <el-form-item label="联系人" prop="artificialPerson">
  56. <el-select
  57. filterable
  58. v-model="formModel.artificialPerson"
  59. style="width: 300px"
  60. >
  61. <el-option v-for="person in personResult"
  62. :key="person.id" :value="person.id" :label="person.name">
  63. </el-option>
  64. </el-select>
  65. </el-form-item>
  66. <el-form-item label="法人" prop="boss">
  67. <el-input
  68. v-model="formModel.boss"
  69. placeholder="请输入法人"
  70. style="width: 300px"
  71. ></el-input>
  72. </el-form-item>
  73. <el-form-item label="面积(㎡)" prop="area">
  74. <el-input
  75. v-model="formModel.area"
  76. placeholder="请输入面积"
  77. style="width: 300px"
  78. oninput ="value=value.replace(/[^0-9.]/g,'')"
  79. ></el-input>
  80. </el-form-item>
  81. <el-form-item label="入驻时间" prop="checkinTime">
  82. <el-date-picker v-model="formModel.checkinTime" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" style="width: 300px"></el-date-picker>
  83. </el-form-item>
  84. <el-form-item label="费用到期时间" prop="feeExpirationTime">
  85. <el-date-picker v-model="formModel.feeExpirationTime" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" style="width: 300px"></el-date-picker>
  86. </el-form-item>
  87. <el-form-item label="合同到期时间" prop="contractExpirationTime">
  88. <el-date-picker v-model="formModel.contractExpirationTime" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" style="width: 300px"></el-date-picker>
  89. </el-form-item>
  90. <el-form-item label="租赁期限" prop="leaseTerm">
  91. <el-input
  92. v-model="formModel.leaseTerm"
  93. placeholder="请输入租赁期限"
  94. style="width: 300px"
  95. ></el-input>
  96. </el-form-item>
  97. <!-- <el-form-item label="租金" prop="rent">
  98. <el-input
  99. v-model="formModel.rent"
  100. placeholder="请输入租金"
  101. style="width: 300px"
  102. ></el-input>
  103. </el-form-item> -->
  104. <!-- <el-form-item label="缴纳方式" prop="paymentMethod">
  105. <el-select v-model="formModel.paymentMethod" style="width:300px;" clearable>
  106. <el-option v-for="(item,index) in paymentMethodList"
  107. :label="item.name" :value="item.value" :key="index"></el-option>
  108. </el-select>
  109. </el-form-item> -->
  110. </el-form>
  111. </div>
  112. <span slot="footer" class="dialog-footer">
  113. <el-button @click="closeDialog">取 消</el-button>
  114. <el-button type="primary" @click="handleSubmit" :loading="submitting"
  115. >确 定</el-button
  116. >
  117. </span>
  118. </el-dialog>
  119. </template>
  120. <script>
  121. import Constant from "@/constant";
  122. import checkinInfoApi from "@/api/base/checkinInfo";
  123. import dataDictionaryApi from "@/api/sys/dataDictionary";
  124. import companyInfoApi from "@/api/base/companyInfo";
  125. import personInfoApi from "@/api/base/personInfo";
  126. import SelectTree from "@/components/SelectTree";
  127. export default {
  128. props: ["businessKey", "title"],
  129. data() {
  130. return {
  131. formModel: {},
  132. ruleValidate: {
  133. id: [{ required: true, message: "编号不能为空", trigger: "blur" }],
  134. building: [
  135. { required: true, message: "楼栋不能为空", trigger: "blur" },
  136. ],
  137. companyId: [
  138. { required: true, message: "企业不能为空", trigger: "blur" },
  139. ],
  140. artificialPerson: [
  141. { required: true, message: "联系人不能为空", trigger: "blur" },
  142. ],
  143. },
  144. showDialog: true,
  145. loading: false,
  146. submitting: false,
  147. paymentMethodList: [],
  148. companyResult: [],
  149. companyProps: {
  150. value: "id",
  151. label: "name",
  152. children: "children"
  153. },
  154. personResult: [],
  155. personProps: {
  156. value: "id",
  157. label: "name",
  158. children: "children"
  159. },
  160. };
  161. },
  162. created() {
  163. var self = this;
  164. dataDictionaryApi.findByCatalogName({
  165. "catalogName" : "缴纳方式"
  166. }).then(response => {
  167. var jsonData = response.data;
  168. this.paymentMethodList = jsonData.data;
  169. });
  170. companyInfoApi.list({scope:"all"}).then(function(response) {
  171. var jsonData = response.data;
  172. if (jsonData.result) {
  173. self.companyResult = jsonData.data;
  174. }
  175. });
  176. },
  177. watch:{
  178. "formModel.companyId": function (val, oldval) {
  179. if (val != null && val != "") {
  180. var self = this;
  181. var formData = new FormData();
  182. formData.append("companyId", val);
  183. personInfoApi.findByCompanyId(formData).then(function(response) {
  184. var jsonData = response.data;
  185. if (jsonData.result) {
  186. self.personResult = jsonData.data;
  187. }
  188. });
  189. }
  190. },
  191. },
  192. methods: {
  193. closeDialog() {
  194. this.$emit("close", false);
  195. },
  196. handleSubmit() {
  197. var self = this;
  198. this.$refs["form"].validate((valid) => {
  199. if (valid) {
  200. (function () {
  201. var id = self.formModel.id;
  202. if (id == null || id.length == 0) {
  203. return checkinInfoApi.add(self.formModel);
  204. } else {
  205. return checkinInfoApi.update(self.formModel);
  206. }
  207. })().then(function (response) {
  208. var jsonData = response.data;
  209. if (jsonData.result) {
  210. self.$message({
  211. message: "保存成功!",
  212. type: "success",
  213. });
  214. self.$emit("close", true);
  215. } else {
  216. self.$message({
  217. message: jsonData.message + "",
  218. type: "warning",
  219. });
  220. self.$emit("close", false);
  221. }
  222. });
  223. }
  224. });
  225. },
  226. },
  227. mounted: function () {
  228. var self = this;
  229. (function () {
  230. if (self.businessKey.length == 0) {
  231. return checkinInfoApi.create();
  232. } else {
  233. return checkinInfoApi.edit(self.businessKey);
  234. }
  235. })()
  236. .then((response) => {
  237. var jsonData = response.data;
  238. self.loading = false;
  239. if (jsonData.result) {
  240. self.formModel = jsonData.data;
  241. //var personId = self.formModel.artificialPerson;
  242. //实际保存为personId,但数据库中是varchar类型
  243. //self.formModel.artificialPerson = parseInt(personId);
  244. } else {
  245. self.$message.error(jsonData.message + "");
  246. }
  247. })
  248. .catch((error) => {
  249. self.$message.error(error + "");
  250. });
  251. },
  252. components: {
  253. "el-select-tree": SelectTree
  254. },
  255. };
  256. </script>