You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

383 lines
12 KiB

2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <template>
  2. <div style="display: flex">
  3. <div>
  4. <el-form
  5. ref="form"
  6. :model="customerOrg.customerOrgRd"
  7. label-width="110px"
  8. :rules="rules"
  9. size="medium"
  10. >
  11. <el-row>
  12. <el-col :span="8">
  13. <el-form-item label="单位名称" prop="displayName">
  14. <el-input
  15. v-model="customerOrg.customerOrgRd.displayName"
  16. ></el-input>
  17. </el-form-item>
  18. </el-col>
  19. <el-col :span="8">
  20. <el-form-item label="简称" prop="shortName">
  21. <el-input
  22. v-model="customerOrg.customerOrgRd.shortName"
  23. ></el-input>
  24. </el-form-item>
  25. </el-col>
  26. <el-col :span="8">
  27. <el-form-item label="发票抬头" prop="invoiceName">
  28. <el-input
  29. v-model="customerOrg.customerOrgRd.invoiceName"
  30. ></el-input>
  31. </el-form-item>
  32. </el-col>
  33. <el-col :span="8">
  34. <el-form-item label="上级单位" prop="parentId">
  35. <el-cascader
  36. v-model="customerOrg.customerOrgRd.parentId"
  37. :options="customerOrg.customerOrgTree"
  38. :props="{
  39. checkStrictly: true,
  40. expandTrigger: 'hover',
  41. ...customerOrg.treeprops,
  42. }"
  43. :show-all-levels="false"
  44. clearable
  45. filterable
  46. >
  47. </el-cascader>
  48. </el-form-item>
  49. </el-col>
  50. <el-col :span="8">
  51. <el-form-item label="联系电话" prop="telephone">
  52. <el-input
  53. v-model="customerOrg.customerOrgRd.telephone"
  54. ></el-input>
  55. </el-form-item>
  56. </el-col>
  57. <el-col :span="8">
  58. <el-form-item label="传真" prop="fax">
  59. <el-input v-model="customerOrg.customerOrgRd.fax"></el-input>
  60. </el-form-item>
  61. </el-col>
  62. <el-col :span="8">
  63. <el-form-item label="邮政编码" prop="postalCode">
  64. <el-input
  65. v-model="customerOrg.customerOrgRd.postalCode"
  66. ></el-input>
  67. </el-form-item>
  68. </el-col>
  69. <el-col :span="8">
  70. <el-form-item label="地址" prop="address">
  71. <el-input v-model="customerOrg.customerOrgRd.address"></el-input>
  72. </el-form-item>
  73. </el-col>
  74. <el-col :span="8">
  75. <el-form-item label="开户银行" prop="bank">
  76. <el-input v-model="customerOrg.customerOrgRd.bank"></el-input>
  77. </el-form-item>
  78. </el-col>
  79. <el-col :span="8">
  80. <el-form-item label="银行账号" prop="accounts">
  81. <el-input v-model="customerOrg.customerOrgRd.accounts"></el-input>
  82. </el-form-item>
  83. </el-col>
  84. <el-col :span="8">
  85. <el-form-item label="单位性质" prop="orgTypeId">
  86. <el-select
  87. v-model="customerOrg.customerOrgRd.orgTypeId"
  88. placeholder="请选择"
  89. filterable
  90. >
  91. <el-option
  92. v-for="item in data.customerOrgType"
  93. :key="item.id"
  94. :label="item.displayName"
  95. :value="item.id"
  96. >
  97. </el-option>
  98. </el-select>
  99. </el-form-item>
  100. </el-col>
  101. <el-col :span="8">
  102. <el-form-item label="单位简码" prop="simpleCode">
  103. <el-input
  104. v-model="customerOrg.customerOrgRd.simpleCode"
  105. placeholder="由系统自动生成"
  106. disabled
  107. ></el-input>
  108. </el-form-item>
  109. </el-col>
  110. <el-col :span="8">
  111. <el-form-item label="体检中心" prop="organizationUnitId">
  112. <el-select
  113. v-model="customerOrg.customerOrgRd.organizationUnitId"
  114. placeholder="请选择"
  115. filterable
  116. >
  117. <el-option
  118. v-for="item in data.organizationdata"
  119. :key="item.id"
  120. :label="item.displayName"
  121. :value="item.id"
  122. >
  123. </el-option>
  124. </el-select>
  125. </el-form-item>
  126. </el-col>
  127. <el-col :span="8">
  128. <el-form-item label="备注" prop="remark">
  129. <el-input v-model="customerOrg.customerOrgRd.remark"></el-input>
  130. </el-form-item>
  131. </el-col>
  132. <el-col :span="8">
  133. <el-form-item label="加锁" prop="isLock">
  134. <el-radio v-model="customerOrg.customerOrgRd.isLock" label="Y"
  135. ></el-radio
  136. >
  137. <el-radio v-model="customerOrg.customerOrgRd.isLock" label="N"
  138. ></el-radio
  139. >
  140. </el-form-item>
  141. </el-col>
  142. <el-col :span="8">
  143. <el-form-item label="状态" prop="isActive">
  144. <el-radio v-model="customerOrg.customerOrgRd.isActive" label="Y"
  145. >启用</el-radio
  146. >
  147. <el-radio v-model="customerOrg.customerOrgRd.isActive" label="N"
  148. >停用</el-radio
  149. >
  150. </el-form-item>
  151. </el-col>
  152. <el-col :span="8">
  153. <el-form-item label="显示顺序" prop="displayOrder">
  154. <el-input
  155. v-model="customerOrg.customerOrgRd.displayOrder"
  156. ></el-input>
  157. </el-form-item>
  158. </el-col>
  159. </el-row>
  160. <!-- -->
  161. <el-divider />
  162. <el-row>
  163. <el-col :span="5">
  164. <el-form-item label="创建者">
  165. <el-input
  166. v-model="customerOrg.customerOrgRd.creatorName"
  167. disabled
  168. ></el-input>
  169. </el-form-item>
  170. </el-col>
  171. <el-col :span="7">
  172. <el-form-item label="创建时间" style="margin-left: -5%">
  173. <el-input
  174. :value="customerOrg.customerOrgRd.creationTime | dateFormat"
  175. disabled
  176. style="width: 90%"
  177. ></el-input>
  178. </el-form-item>
  179. </el-col>
  180. <el-col :span="5">
  181. <el-form-item label="修改者" style="margin-left: -25%">
  182. <el-input
  183. v-model="customerOrg.customerOrgRd.creatorName"
  184. disabled
  185. ></el-input>
  186. </el-form-item>
  187. </el-col>
  188. <el-col :span="7">
  189. <el-form-item label="修改时间" style="margin-left: -5%">
  190. <el-input
  191. :value="
  192. customerOrg.customerOrgRd.lastModificationTime | dateFormat
  193. "
  194. disabled
  195. style="width: 90%"
  196. ></el-input>
  197. </el-form-item>
  198. </el-col>
  199. </el-row>
  200. </el-form>
  201. </div>
  202. <!-- 按钮区域 -->
  203. <div style="margin-left: 10px; margin-top: 5%" width="150px">
  204. <el-button type="primary" @click="add">新增</el-button>
  205. <el-button
  206. type="primary"
  207. @click="Onsubmit('form')"
  208. style="margin-left: 0; margin-top: 10px"
  209. >保存</el-button
  210. >
  211. <div style="margin-top: 10px">
  212. <el-button type="danger" @click="del">删除</el-button>
  213. </div>
  214. </div>
  215. </div>
  216. </template>
  217. <script>
  218. import { mapState, mapMutations } from "vuex";
  219. import { getapi, postapi, putapi, deletapi } from "@/api/api";
  220. import { tcdate, objCopy } from "../../utlis/proFunc";
  221. export default {
  222. components: {},
  223. data() {
  224. return {
  225. data: {
  226. organizationdata: [], //体检中心数据
  227. customerOrgType: [], //单位类别
  228. },
  229. pojo: {
  230. displayName: "string",
  231. shortName: "string",
  232. invoiceName: "string",
  233. parentId: null,
  234. telephone: "string",
  235. fax: "string",
  236. postalCode: "string",
  237. address: "string",
  238. bank: "string",
  239. accounts: "string",
  240. orgTypeId: null,
  241. remark: "string",
  242. isLock: "N",
  243. isActive: "Y",
  244. organizationUnitId: null,
  245. }, //单位 记录 目前新增与更新是一致
  246. rules: {
  247. displayName: [
  248. { required: true, message: "请输入名称", trigger: "blur" },
  249. ],
  250. shortName: [{ required: true, message: "请输入简写", trigger: "blur" }],
  251. orgTypeId: [{ required: true, message: "请输入单位性质" }],
  252. organizationUnitId: [
  253. { required: true, message: "请输入体检中心", trigger: "blur" },
  254. ],
  255. displayOrder: [
  256. { required: true, message: "请输入显示顺序", trigger: "blur" },
  257. ],
  258. },
  259. isshow: false,
  260. };
  261. },
  262. created() {},
  263. //挂载完成
  264. mounted() {
  265. //获取体中心字典数据
  266. this.getoraniztion();
  267. //获取单位类别列表
  268. this.getOrgType();
  269. },
  270. computed: {
  271. ...mapState(["customerOrg"]),
  272. },
  273. methods: {
  274. ...mapMutations(["setData"]),
  275. //获取组织体检中心数据
  276. getoraniztion() {
  277. getapi("/api/app/organization-units/organization-unit-by-is-peis").then(
  278. (res) => {
  279. this.data.organizationdata = res.data;
  280. }
  281. );
  282. },
  283. //获取单位类别列表
  284. getOrgType() {
  285. getapi("/api/app/customer-org-type/in-filter").then((res) => {
  286. this.data.customerOrgType = res.data.items;
  287. });
  288. },
  289. //更新获取单位树节点数据
  290. getCustomerOrgTree() {
  291. getapi("/api/app/customer-org/by-code-all").then((res) => {
  292. //customerOrgTree = res.data;
  293. console.log("res.data", res.data);
  294. this.setData({ key: "customerOrg.customerOrgTree", value: res.data });
  295. tcdate(this.customerOrg.customerOrgTree);
  296. });
  297. },
  298. //提交
  299. Onsubmit(formName) {
  300. console.log("vuex data", this.customerOrg.customerOrgRd);
  301. this.$refs[formName].validate((valid) => {
  302. if (valid) {
  303. //赋值
  304. objCopy(this.customerOrg.customerOrgRd, this.pojo);
  305. if (typeof this.pojo.parentId === "string") {
  306. if (!this.pojo.parentId || this.pojo.parentId.length < 1) {
  307. this.pojo.parentId = null;
  308. }
  309. } else {
  310. if (this.pojo.parentId && this.pojo.parentId.length > 0) {
  311. this.pojo.parentId =
  312. this.pojo.parentId[this.pojo.parentId.length - 1];
  313. } else {
  314. this.pojo.parentId = null;
  315. }
  316. }
  317. console.log(
  318. "pojo",
  319. this.pojo,
  320. "this.customerOrg.customerOrgRd",
  321. this.customerOrg.customerOrgRd
  322. );
  323. if (this.customerOrg.customerOrgRd.id.length < 1) {
  324. //id为空则新增
  325. postapi(`/api/app/customer-org`, this.pojo).then((res) => {
  326. if (res.code == 1) {
  327. this.$message.success("创健 操作成功");
  328. this.setData({ key: "customerOrg.customerOrgRd", value: res });
  329. this.customerOrg.customerOrgId = res.id;
  330. this.customerOrg.customerOrgRd = res;
  331. this.getCustomerOrgTree();
  332. }
  333. });
  334. } else {
  335. //id不为空则编辑
  336. putapi(
  337. `/api/app/customer-org/${this.customerOrg.customerOrgRd.id}`,
  338. this.pojo
  339. ).then((res) => {
  340. if (res.code == 1) {
  341. this.$message.success("更新 操作成功");
  342. this.getCustomerOrgTree();
  343. }
  344. });
  345. }
  346. } else {
  347. alert("未通过数据校验");
  348. return false;
  349. }
  350. });
  351. },
  352. //新增弹框
  353. add() {
  354. this.customerOrg.customerOrgId = "";
  355. this.customerOrg.customerOrgRd = { id: "", isLock: "N", isActive: "Y" };
  356. },
  357. //删除
  358. del() {
  359. deletapi(
  360. `/api/app/customer-org/${this.customerOrg.customerOrgRd.id}`
  361. ).then((res) => {
  362. this.$message.success("删除 操作成功");
  363. this.setData({ key: "customerOrg.customerOrgRd", value: { id: "" } });
  364. this.getCustomerOrgTree();
  365. });
  366. },
  367. },
  368. };
  369. </script>
  370. <style scoped></style>