Elizabeth's proactive approach involves introducing urinal toilet attachment , an ingenious concept that optimizes space and functionality.

editInspection.vue 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. <template>
  2. <el-dialog
  3. :title="formTitle"
  4. width="900px"
  5. :visible.sync="visible"
  6. :before-close="_close"
  7. >
  8. <div>
  9. <el-form :model="form" :rules="rules" ref="form" label-width="100px"
  10. style="display: flex;flex-wrap: wrap;justify-content: space-between;">
  11. <el-form-item label="组套名称 : " prop="project_team" style="width:100%">
  12. <el-input v-model="form.project_team" placeholder="" maxlength="30"></el-input>
  13. </el-form-item>
  14. <el-form-item label="组套价格 : " prop="price" style="width:100%">
  15. <el-input v-model="form.price" placeholder="" maxlength="30"></el-input>
  16. </el-form-item>
  17. <el-form-item label="拼音 : " prop="pinyin" style="width:50%">
  18. <el-input v-model="form.pinyin" placeholder="" maxlength="30"></el-input>
  19. </el-form-item>
  20. <el-form-item label="五笔 : " prop="wubi" style="width:50%">
  21. <el-input v-model="form.wubi" placeholder="" maxlength="30"></el-input>
  22. </el-form-item>
  23. <el-form-item label="试管颜色 : " prop="name" style="width:50%">
  24. <el-select v-model="form.tube_color" style="width:160px;" placeholder="请选择">
  25. <el-option
  26. v-for="(item,index) in getDictionaryDataConfig('system','tube_color')"
  27. :key="index"
  28. :label="item.name"
  29. :value="item.id">
  30. </el-option>
  31. </el-select>
  32. </el-form-item>
  33. <el-form-item label="组套类型 : " prop="team_type" style="width:50%">
  34. <el-select v-model="form.team_type" style="width:100%;" placeholder="请选择">
  35. <el-option
  36. v-for="item in options"
  37. :key="item.value"
  38. :label="item.label"
  39. :value="item.value">
  40. </el-option>
  41. </el-select>
  42. </el-form-item>
  43. <el-form-item label="备注 : " prop="name" style="width:100%;">
  44. <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.remark"></el-input>
  45. </el-form-item>
  46. <el-form-item label="组套明细" style="width:50%;">
  47. <el-select v-model="form.project_detail" filterable placeholder="请选择">
  48. <el-option
  49. v-for="item,index in projectList"
  50. :key="index"
  51. :label="item.project_name"
  52. :value="item.id">
  53. </el-option>
  54. </el-select>
  55. </el-form-item>
  56. <el-form-item label="数量" style="width:50%;">
  57. <div style="display:flex;">
  58. <el-input v-model="form.number" style="margin-right:10px;"></el-input>
  59. <el-button type="primary" @click="addProjectList">添加</el-button>
  60. </div>
  61. </el-form-item>
  62. </el-form>
  63. <el-form>
  64. <el-table :data="tableData" border style="100%" :row-style="{ color: '#303133' }"
  65. :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
  66. highlight-current-row ref="tab">
  67. <el-table-column align="center" prop="name" label="分类" width="120">
  68. <template slot-scope="scope">
  69. <div>{{scope.row.type == 2?getId(scope.row.statistical_classification):'耗材'}}</div>
  70. </template>
  71. </el-table-column>
  72. <el-table-column align="center" prop="name" label="组套明细" width="120">
  73. <template slot-scope="scope">{{scope.row.project_name}}</template>
  74. </el-table-column>
  75. <el-table-column align="center" prop="name" label="数量" width="120">
  76. <template slot-scope="scope">{{scope.row.number}}</template>
  77. </el-table-column>
  78. <el-table-column align="center" prop="name" label="单位" width="120">
  79. <template slot-scope="scope">{{scope.row.unit}}</template>
  80. </el-table-column>
  81. <el-table-column align="center" prop="name" label="单价" width="120">
  82. <template slot-scope="scope">{{scope.row.price}}</template>
  83. </el-table-column>
  84. <el-table-column align="center" prop="name" label="操作">
  85. <template slot-scope="scope">
  86. <el-tooltip
  87. class="item"
  88. effect="dark"
  89. content="删除"
  90. placement="top"
  91. >
  92. <el-button
  93. type="danger"
  94. icon="el-icon-delete"
  95. size="small"
  96. @click="DeleteProject(scope.row.m_id,scope.$index)"
  97. ></el-button>
  98. </el-tooltip>
  99. </template>
  100. </el-table-column>
  101. </el-table>
  102. </el-form>
  103. </div>
  104. <div slot="footer" class="dialog-footer">
  105. <el-button @click="hide">取 消</el-button>
  106. <el-button type="primary" @click="submitAction('form')">保 存</el-button>
  107. </div>
  108. </el-dialog>
  109. </template>
  110. <script>
  111. import {
  112. editTeam
  113. } from '@/api/his/his'
  114. import {
  115. addProjectList,
  116. DeleteProject,
  117. getAllProjectList,
  118. getProjectTeamDetail,
  119. updatedProjectTeam
  120. } from '@/api/project/project'
  121. import { getDataConfig, getDictionaryDataConfig } from '@/utils/data'
  122. export default {
  123. data() {
  124. return {
  125. visible: false,
  126. formTitle: '',
  127. activeName: 'first',
  128. form: {
  129. id: '',
  130. project_team: '',
  131. price: '',
  132. pinyin: '',
  133. wubi: '',
  134. tube_color: '',
  135. team_type: '',
  136. remark: '',
  137. project_detail: '',
  138. number: '',
  139. item_id: ''
  140. },
  141. options: [{
  142. value: 1,
  143. label: '是'
  144. }, {
  145. value: 2,
  146. label: '否'
  147. }],
  148. value: '',
  149. radio: '1',
  150. rules: {
  151. project_team: [{ required: true, message: '请填写组套名称', trigger: 'blur' }],
  152. // pinyin: [{ required: true, message: '请填写拼音' , trigger: 'blur' }],
  153. // wubi: [{ required: true, message: '请填写五笔' , trigger: 'blur' }],
  154. price: [{ required: true, message: '请填写价格', trigger: 'change' }],
  155. team_type: [{ required: true, message: '请填写组套类型', trigger: 'change' }]
  156. },
  157. tableData: [],
  158. item_id: [],
  159. projectList: []
  160. }
  161. },
  162. methods: {
  163. getDataConfig(module, filed_name) {
  164. return getDataConfig(module, filed_name)
  165. },
  166. getDictionaryDataConfig(module, filed_name) {
  167. return getDictionaryDataConfig(module, filed_name)
  168. },
  169. _close: function(done) {
  170. done()
  171. },
  172. clear: function() {
  173. this.form.id = 0
  174. this.form.name = ''
  175. this.form.intro = ''
  176. },
  177. show(id) {
  178. this.visible = true
  179. this.formTitle = '编辑'
  180. this.getlist(id)
  181. this.getProjectTeamDetail(id)
  182. }, getlist(id) {
  183. getAllProjectList().then(response => {
  184. if (response.data.state == 1) {
  185. console.log(id)
  186. console.log('!~~~~')
  187. var projectList = response.data.data.projectList
  188. var goodInfos = response.data.data.good_info
  189. for (let i = 0; i < projectList.length; i++) {
  190. let obj = {
  191. id: projectList[i].id,
  192. statistical_classification: projectList[i].statistical_classification,
  193. number: '1',
  194. project_name: projectList[i].project_name,
  195. unit: projectList[i].unit,
  196. price: projectList[i].price,
  197. type: 2,
  198. m_id: 0
  199. }
  200. this.projectList.push(obj)
  201. }
  202. for (let i = 0; i < goodInfos.length; i++) {
  203. let obj = {
  204. id: goodInfos[i].id,
  205. statistical_classification: goodInfos[i].statistical_classification,
  206. number: '1',
  207. project_name: goodInfos[i].good_name,
  208. unit: goodInfos[i].good_unit,
  209. price: goodInfos[i].retail_price,
  210. type: 3,
  211. m_id: 0
  212. }
  213. this.projectList.push(obj)
  214. }
  215. }
  216. })
  217. },
  218. hide() {
  219. this.visible = false
  220. },
  221. getProjectTeamDetail(id) {
  222. getProjectTeamDetail(id).then(response => {
  223. if (response.data.state == 1) {
  224. this.tableData = []
  225. var projectTeamDetail = response.data.data.projectTeamDetail
  226. var hisList = response.data.data.hisList
  227. console.log(this.projectList)
  228. console.log(hisList)
  229. for (let i = 0; i < hisList.length; i++) {
  230. let obj = {
  231. m_id: hisList[i].id,
  232. id: hisList[i].project_id,
  233. number: hisList[i].number,
  234. type: hisList[i].type
  235. }
  236. if (hisList[i].type == 2) {
  237. obj['statistical_classification'] = hisList[i].project.statistical_classification
  238. obj['project_name'] = hisList[i].project.project_name
  239. obj['unit'] = hisList[i].project.unit
  240. obj['price'] = hisList[i].project.price
  241. } else {
  242. obj['project_name'] = hisList[i].good_info.good_name
  243. obj['unit'] = hisList[i].good_info.good_unit
  244. obj['price'] = hisList[i].good_info.retail_price
  245. }
  246. this.tableData.push(obj)
  247. }
  248. this.form.id = projectTeamDetail.id
  249. this.form.project_team = projectTeamDetail.project_team
  250. this.form.price = projectTeamDetail.price
  251. this.form.pinyin = projectTeamDetail.pinyin
  252. this.form.wubi = projectTeamDetail.wubi
  253. this.form.tube_color = projectTeamDetail.tube_color
  254. if (projectTeamDetail.tube_color == 0) {
  255. this.form.tube_color = ''
  256. }
  257. this.form.team_type = projectTeamDetail.team_type
  258. if (projectTeamDetail.team_type == 0) {
  259. this.form.team_type = ''
  260. }
  261. this.form.remark = projectTeamDetail.remark
  262. // this.form.item_id = projectTeamDetail.item_id
  263. // console.log("project",projectTeamDetail)
  264. }
  265. })
  266. },
  267. submitAction(formName) {
  268. this.$refs[formName].validate((valid) => {
  269. var arr = []
  270. for (let i = 0; i < this.tableData.length; i++) {
  271. if (this.tableData[i].m_id == 0) {
  272. arr.push(this.tableData[i])
  273. }
  274. }
  275. if (valid) {
  276. var params = {
  277. id: this.form.id,
  278. project_team: this.form.project_team,
  279. price: this.form.price,
  280. pinyin: this.form.pinyin,
  281. wubi: this.form.wubi,
  282. tube_color: this.form.tube_color,
  283. team_type: this.form.team_type,
  284. remark: this.form.remark
  285. }
  286. let data = {
  287. 'info': arr
  288. } // console.log("params",params)
  289. editTeam(params, data).then(response => {
  290. if (response.data.state == 1) {
  291. // var projectTeam = response.data.data.projectTeam
  292. this.$message.success('保存成功')
  293. this.visible = false
  294. // this.$parent.getlist()
  295. }
  296. })
  297. }
  298. })
  299. },
  300. getId(id) {
  301. console.log('id', id)
  302. var name = ''
  303. var statistics_category = getDictionaryDataConfig('system', 'statistics_category')
  304. console.log('statics', statistics_category)
  305. for (let i = 0; i < statistics_category.length; i++) {
  306. if (id == statistics_category[i].id) {
  307. name = statistics_category[i].name
  308. }
  309. }
  310. return name
  311. },
  312. addProjectList() {
  313. for (let i = 0; i < this.projectList.length; i++) {
  314. if (this.form.project_detail == this.projectList[i].id) {
  315. this.projectList[i].number = this.form.number
  316. this.projectList[i].number = this.projectList[i].number.toString()
  317. this.tableData.push(this.projectList[i])
  318. this.form.project_detail = ''
  319. this.form.number = ''
  320. }
  321. }
  322. },
  323. DeleteProject(id, index) {
  324. if (id == 0) {
  325. this.$confirm('确认删除此项目吗?', '删除', {
  326. confirmButtonText: '确 定',
  327. cancelButtonText: '取 消',
  328. type: 'warning'
  329. }).then(() => {
  330. this.tableData.splice(index, 1)
  331. })
  332. .catch(() => {
  333. })
  334. } else {
  335. this.$confirm('确认删除此项目吗?', '删除', {
  336. confirmButtonText: '确 定',
  337. cancelButtonText: '取 消',
  338. type: 'warning'
  339. }).then(() => {
  340. DeleteProject(id).then(response => {
  341. if (response.data.state == 1) {
  342. this.tableData.splice(index, 1)
  343. } else {
  344. }
  345. })
  346. })
  347. .catch(() => {
  348. })
  349. }
  350. }
  351. },
  352. created() {
  353. this.getlist()
  354. }
  355. }
  356. </script>