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

editInspection.vue 16KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434
  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="请选择" @change="changeProject">
  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.new_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">
  80. <div v-if="scope.row.type == 2">{{scope.row.unit}}</div>
  81. <div v-if="scope.row.type == 3">{{scope.row.unit}}</div>
  82. </template>
  83. </el-table-column>
  84. <el-table-column align="center" prop="name" label="单价" width="120">
  85. <template slot-scope="scope">{{scope.row.price}}</template>
  86. </el-table-column>
  87. <el-table-column align="center" prop="name" label="操作">
  88. <template slot-scope="scope">
  89. <el-tooltip
  90. class="item"
  91. effect="dark"
  92. content="删除"
  93. placement="top"
  94. >
  95. <el-button
  96. type="danger"
  97. icon="el-icon-delete"
  98. size="small"
  99. @click="DeleteProject(scope.row.m_id,scope.$index)"
  100. ></el-button>
  101. </el-tooltip>
  102. </template>
  103. </el-table-column>
  104. </el-table>
  105. </el-form>
  106. </div>
  107. <div slot="footer" class="dialog-footer">
  108. <el-button @click="hide">取 消</el-button>
  109. <el-button type="primary" @click="submitAction('form')">保 存</el-button>
  110. </div>
  111. </el-dialog>
  112. </template>
  113. <script>
  114. import {
  115. editTeam
  116. } from '@/api/his/his'
  117. import {
  118. addProjectList,
  119. DeleteProject,
  120. getAllProjectList,
  121. getProjectTeamDetail,
  122. updatedProjectTeam
  123. } from '@/api/project/project'
  124. import { getDataConfig, getDictionaryDataConfig } from '@/utils/data'
  125. export default {
  126. data() {
  127. return {
  128. visible: false,
  129. formTitle: '',
  130. activeName: 'first',
  131. form: {
  132. id: '',
  133. project_team: '',
  134. price: '',
  135. pinyin: '',
  136. wubi: '',
  137. tube_color: '',
  138. team_type: '',
  139. remark: '',
  140. project_detail: '',
  141. number: '',
  142. item_id: ''
  143. },
  144. options: [{
  145. value: 1,
  146. label: '是'
  147. }, {
  148. value: 2,
  149. label: '否'
  150. }],
  151. value: '',
  152. radio: '1',
  153. rules: {
  154. project_team: [{ required: true, message: '请填写组套名称', trigger: 'blur' }],
  155. // pinyin: [{ required: true, message: '请填写拼音' , trigger: 'blur' }],
  156. // wubi: [{ required: true, message: '请填写五笔' , trigger: 'blur' }],
  157. price: [{ required: true, message: '请填写价格', trigger: 'change' }],
  158. //team_type: [{ required: true, message: '请填写组套类型', trigger: 'change' }]
  159. },
  160. tableData: [],
  161. item_id: [],
  162. projectList: []
  163. }
  164. },
  165. methods: {
  166. getUnit(id){
  167. var arr = getDataConfig('hemodialysis','units')
  168. for(let i = 0;i < arr.length; i++){
  169. if(id == arr[i].id){
  170. return arr[i].name
  171. }
  172. }
  173. },
  174. changeProject() {
  175. this.form.number = 1
  176. },
  177. getDataConfig(module, filed_name) {
  178. return getDataConfig(module, filed_name)
  179. },
  180. getDictionaryDataConfig(module, filed_name) {
  181. return getDictionaryDataConfig(module, filed_name)
  182. },
  183. _close: function(done) {
  184. done()
  185. },
  186. clear: function() {
  187. this.form.id = 0
  188. this.form.name = ''
  189. this.form.intro = ''
  190. },
  191. show(id) {
  192. this.visible = true
  193. this.formTitle = '编辑'
  194. this.getlist(id)
  195. this.getProjectTeamDetail(id)
  196. this.projectList = []
  197. },
  198. getlist(id) {
  199. getAllProjectList().then(response => {
  200. if (response.data.state == 1) {
  201. var projectList = response.data.data.projectList
  202. var goodInfos = response.data.data.good_info
  203. console.log("332323232323232",goodInfos)
  204. for (let i = 0; i < projectList.length; i++) {
  205. let obj = {
  206. id: projectList[i].id,
  207. statistical_classification: projectList[i].statistical_classification,
  208. number: '1',
  209. project_name: projectList[i].project_name,
  210. unit: projectList[i].unit,
  211. price: projectList[i].price,
  212. type: 2,
  213. m_id: 0,
  214. new_id: Math.floor((Math.random() + Math.floor(Math.random() * 9 + 1)) * Math.pow(10, 10 - 1))
  215. }
  216. this.projectList.push(obj)
  217. }
  218. for (let i = 0; i < goodInfos.length; i++) {
  219. let obj = {
  220. id: goodInfos[i].id,
  221. statistical_classification: goodInfos[i].statistical_classification,
  222. number: '1',
  223. project_name:goodInfos[i].good_name + " " + goodInfos[i].specification_name,
  224. unit: goodInfos[i].packing_unit,
  225. price: goodInfos[i].retail_price,
  226. type: 3,
  227. m_id: 0,
  228. new_id: Math.floor((Math.random() + Math.floor(Math.random() * 9 + 1)) * Math.pow(10, 10 - 1))
  229. }
  230. this.projectList.push(obj)
  231. }
  232. console.log("编辑项目23332232323",this.projectList)
  233. }
  234. })
  235. },
  236. hide() {
  237. this.visible = false
  238. },
  239. getProjectTeamDetail(id) {
  240. getProjectTeamDetail(id).then(response => {
  241. if (response.data.state == 1) {
  242. this.tableData = []
  243. var projectTeamDetail = response.data.data.projectTeamDetail
  244. var hisList = response.data.data.hisList
  245. for (let i = 0; i < hisList.length; i++) {
  246. let obj = {
  247. m_id: hisList[i].id,
  248. id: hisList[i].project_id,
  249. number: hisList[i].number,
  250. type: hisList[i].type
  251. }
  252. if (hisList[i].type == 2) {
  253. obj['statistical_classification'] = hisList[i].project.statistical_classification
  254. obj['project_name'] = hisList[i].project.project_name
  255. obj['unit'] = hisList[i].project.unit
  256. obj['price'] = hisList[i].project.price
  257. } else {
  258. obj['project_name'] = hisList[i].good_info.good_name
  259. obj['unit'] = hisList[i].good_info.packing_unit
  260. obj['price'] = hisList[i].good_info.retail_price
  261. }
  262. this.tableData.push(obj)
  263. }
  264. this.form.id = projectTeamDetail.id
  265. this.form.project_team = projectTeamDetail.project_team
  266. this.form.price = projectTeamDetail.price
  267. this.form.pinyin = projectTeamDetail.pinyin
  268. this.form.wubi = projectTeamDetail.wubi
  269. this.form.tube_color = projectTeamDetail.tube_color
  270. if (projectTeamDetail.tube_color == 0) {
  271. this.form.tube_color = ''
  272. }
  273. this.form.team_type = projectTeamDetail.team_type
  274. if (projectTeamDetail.team_type == 0) {
  275. this.form.team_type = ''
  276. }
  277. this.form.remark = projectTeamDetail.remark
  278. // this.form.item_id = projectTeamDetail.item_id
  279. // console.log("project",projectTeamDetail)
  280. }
  281. })
  282. },
  283. submitAction(formName) {
  284. this.$refs[formName].validate((valid) => {
  285. var arr = []
  286. for (let i = 0; i < this.tableData.length; i++) {
  287. if (this.tableData[i].m_id == 0) {
  288. arr.push(this.tableData[i])
  289. }
  290. }
  291. if (valid) {
  292. var params = {
  293. id: this.form.id,
  294. project_team: this.form.project_team,
  295. price: this.form.price,
  296. pinyin: this.form.pinyin,
  297. wubi: this.form.wubi,
  298. tube_color: this.form.tube_color,
  299. team_type: this.form.team_type,
  300. remark: this.form.remark
  301. }
  302. let data = {
  303. 'info': arr
  304. } // console.log("params",params)
  305. editTeam(params, data).then(response => {
  306. if (response.data.state == 1) {
  307. // var projectTeam = response.data.data.projectTeam
  308. this.$message.success('保存成功')
  309. this.visible = false
  310. this.projectList = []
  311. // this.$parent.getlist()
  312. }
  313. })
  314. }
  315. })
  316. },
  317. getId(id) {
  318. console.log('id', id)
  319. var name = ''
  320. var statistics_category = getDictionaryDataConfig('system', 'statistics_category')
  321. console.log('statics', statistics_category)
  322. for (let i = 0; i < statistics_category.length; i++) {
  323. if (id == statistics_category[i].id) {
  324. name = statistics_category[i].name
  325. }
  326. }
  327. return name
  328. },
  329. addProjectList() {
  330. var project_name = ""
  331. for(let i=0;i<this.projectList.length;i++){
  332. if(this.form.project_detail == this.projectList[i].new_id){
  333. project_name = this.projectList[i].project_name
  334. }
  335. }
  336. if(this.tableData.length > 0){
  337. for(let i=0;i<this.tableData.length;i++){
  338. if(this.tableData[i].project_name == project_name){
  339. this.$message.error("项目名称已存在")
  340. return
  341. }
  342. }
  343. }
  344. for (let i = 0; i < this.projectList.length; i++) {
  345. if (this.form.project_detail == this.projectList[i].new_id) {
  346. this.projectList[i].number = this.form.number
  347. this.projectList[i].number = this.projectList[i].number.toString()
  348. this.tableData.push(this.projectList[i])
  349. this.form.project_detail = ''
  350. this.form.number = ''
  351. }
  352. }
  353. },
  354. DeleteProject(id, index) {
  355. if (id == 0) {
  356. this.$confirm('确认删除此项目吗?', '删除', {
  357. confirmButtonText: '确 定',
  358. cancelButtonText: '取 消',
  359. type: 'warning'
  360. }).then(() => {
  361. this.tableData.splice(index, 1)
  362. })
  363. .catch(() => {
  364. })
  365. } else {
  366. this.$confirm('确认删除此项目吗?', '删除', {
  367. confirmButtonText: '确 定',
  368. cancelButtonText: '取 消',
  369. type: 'warning'
  370. }).then(() => {
  371. DeleteProject(id).then(response => {
  372. if (response.data.state == 1) {
  373. this.tableData.splice(index, 1)
  374. } else {
  375. }
  376. })
  377. })
  378. .catch(() => {
  379. })
  380. }
  381. }
  382. },
  383. created() {
  384. this.getlist()
  385. },watch: {
  386. 'tableData': function() {
  387. let c = 0
  388. this.form.price = 0
  389. for (let i = 0; i < this.tableData.length; i++) {
  390. let a = parseFloat(this.tableData[i].number).toFixed(2)
  391. let b = parseFloat(this.tableData[i].price).toFixed(2)
  392. console.log(a)
  393. console.log(b)
  394. c = c + this.form.price + (a * b)
  395. }
  396. this.form.price = c.toFixed(2)
  397. }
  398. }
  399. }
  400. </script>