Bläddra i källkod

Merge branch 'master' of http://172.16.100.139/new-business/drp-web

002390 2 år sedan
förälder
incheckning
95a565427e

+ 26 - 0
src/api/business/spd/bo/accessory.js

@@ -0,0 +1,26 @@
+import request from '@/utils/request'
+
+// 查询附件列表
+export function listAccessory(boId) {
+  return request({
+    url: '/mk/bo/accessory/list?boId=' + boId,
+    method: 'get'
+  })
+}
+
+// 新增附件
+export function addAccessory(data) {
+  return request({
+    url: '/mk/bo/accessory',
+    method: 'post',
+    data: data
+  })
+}
+
+// 删除附件
+export function delAccessory(accessoryId) {
+  return request({
+    url: '/mk/bo/accessory/' + accessoryId,
+    method: 'delete'
+  })
+}

+ 16 - 0
src/api/business/spd/bo/basic.js

@@ -49,3 +49,19 @@ export function delBasic(id) {
     method: 'delete'
   })
 }
+
+//查询固定商机的行动列表
+export function getBehaviorList(id) {
+  return request({
+    url: '/mk/bo/basic/getBehaviorList/' + id,
+    method: 'get'
+  })
+}
+
+// 删除商机附件
+export function delAccessory(boId,f,id) {
+  return request({
+    url: '/mk/bo/basic/accessory?boId=' + boId + '&flag=' + f + '&id=' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
src/api/business/spd/bo/pojpsn.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询成员列表
+export function listPojpsn(query) {
+  return request({
+    url: '/mk/bo/pojpsn/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询成员详细
+export function getPojpsn(pojpsnId) {
+  return request({
+    url: '/mk/bo/pojpsn/' + pojpsnId,
+    method: 'get'
+  })
+}
+
+// 新增成员
+export function addPojpsn(data) {
+  return request({
+    url: '/mk/bo/pojpsn',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改成员
+export function updatePojpsn(data) {
+  return request({
+    url: '/mk/bo/pojpsn',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除成员
+export function delPojpsn(pojpsnId) {
+  return request({
+    url: '/mk/bo/pojpsn/' + pojpsnId,
+    method: 'delete'
+  })
+}

+ 33 - 0
src/api/changeApply/basic.js

@@ -0,0 +1,33 @@
+import request from '@/utils/request'
+
+// 获取物料变更单列表
+export function getChangeList(params) {
+  return request({
+    url: `/material/change/list`,
+    method: 'get',
+    params: params
+  })
+}
+// 物料变更单新增
+export function addChangeList(data) {
+  return request({
+    url: `/material/change/add`,
+    method: 'post',
+    data: data
+  })
+}
+// 获取物料列表信息
+export function getMaterialList(data) {
+  return request({
+    url: `/system/material/list`,
+    method: 'post',
+    data: data
+  })
+}
+// 获取物料基本信息详细信息
+export function getMaterialDetails(id) {
+  return request({
+    url: `/system/material/details/${id}`,
+    method: 'get',
+  })
+}

+ 279 - 0
src/components/PopDialog/index.vue

@@ -0,0 +1,279 @@
+<template>
+  <div>
+    <el-dialog
+      title="物料选择"
+      width="1000px"
+      :close-on-click-modal="false"
+      :append-to-body="true"
+      v-dialogDrag
+      class="userDialog"
+      :visible.sync="visible"
+    >
+      <el-container style="height: 500px">
+        <el-container>
+          <el-header style="text-align: left; font-size: 12px; height: 30px">
+            <el-form
+              size="small"
+              :inline="true"
+              ref="searchForm"
+              :model="searchForm"
+              @keyup.enter.native="refreshList()"
+              @submit.native.prevent
+            >
+              <el-form-item prop="code">
+                <el-input
+                  size="small"
+                  v-model="searchForm.code"
+                  placeholder="物料编号"
+                  clearable
+                ></el-input>
+              </el-form-item>
+              <el-form-item prop="name">
+                <el-input
+                  size="small"
+                  v-model="searchForm.name"
+                  placeholder="物料名称"
+                  clearable
+                ></el-input>
+              </el-form-item>
+              <el-form-item>
+                <el-button
+                  type="primary"
+                  @click="refreshList()"
+                  size="small"
+                  icon="el-icon-search"
+                  >查询</el-button
+                >
+                <el-button
+                  @click="resetSearch()"
+                  size="small"
+                  icon="el-icon-refresh-right"
+                >重置</el-button>
+              </el-form-item>
+            </el-form>
+          </el-header>
+          <el-main>
+            <el-table
+              :data="dataList"
+              v-loading="loading"
+              size="small"
+              border
+              ref="contractTable"
+              @select="handleSelectionChange"
+              height="calc(100% - 40px)"
+              style="width: 100%"
+            >
+              <el-table-column
+                type="selection"
+                header-align="center"
+                align="center"
+                width="50"
+              >
+              </el-table-column>
+              <el-table-column
+                prop="code"
+                header-align="center"
+                align="left"
+                sortable="custom"
+                min-width="90"
+                label="code"
+              >
+              </el-table-column>
+              <el-table-column
+                prop="name"
+                header-align="center"
+                align="left"
+                sortable="custom"
+                min-width="90"
+                label="物料名称"
+              >
+              </el-table-column>
+              <!-- <el-table-column
+                prop="contractAmount"
+                header-align="center"
+                align="left"
+                sortable="custom"
+                min-width="110"
+                label="合同金额"
+              >
+              </el-table-column>
+              <el-table-column
+                prop="oppositeCompany"
+                header-align="center"
+                align="center"
+                sortable="custom"
+                min-width="110"
+                label="对方单位"
+              >
+              </el-table-column>
+              <el-table-column
+                prop="signDate"
+                header-align="center"
+                align="left"
+                sortable="custom"
+                min-width="110"
+                label="签订时间"
+              >
+              </el-table-column> -->
+            </el-table>
+            <el-pagination
+              @size-change="sizeChangeHandle"
+              @current-change="currentChangeHandle"
+              :current-page="pageNo"
+              :page-sizes="[5, 10, 15, 20]"
+              :page-size="pageSize"
+              :total="total"
+              layout="total, sizes, prev, pager, next, jumper"
+            >
+            </el-pagination>
+          </el-main>
+        </el-container>
+      </el-container>
+      <span slot="footer" class="dialog-footer">
+        <el-button
+          size="small"
+          @click="visible = false"
+          icon="el-icon-circle-close"
+          >关闭</el-button
+        >
+        <el-button
+          size="small"
+          type="primary"
+          icon="el-icon-circle-check"
+          @click="doSubmit()"
+          >确定</el-button
+        >
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import axios from 'axios'
+import { getMaterialList } from '@/api/changeApply/basic'
+export default {
+  data() {
+    return {
+      searchForm: {
+        code: '',
+        name: ''
+      },
+      dataListAllSelections: [], // 所有选中的数据包含跨页数据
+      idKey: "id", // 标识列表数据中每一行的唯一键的名称(需要按自己的数据改一下)
+      dataList: [],
+      pageNo: 1,
+      pageSize: 10,
+      total: 0,
+      orders: [],
+      loading: false,
+      visible: false,
+    };
+  },
+  props: {
+    selectData: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+    // 是否启用单选
+    single: {
+      type: Boolean,
+      default: false
+    }
+  },
+  methods: {
+    init() {
+      this.visible = true;
+      this.$nextTick(() => {
+        this.dataListAllSelections = JSON.parse(JSON.stringify(this.selectData));
+        this.resetSearch();
+      });
+    },
+    // 获取数据列表
+    refreshList() {
+      this.loading = true;
+      // axios({
+      //   url: "http://172.16.62.241:8000/drp-admin/system/material/list", // 自己的接口路径
+      //   method: "post",
+      //   data: {
+      //     // current: this.pageNo,
+      //     size: this.pageSize,
+      //     // orders: this.orders,
+      //     // ...this.searchForm,
+      //   },
+      getMaterialList({
+        pageNo: 1,
+        size: this.pageSize
+      }).then(({ data }) => {
+        console.log('data',data)
+        this.dataList = data.tableBody.rows;
+        this.total = data.tableBody.total;
+        this.pageNo = data.current;
+        this.loading = false;
+        this.$nextTick(() => {
+          this.setSelectRow();
+        });
+      });
+    },
+    // 每页数
+    sizeChangeHandle(val) {
+      this.pageSize = val;
+      this.pageNo = 1;
+      this.refreshList();
+    },
+    // 当前页
+    currentChangeHandle(val) {
+      this.pageNo = val;
+      this.refreshList();
+    },
+    // 排序
+    resetSearch() {
+      this.$refs.searchForm.resetFields();
+      this.refreshList();
+    },
+    // 选中数据
+    handleSelectionChange(selection, row) {
+      if (this.single && selection.length > 1) {
+        this.$refs.contractTable.clearSelection();
+        this.$refs.contractTable.toggleRowSelection(row);
+      }
+      this.dataListAllSelections = this.single ? [row] : selection
+    },
+    // 设置选中的方法
+    setSelectRow() {
+      this.$refs.contractTable.clearSelection();
+      if (!this.dataListAllSelections || this.dataListAllSelections.length <= 0) {
+        return;
+      }
+      for (let i = 0; i < this.dataList.length; i++) {
+        if (this.dataListAllSelections.some(item => item[this.idKey] == this.dataList[i][this.idKey])) {
+          // 设置选中,记住table组件需要使用ref="table"
+          this.$refs.contractTable.toggleRowSelection(this.dataList[i], true);
+        }
+      }
+    },
+    doSubmit() {
+      this.visible = false;
+      console.log('选择的数据?',this.dataListAllSelections)
+      this.$emit("doSubmit", this.dataListAllSelections);
+    },
+  },
+};
+</script>
+<style lang="scss">
+.userDialog {
+  .el-dialog__body {
+    padding: 10px 0px 0px 10px;
+    color: #606266;
+    font-size: 14px;
+    word-break: break-all;
+  }
+  .el-main {
+    padding: 20px 20px 5px 20px;
+    .el-pagination {
+      margin-top: 5px;
+    }
+  }
+}
+</style>

+ 12 - 0
src/router/index.js

@@ -93,6 +93,18 @@ export const constantRoutes = [
       }
     ]
   },
+  {
+    // business/spd/bo/basic
+    path: '/basic/spd/bo/basic',
+    component: Layout,
+    hidden: true,
+    children: [
+      {
+        path: `details/:id`,
+        component: () => import('@/views/business/spd/bo/basic/details')
+      }
+    ]
+  },
 
 
   // 物料申请单

+ 851 - 0
src/views/business/spd/bo/basic/details.vue

@@ -0,0 +1,851 @@
+<!-- 商机-详情 -->
+<template>
+  <div class="md-content">
+    <el-row type="flex" justify="space-between">
+      <el-col :span="6">
+        <el-button size="small" @click="handleBack">返回</el-button>
+      </el-col>
+      <el-form ref="form" :model="form.basic">
+        <el-col :span="10">
+          <el-input v-model="form.basic.boName" placeholder="商机名称" :disabled="true"/>
+        </el-col>
+        <el-col :span="6">
+          <el-select v-model="form.basic.boState" placeholder="商机状态" :disabled="true">
+                <el-option
+                  v-for="dict in dict.type.mk_bo_type"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+          </el-select>
+        </el-col>
+        <el-col :span="6">
+          <el-select v-model="form.basic.winningState" placeholder="赢丢单状态" :disabled="true">
+                <el-option
+                  v-for="dict in dict.type.mk_bo_winstate"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+          </el-select>
+        </el-col>
+      </el-form>
+      <el-button-group>
+        <el-col :span="6">
+          <el-button size="small" icon="el-icon-d-arrow-left" ></el-button>
+        </el-col>
+        <el-col :span="6">
+          <el-button size="small" icon="el-icon-arrow-left" ></el-button>
+        </el-col>
+        <el-col :span="6">
+          <el-button size="small" icon="el-icon-arrow-right" ></el-button>
+        </el-col>
+        <el-col :span="6">
+          <el-button size="small" icon="el-icon-d-arrow-right" ></el-button>
+        </el-col>
+      </el-button-group>
+    </el-row>
+
+    <el-tabs v-model="masterTabs" @tab-click="masterTabsSwitch">
+      <el-tab-pane label="基本信息" name="first">
+        项目流程
+        <el-steps :active="form.basic.boStage" finish-status="success">
+          <el-step title="审核"></el-step>
+          <el-step title="立项"></el-step>
+          <el-step title="考察"></el-step>
+          <el-step title="开院务会"></el-step>
+          <el-step title="院内立项"></el-step>
+          <el-step title="调研"></el-step>
+          <el-step title="解决方案"></el-step>
+          <el-step title="签合同"></el-step>
+          <el-step title="进场实施"></el-step>
+          <el-step title="落地方案"></el-step>
+          <el-step title="实施交付"></el-step>
+          <el-step title="上线仪式"></el-step>
+        </el-steps>
+        <el-button style="margin-top: 12px;" @click="next">下一步</el-button>
+        <el-row>
+          基本信息
+        </el-row>
+        <el-form ref="form" :model="form.basic" label-width="80px">
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="商机来源" prop="boSource">
+                <el-select v-model="form.basic.boSource" placeholder="商机来源" :disabled="true">
+                  <el-option
+                    v-for="dict in dict.type.mk_bo_source"
+                    :key="dict.value"
+                    :label="dict.label"
+                    :value="dict.value"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="商机类型" prop="boType">
+                <el-select v-model="form.basic.boType" placeholder="商机类型" :disabled="true">
+                  <el-option
+                    v-for="dict in dict.type.mk_bo_type"
+                    :key="dict.value"
+                    :label="dict.label"
+                    :value="dict.value"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="客户名称" prop="customerName">
+                <el-input v-model="form.basic.customerName" placeholder="请输入客户名称" :disabled="true"/>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="医院营收总额" prop="totalHosRevenue">
+                <el-input v-model="form.basic.totalHosRevenue" placeholder="请输入医院营收总额" :disabled="true"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="医院耗材预估值" prop="hosDiscreetValue">
+                <el-input v-model="form.basic.hosDiscreetValue" placeholder="请输入医院耗材预估值" :disabled="true"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="赢单率" prop="abc">
+                <el-input v-model="form.basic.abc" placeholder="赢单率" :disabled="true"/>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-form-item label="商机内容" prop="boContent">
+                <el-input v-model="form.basic.boContent" placeholder="商机内容" :disabled="true"/>
+              </el-form-item>
+          </el-row>
+        </el-form>
+        <el-row>
+          流程信息
+        </el-row>
+        <el-tabs v-model="secondTabs" @tab-click="secondTabsSwitch">
+          <el-tab-pane label="阶段动作" name="jd1" style="height: 150px;overflow-y: scroll;" v-if="form.basic.boStage == 0">
+            <el-form ref="form" :model="form.basic" :rules="rules">
+              <el-row>
+                <el-col :span="10">
+                  <el-form-item label="医院应收总额" prop="totalHosRevenue">
+                    <el-input v-model="form.basic.totalHosRevenue" placeholder="医院应收总额" :disabled="true"/>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-col :span="10">
+                  <el-form-item label="医院耗材预估额" prop="hosDiscreetValue">
+                    <el-input v-model="form.basic.hosDiscreetValue" placeholder="医院耗材预估额" :disabled="true"/>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form>
+          </el-tab-pane>
+          <el-tab-pane label="阶段动作" name="jd2" style="height: 150px;overflow-y: scroll;" v-if="form.basic.boStage == 1">
+            <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
+              <el-row>
+                项目立项是否通过
+                <el-radio v-model = form.basic.boFlow.projectApproval label="1">是</el-radio>
+                <el-radio v-model = form.basic.boFlow.projectApproval label="0">否</el-radio>
+              </el-row>
+              <el-row v-if="form.basic.boFlow.projectApproval == 1">
+                <el-col :span="1.5">
+                  <el-input v-model="form.basic.boFlow.businessCouncilAccessoryName" placeholder="请上传商机审议会" :disabled="true"/>
+                </el-col>
+                <el-col :span="1.5">
+                  <el-button
+                    type="info"
+                    plain
+                    icon="el-icon-upload2"
+                    size="mini"
+                    @click="uploadAccessory(`business_council_accessory`)"
+                    v-hasPermi="['system:user:import']"
+                  >上传</el-button>
+                  <el-button
+                    size="mini"
+                    type="text"
+                    icon="el-icon-delete"
+                    @click="deleteAccessory(`business_council_accessory`,1)"
+                    v-hasPermi="['system:basic:remove']"
+                  >删除</el-button>
+                </el-col>
+              </el-row>
+              <el-row v-if="form.basic.boFlow.projectApproval == 1">
+                <el-col :span="1.5">
+                  <el-input v-model="form.basic.boFlow.projectProposalAccessoryName" placeholder="请上传立项书" :disabled="true"/>
+                </el-col>
+                <el-col :span="1.5">
+                  <el-button
+                    type="info"
+                    plain
+                    icon="el-icon-upload2"
+                    size="mini"
+                    @click="uploadAccessory(`project_proposal_accessory`)"
+                    v-hasPermi="['system:user:import']"
+                  >上传</el-button>
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-col :span="10" v-if="form.basic.boFlow.projectApproval == 0">
+                    项目未通过原因:<el-input v-model="form.basic.boFlow.noPassCause" />
+                </el-col>
+              </el-row>
+            </el-form>
+          </el-tab-pane>
+          <el-tab-pane label="立项模板" name="lx" style="height: 150px;overflow-y: scroll;" v-if="form.basic.boStage == 1">
+            <el-row>
+              <el-button @click="pojproDownload">标准立项书</el-button>
+            </el-row>
+            <el-row>
+              <el-button @click="pojproDownload">商机审会决议书</el-button>
+            </el-row>
+          </el-tab-pane>
+          <el-tab-pane label="项目人员组成" name="xmry" style="height: 150px;overflow-y: scroll;" v-if="form.basic.boStage == 1">
+            <el-row :gutter="10" class="mb8">
+              <el-col :span="1.5">
+                <el-button
+                  type="primary"
+                  plain
+                  icon="el-icon-plus"
+                  size="mini"
+                  @click="handleAdd"
+                  v-hasPermi="['drp-business:task:add']"
+                >新增</el-button>
+              </el-col>
+            </el-row>
+            <el-table v-loading="loading" :data="form.pojpsn">
+              <el-table-column type="selection" width="55" align="center" />
+              <el-table-column label="名称" align="center" prop="staffName" />
+              <el-table-column label="岗位名称" align="center" prop="pojpost" />
+              <el-table-column label="负责事项" align="center" prop="duty" />
+            </el-table>
+          </el-tab-pane>
+          <el-tab-pane label="方案模板" name="fa" style="height: 150px;overflow-y: scroll;" v-if="form.basic.boStage == 6">
+            <el-row>
+              <el-button @click="pojproDownload">售前提案文件模板</el-button>
+            </el-row>
+            <el-row>
+              <el-button @click="pojproDownload">考察报告模板</el-button>
+            </el-row>
+            <el-row>
+              <el-button @click="pojproDownload">调研相关文件模板</el-button>
+            </el-row>
+            <el-row>
+              <el-button @click="pojproDownload">投标模板</el-button>
+            </el-row>
+            <el-row>
+              <el-button @click="pojproDownload">其他文件</el-button>
+            </el-row>
+          </el-tab-pane>
+          <el-tab-pane label="售前提案" name="sq" style="height: 150px;overflow-y: scroll;" v-if="form.basic.boStage == 6">
+            <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
+              <el-row>
+                <el-col :span="1.5">
+                  <el-input v-model="form.basic.boFlow.preSaleProposalAccessoryName" placeholder="请上传售前提案文件" :disabled="true"/>
+                </el-col>
+                <el-col :span="1.5">
+                  <el-button
+                    type="info"
+                    plain
+                    icon="el-icon-upload2"
+                    size="mini"
+                    @click="uploadAccessory(`pre_sale_proposal_accessory`)"
+                    v-hasPermi="['system:user:import']"
+                  >上传</el-button>
+                </el-col>
+              </el-row>
+            </el-form>
+          </el-tab-pane>
+          <el-tab-pane label="邀请考察" name="kc" style="height: 150px;overflow-y: scroll;" v-if="form.basic.boStage == 6">
+            <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
+              <el-row>
+                <el-col :span="5">
+                  <el-form-item label="考察开始时间" prop="inspectStartTime">
+                    <el-date-picker
+                      v-model="form.basic.boFlow.inspectStartTime"
+                      type="datetime"
+                      placeholder="选择日期时间">
+                    </el-date-picker>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5">
+                  <el-form-item label="考察结束时间" prop="inspectStartTime">
+                    <el-date-picker
+                      v-model="form.basic.boFlow.inspectEndTime"
+                      type="datetime"
+                      placeholder="选择日期时间">
+                    </el-date-picker>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-col :span="1.5">
+                  <el-input v-model="form.basic.boFlow.investigationReportAccessoryName" placeholder="请上传考察报告" :disabled="true"/>
+                </el-col>
+                <el-col :span="1.5">
+                  <el-button
+                    type="info"
+                    plain
+                    icon="el-icon-upload2"
+                    size="mini"
+                    @click="uploadAccessory(`investigation_report_accessory`)"
+                    v-hasPermi="['system:user:import']"
+                  >上传</el-button>
+                </el-col>
+              </el-row>
+            </el-form>
+          </el-tab-pane>
+          <el-tab-pane label="开院务会" name="kh" style="height: 150px;overflow-y: scroll;" v-if="form.basic.boStage == 6">
+            <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
+              <el-row>
+                <el-col :span="5">
+                  <el-form-item label="开院务会时间" prop="conferenceTime">
+                    <el-date-picker
+                      v-model="form.basic.boFlow.conferenceTime"
+                      type="datetime"
+                      placeholder="选择日期时间">
+                    </el-date-picker>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form>
+          </el-tab-pane>
+          <el-tab-pane label="院内立项" name="yn" style="height: 150px;overflow-y: scroll;" v-if="form.basic.boStage == 6">
+            <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
+              <el-row>
+                <el-col :span="5">
+                  <el-form-item label="院内立项时间" prop="hospitalApprovalTime">
+                    <el-date-picker
+                      v-model="form.basic.boFlow.conferenceTime"
+                      type="datetime"
+                      placeholder="选择日期时间">
+                    </el-date-picker>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5">
+                  <el-form-item label="院内立项牵头人" prop="hospitalApprovalInitiator">
+                    <el-input v-model="form.basic.boFlow.hospitalApprovalInitiator" placeholder="院内立项牵头人" />
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form>
+          </el-tab-pane>
+          <el-tab-pane label="进场调研" name="jc" style="height: 150px;overflow-y: scroll;" v-if="form.basic.boStage == 6">
+            <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
+              <el-row>
+                <el-col :span="5">
+                  <el-form-item label="调研时间" prop="researchTime">
+                    <el-date-picker
+                      v-model="form.basic.boFlow.researchTime"
+                      type="datetime"
+                      placeholder="选择日期时间">
+                    </el-date-picker>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-col :span="1.5">
+                  <el-input v-model="form.basic.boFlow.investigateReportAccessoryName" placeholder="调研报告" :disabled="true"/>
+                </el-col>
+                <el-col :span="1.5">
+                  <el-button
+                    type="info"
+                    plain
+                    icon="el-icon-upload2"
+                    size="mini"
+                    @click="uploadAccessory(`investigation_report_accessory`)"
+                    v-hasPermi="['system:user:import']"
+                  >上传</el-button>
+                </el-col>
+              </el-row>
+            </el-form>
+          </el-tab-pane>
+          <el-tab-pane label="挂网投标" name="gw" style="height: 150px;overflow-y: scroll;" v-if="form.basic.boStage == 7">
+            <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
+              <el-row>
+                <el-col :span="5">
+                  <el-form-item label="挂网时间" prop="researchTime">
+                    <el-date-picker
+                      v-model="form.basic.boFlow.hangingTime"
+                      type="datetime"
+                      placeholder="选择日期时间">
+                    </el-date-picker>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5">
+                  <el-form-item label="投标书" prop="researchTime">
+                    <el-input v-model="form.basic.boFlow.biddingDocumentsAccessoryName" placeholder="请上传投标书" :disabled="true"/>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5">
+                  <el-button
+                    type="info"
+                    plain
+                    icon="el-icon-upload2"
+                    size="mini"
+                    @click="uploadAccessory(`bidding_documents_accessory`)"
+                    v-hasPermi="['system:user:import']"
+                  >上传</el-button>
+                </el-col>
+                <el-col :span="5">
+                  <el-form-item label="我方优势" prop="researchTime">
+                    <el-input v-model="form.ourAdvantage" placeholder="我方优势" />
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-col :span="5">
+                  投标是否通过
+                  <el-radio v-model = form.basic.boFlow.biddingDocumentsPass label="1">是</el-radio>
+                  <el-radio v-model = form.basic.boFlow.biddingDocumentsPass label="0">否</el-radio>
+                </el-col>
+              </el-row>
+              <el-row v-if="form.basic.boFlow.biddingDocumentsPass == 1">
+                <el-col :span="1.5">
+                  <el-input v-model="form.basic.boFlow.letterAcceptanceAccessoryName" placeholder="中标通知书" :disabled="true"/>
+                </el-col>
+                <el-col :span="1.5">
+                  <el-button
+                    type="info"
+                    plain
+                    icon="el-icon-upload2"
+                    size="mini"
+                    @click="uploadAccessory(`letter_acceptance_accessory`)"
+                    v-hasPermi="['system:user:import']"
+                  >上传</el-button>
+                </el-col>
+              </el-row>
+            </el-form>
+          </el-tab-pane>
+          <el-tab-pane label="合同签订" name="ht" style="height: 150px;overflow-y: scroll;" v-if="form.basic.boStage == 7">
+            <el-form ref="form" :model="form.basic.boFlow" :rules="rules">
+              <el-row>
+                <el-col :span="5">
+                  <el-form-item label="合同签订时间" prop="contractSigningTime">
+                    <el-date-picker
+                      v-model="form.basic.boFlow.contractSigningTime"
+                      type="datetime"
+                      placeholder="选择日期时间">
+                    </el-date-picker>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-col :span="5">
+                  <el-input v-model="form.basic.boFlow.contractDocumentAccessoryName" placeholder="合同文件" :disabled="true"/>
+                </el-col>
+                <el-col :span="5">
+                  <el-button
+                    type="info"
+                    plain
+                    icon="el-icon-upload2"
+                    size="mini"
+                    @click="uploadAccessory(`contract_document_accessory`)"
+                    v-hasPermi="['system:user:import']"
+                  >上传</el-button>
+                </el-col>
+              </el-row>
+            </el-form>
+          </el-tab-pane>
+          <el-tab-pane label="跟进记录" name="gj" style="height: 150px;overflow-y: scroll;" v-if="form.basic.boStage == 0 || form.basic.boStage == 1 || form.basic.boStage == 6 || form.basic.boStage == 7">
+            <el-row :gutter="10" class="mb8">
+              <el-col :span="1.5">
+                <el-button
+                  type="primary"
+                  plain
+                  icon="el-icon-plus"
+                  size="mini"
+                  @click="handleAdd"
+                  v-hasPermi="['drp-business:task:add']"
+                >新增</el-button>
+              </el-col>
+            </el-row>
+            <el-table v-loading="loading" :data="form.behavior">
+              <el-table-column type="selection" width="55" align="center" />
+              <el-table-column label="跟进人" align="center" prop="code" />
+              <el-table-column label="跟进日期" align="center" prop="name" />
+              <el-table-column label="是否跟进" align="center" prop="type" />
+              <el-table-column label="联系人" align="center" prop="type" />
+              <el-table-column label="拜访效果" align="center" prop="type" />
+              <el-table-column label="是否需要上级协助" align="center" prop="type" />
+              <el-table-column label="协助事项" align="center" prop="type" />
+              <el-table-column label="跟进内容" align="center" prop="type" />
+            </el-table>
+          </el-tab-pane>
+        </el-tabs>
+        <el-row>
+          其它信息
+        </el-row>
+        <el-form ref="form" :model="form.basic" label-width="80px">
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="销售组织" prop="marketingOrganizing">
+                <el-input v-model="form.basic.marketingOrganizing" placeholder="销售组织" :disabled="true"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="销售区域" prop="marketingArea">
+                <el-input v-model="form.basic.marketingArea" placeholder="销售区域" :disabled="true"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="部门" prop="deptName">
+                <el-input v-model="form.basic.deptName" placeholder="部门" :disabled="true"/>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="负责人" prop="principal">
+                <el-input v-model="form.basic.principal" placeholder="负责人" :disabled="true"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="创建人" prop="createBy">
+                <el-input v-model="form.basic.createBy" placeholder="创建人" :disabled="true"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="创建时间" prop="createTime">
+                <el-input v-model="form.basic.createTime" placeholder="创建时间" :disabled="true"/>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+
+      </el-tab-pane>
+      <el-tab-pane label="商机任务" name="second">
+        <el-row :gutter="10" class="mb8">
+          <el-col :span="1.5">
+            <el-button
+              type="primary"
+              plain
+              icon="el-icon-plus"
+              size="mini"
+              @click="handleAdd"
+              v-hasPermi="['drp-business:task:add']"
+            >新增</el-button>
+          </el-col>
+        </el-row>
+        <el-table v-loading="loading" :data="form.task">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="任务编码" align="center" prop="code" />
+          <el-table-column label="任务名称" align="center" prop="name" />
+          <el-table-column label="任务类型" align="center" prop="type" />
+          <el-table-column label="任务状态" align="center" prop="state" />
+          <el-table-column label="客户名称" align="center" prop="customerName" />
+          <el-table-column label="联系人名称" align="center" prop="linkmanName" />
+          <el-table-column label="销售组织名称" align="center" prop="salesOrgName" />
+          <el-table-column label="部门名称" align="center" prop="deptName" />
+          <el-table-column label="负责人名称" align="center" prop="staffName" />
+          <el-table-column label="截止时间" align="center" prop="deadlineDate" width="180">
+            <template slot-scope="scope">
+              <span>{{ parseTime(scope.row.deadlineDate, '{y}-{m}-{d}') }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="任务内容" align="center" prop="content" />
+        </el-table>
+      </el-tab-pane>
+      <el-tab-pane label="商机联系人" name="third">
+        <el-row :gutter="10" class="mb8">
+          <el-col :span="1.5">
+            <el-button
+              type="primary"
+              plain
+              icon="el-icon-plus"
+              size="mini"
+              @click="handleAdd"
+              v-hasPermi="['drp-business:task:add']"
+            >新增</el-button>
+          </el-col>
+        </el-row>
+        <el-table v-loading="loading" :data="form.contact">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="名称" align="center" prop="code" />
+          <el-table-column label="性别" align="center" prop="name" />
+          <el-table-column label="联系电话" align="center" prop="type" />
+          <el-table-column label="部门" align="center" prop="state" />
+          <el-table-column label="职务" align="center" prop="customerName" />
+          <el-table-column label="决策力" align="center" prop="linkmanName" />
+          <el-table-column label="态度" align="center" prop="salesOrgName" />
+          <el-table-column label="地址" align="center" prop="deptName" />
+        </el-table>
+      </el-tab-pane>
+      <el-tab-pane label="附件信息" name="fourth">
+        <el-row :gutter="10" class="mb8">
+          <el-col :span="1.5">
+            <el-button
+              type="info"
+              plain
+              icon="el-icon-upload2"
+              size="mini"
+              @click="uploadAccessory(`list`)"
+              v-hasPermi="['system:user:import']"
+            >上传</el-button>
+          </el-col>
+        </el-row>
+        <el-table v-loading="loading" :data="form.accessory">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column type="index" label="序号" width="55" align="center" />
+          <el-table-column label="名称" align="center" prop="fileName" />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-delete"
+                @click="deleteAccessory(`list`,scope.row)"
+                v-hasPermi="['system:basic:remove']"
+              >删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-tab-pane>
+    </el-tabs>
+
+    <!-- 上传对话框 -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls,.doc,docx"
+        :headers="upload.headers"
+        :action="upload.url + '?boId=' + form.basic.id + '&flag=' + upload.flag"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+
+</template>
+
+<script>
+import {getBasic,getBehaviorList,delAccessory} from "@/api/business/spd/bo/basic";
+import { listTask, getTask, delTask, addTask, updateTask } from "@/api/business/spd/bo/task";
+import { listAccessory, } from "@/api/business/spd/bo/accessory";
+import {listPojpsn} from "@/api/business/spd/bo/pojpsn";
+import { getToken } from "@/utils/auth";
+
+export default {
+  name: 'bo-details',
+  dicts: ['mk_bo_type','mk_bo_state','mk_bo_winstate','mk_bo_source'],
+  data() {
+      return {
+        masterTabs: 'first',
+        secondTabs: 'jd1',
+        // 基本信息
+        form: {
+          basic:{
+            boFlow:{}
+          },
+          task:[],
+          contact:[],
+          accessory:[],
+          pojpsn:[],
+          behavior:[],
+          pojpsn:[],
+        },
+        // 上传参数
+        upload: {
+          // 是否显示弹出层
+          open: false,
+          // 弹出层标题
+          title: "",
+          // 是否禁用上传
+          isUploading: false,
+          // 上传类型
+          flag: "",
+          // 设置上传的请求头部
+          headers: { Authorization: "Bearer " + getToken() },
+          // 上传的地址
+          url: process.env.VUE_APP_BASE_API + "/mk/bo/basic/upload"
+        },
+      }
+  },
+  methods: {
+    // 返回
+    handleBack() {
+      this.$router.push('/business/spd/bo/basic');
+    },
+    //主多页签切换
+    masterTabsSwitch(e) {
+        console.log('主标签页切换',e);
+        switch(e.name) {
+          case 'second':
+              //获取商机任务
+              const p = {"bo": this.form.basic.id};
+              listTask(p).then(response => {
+                this.form.task = response.rows;
+              });
+              break;
+          case 'third':
+              //获取联系人
+              break;
+          case 'fourth':
+              //获取附件列表
+              listAccessory(this.form.basic.id).then(response => {
+                this.form.accessory = response.rows;
+              });
+              break;
+          default:
+              break;
+        }
+    },
+    //次多页签切换
+    secondTabsSwitch(e) {
+        console.log('次标签页切换',e);
+        switch(e.name) {
+          case 'gj':
+              //获取跟进记录
+              getBehaviorList(this.form.basic.id).then(response => {
+                this.form.behavior = response.rows;
+              });
+              break;
+          case 'xmry':
+              //获取成员
+              const p = {"bo": this.form.basic.id};
+              listPojpsn(p).then(response => {
+                this.form.pojpsn = response.rows;
+              });
+              break;
+          default:
+              break;
+        }
+    },
+    //下一步
+    next() {
+        if(this.form.basic.boStage == 1){
+          this.form.basic.boStage += 5;
+        }else if(this.form.basic.boStage == 7){
+          this.form.basic.boStage += 5;
+        }else{
+          this.form.basic.boStage++;
+        }
+      },
+    //测试
+    handleAdd(){
+
+    },
+    //上传附件公共方法
+    uploadAccessory(f) {
+      // this.upload.title = "上传附件";
+      this.upload.open = true;
+      this.upload.flag = f;
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+    //删除附件
+    deleteAccessory(f,row){
+      // console.log("flag",f);
+      // console.log("row",row);
+      // delAccessory(this.form.basic.id,f,row.id);
+      this.$modal.confirm('是否确认删除?').then(function() {
+        return delAccessory(this.form.basic.id,f,row.id);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+
+    //立项书下载
+    //标准立项书
+    pojproDownload(){
+
+    },
+    //商机审会决议书
+    pojproDownload1(){
+
+    },
+  },
+  created() {
+    console.log("详情id:",this.$route.params.id);
+    getBasic(this.$route.params.id).then(response => {
+      this.form.basic = response.data;
+    });
+  },
+}
+</script>
+
+
+<style scoped>
+.md-content>>>.el-form-item {
+  margin-bottom: 10px;
+}
+
+.md-content>>>.el-tabs--border-card>.el-tabs__content {
+  padding-bottom: 8px;
+}
+
+.md-content .md-auditInfo>>>.el-form-item {
+  margin-bottom: 0px;
+}
+
+.md-main>>>.el-form-item,
+.md-vice>>>.el-form-item {
+  width: 100%;
+  box-sizing: border-box;
+}
+
+.md-main>>>.el-form-item__label,
+.md-vice>>>.el-form-item__label {
+  width: 40%;
+}
+
+.md-main>>>.el-form-item__content,
+.md-md-vice>>>.el-form-item__content {
+  width: 60%;
+}
+
+.md-content>>>.el-form-item__label {
+  font-weight: normal;
+  /* text-align: left;
+  width: 28%; */
+  white-space: nowrap;
+  /* IE6 需要定义宽度 */
+  overflow: hidden;
+
+  -o-text-overflow: ellipsis;
+  /* Opera */
+  text-overflow: ellipsis;
+  /* IE, Safari (WebKit) */
+  /* -moz-binding: url('ellipsis.xml#ellipsis'); */
+  /* Firefox */
+}
+
+.md-main>>>.material-table {
+  height: 100%;
+}
+
+.md-vice>>>.material-table {
+  height: 140px;
+  overflow-y: auto;
+  overflow-x: auto;
+}
+</style>

+ 99 - 70
src/views/business/spd/bo/basic/index.vue

@@ -1,3 +1,4 @@
+<!-- 商机-列表 -->
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
@@ -89,7 +90,7 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="负责人" prop="principal">
+      <el-form-item label="商机负责人" prop="principal">
         <el-input
           v-model="queryParams.principal"
           placeholder="请输入负责人"
@@ -97,22 +98,6 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-<!--      <el-form-item label="租户号" prop="tenantId">-->
-<!--        <el-input-->
-<!--          v-model="queryParams.tenantId"-->
-<!--          placeholder="请输入租户号"-->
-<!--          clearable-->
-<!--          @keyup.enter.native="handleQuery"-->
-<!--        />-->
-<!--      </el-form-item>-->
-<!--      <el-form-item label="乐观锁" prop="revision">-->
-<!--        <el-input-->
-<!--          v-model="queryParams.revision"-->
-<!--          placeholder="请输入乐观锁"-->
-<!--          clearable-->
-<!--          @keyup.enter.native="handleQuery"-->
-<!--        />-->
-<!--      </el-form-item>-->
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -152,7 +137,7 @@
           v-hasPermi="['system:basic:remove']"
         >删除</el-button>
       </el-col>
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button
           type="warning"
           plain
@@ -161,13 +146,12 @@
           @click="handleExport"
           v-hasPermi="['system:basic:export']"
         >导出</el-button>
-      </el-col>
+      </el-col> -->
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
-    <el-table v-loading="loading" :data="basicList" @selection-change="handleSelectionChange">
+    <el-table v-loading="loading" :data="basicList" @selection-change="handleSelectionChange" @cell-dblclick="enterDetails">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="商机编码" align="center" prop="id" />
       <el-table-column label="商机名称" align="center" prop="boName" />
       <el-table-column label="商机类型" align="center" prop="boType" />
       <el-table-column label="商机状态" align="center" prop="boState" />
@@ -181,15 +165,22 @@
       <el-table-column label="销售组织" align="center" prop="marketingOrganizing" />
       <el-table-column label="销售区域" align="center" prop="marketingArea" />
       <el-table-column label="部门" align="center" prop="deptName" />
-      <el-table-column label="负责人" align="center" prop="principal" />
-<!--      <el-table-column label="租户号" align="center" prop="tenantId" />-->
-<!--      <el-table-column label="乐观锁" align="center" prop="revision" />-->
+      <el-table-column label="商机负责人" align="center" prop="principal" />
+      <el-table-column label="创建人" align="center" prop="createBy" />
+      <el-table-column label="创建时间" align="center" prop="createTime" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
             size="mini"
             type="text"
             icon="el-icon-edit"
+            @click="enterDetails(scope.row)"
+            v-hasPermi="['system:basic:edit']"
+          >进入详情</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
             v-hasPermi="['system:basic:edit']"
           >修改</el-button>
@@ -213,56 +204,88 @@
     />
 
     <!-- 添加或修改商机基础信息对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="商机来源" prop="boSource">
-          <el-input v-model="form.boSource" placeholder="请输入商机来源" />
-        </el-form-item>
-        <el-form-item label="商机状态" prop="boState">
-          <el-input v-model="form.boState" placeholder="请输入商机状态" />
-        </el-form-item>
-        <el-form-item label="商机阶段" prop="boStage">
-          <el-input v-model="form.boStage" placeholder="请输入商机阶段" />
-        </el-form-item>
-        <el-form-item label="商机名称" prop="boName">
-          <el-input v-model="form.boName" placeholder="请输入商机名称" />
-        </el-form-item>
-        <el-form-item label="推荐人" prop="referrer">
-          <el-input v-model="form.referrer" placeholder="请输入推荐人" />
-        </el-form-item>
-        <el-form-item label="客户名称" prop="customerName">
-          <el-input v-model="form.customerName" placeholder="请输入客户名称" />
-        </el-form-item>
-        <el-form-item label="医院营收总额" prop="totalHosRevenue">
-          <el-input v-model="form.totalHosRevenue" placeholder="请输入医院营收总额" />
-        </el-form-item>
-        <el-form-item label="医院耗材预估值" prop="hosDiscreetValue">
-          <el-input v-model="form.hosDiscreetValue" placeholder="请输入医院耗材预估值" />
-        </el-form-item>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="商机名称" prop="boName">
+              <el-input v-model="form.boName" placeholder="请输入商机名称" :disabled="true"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="商机来源" prop="boSource">
+              <el-select v-model="form.boSource" placeholder="商机来源">
+                <el-option
+                  v-for="dict in dict.type.mk_bo_source"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="推荐人" prop="referrer">
+              <el-input v-model="form.referrer" placeholder="请输入推荐人" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="商机类型" prop="boType">
+              <el-select v-model="form.boType" placeholder="商机类型">
+                <el-option
+                  v-for="dict in dict.type.mk_bo_type"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="客户名称" prop="customerName">
+              <el-input v-model="form.customerName" placeholder="请输入客户名称" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="医院营收总额" prop="totalHosRevenue">
+              <el-input v-model="form.totalHosRevenue" placeholder="请输入医院营收总额" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="医院耗材预估值" prop="hosDiscreetValue">
+              <el-input v-model="form.hosDiscreetValue" placeholder="请输入医院耗材预估值" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="销售组织" prop="marketingOrganizing">
+              <el-input v-model="form.marketingOrganizing" placeholder="请输入销售组织" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="销售区域" prop="marketingArea">
+              <el-input v-model="form.marketingArea" placeholder="请输入销售区域" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="部门" prop="deptName">
+              <el-input v-model="form.deptName" placeholder="请输入部门" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="商机负责人" prop="principal">
+              <el-input v-model="form.principal" placeholder="请输入负责人" />
+            </el-form-item>
+          </el-col>
+        </el-row>
         <el-form-item label="商机内容">
           <editor v-model="form.boContent" :min-height="192"/>
         </el-form-item>
-        <el-form-item label="销售组织" prop="marketingOrganizing">
-          <el-input v-model="form.marketingOrganizing" placeholder="请输入销售组织" />
-        </el-form-item>
-        <el-form-item label="销售区域" prop="marketingArea">
-          <el-input v-model="form.marketingArea" placeholder="请输入销售区域" />
-        </el-form-item>
-        <el-form-item label="部门" prop="deptName">
-          <el-input v-model="form.deptName" placeholder="请输入部门" />
-        </el-form-item>
-        <el-form-item label="负责人" prop="principal">
-          <el-input v-model="form.principal" placeholder="请输入负责人" />
-        </el-form-item>
-        <el-form-item label="删除标记" prop="delFlag">
-          <el-input v-model="form.delFlag" placeholder="请输入删除标记" />
-        </el-form-item>
-        <el-form-item label="租户号" prop="tenantId">
-          <el-input v-model="form.tenantId" placeholder="请输入租户号" />
-        </el-form-item>
-        <el-form-item label="乐观锁" prop="revision">
-          <el-input v-model="form.revision" placeholder="请输入乐观锁" />
-        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -277,6 +300,7 @@ import { listBasic, getBasic, addBasic, updateBasic, delBasic } from "@/api/busi
 
 export default {
   name: "Basic",
+  dicts: ['mk_bo_type','mk_bo_source'],
   data() {
     return {
       // 遮罩层
@@ -423,6 +447,11 @@ export default {
       this.open = true;
       this.title = "添加商机基础信息";
     },
+    /** 进入详情按钮操作 */
+    enterDetails(row) {
+      console.log('列数据:',row);
+      this.$router.push(`/basic/spd/bo/basic/details/${row.id}`);
+    },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();

+ 98 - 160
src/views/business/spd/bo/task/index.vue

@@ -169,7 +169,7 @@
         </template>
       </el-table-column>
     </el-table>
-    
+
     <pagination
       v-show="total>0"
       :total="total"
@@ -179,170 +179,103 @@
     />
 
     <!-- 添加或修改任务对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="商机" prop="boCode">
-          <el-input v-model="form.boCode" placeholder="请输入商机编码" />
-        </el-form-item>
-        <el-form-item label="商机阶段" prop="boStage">
-          <el-input v-model="form.boStage" placeholder="请输入商机阶段" />
-        </el-form-item>
-        <el-form-item label="任务编码" prop="code">
-          <el-input v-model="form.code" placeholder="请输入任务编码" />
-        </el-form-item>
-        <el-form-item label="任务名称" prop="name">
-          <el-input v-model="form.name" placeholder="请输入任务名称" />
-        </el-form-item>
-        <el-form-item label="任务状态" prop="state">
-          <el-input v-model="form.state" placeholder="请输入任务状态" />
-        </el-form-item>
-        <el-form-item label="客户" prop="customer">
-          <el-input v-model="form.customer" placeholder="请输入客户" />
-        </el-form-item>
-        <el-form-item label="客户名称" prop="customerName">
-          <el-input v-model="form.customerName" placeholder="请输入客户名称" />
-        </el-form-item>
-        <el-form-item label="联系人" prop="linkman">
-          <el-input v-model="form.linkman" placeholder="请输入联系人" />
-        </el-form-item>
-        <el-form-item label="销售组织" prop="salesOrg">
-          <el-input v-model="form.salesOrg" placeholder="请输入销售组织" />
-        </el-form-item>
-        <el-form-item label="销售组织名称" prop="salesOrgName">
-          <el-input v-model="form.salesOrgName" placeholder="请输入销售组织名称" />
-        </el-form-item>
-        <el-form-item label="部门" prop="dept">
-          <el-input v-model="form.dept" placeholder="请输入部门" />
-        </el-form-item>
-        <el-form-item label="部门名称" prop="deptName">
-          <el-input v-model="form.deptName" placeholder="请输入部门名称" />
-        </el-form-item>
-        <el-form-item label="负责人" prop="staff">
-          <el-input v-model="form.staff" placeholder="请输入负责人" />
-        </el-form-item>
-        <el-form-item label="负责人名称" prop="staffName">
-          <el-input v-model="form.staffName" placeholder="请输入负责人名称" />
-        </el-form-item>
-        <el-form-item label="截止时间" prop="deadlineDate">
-          <el-date-picker clearable
-            v-model="form.deadlineDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择截止时间">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="任务内容">
-          <editor v-model="form.content" :min-height="192"/>
-        </el-form-item>
-        <el-form-item label="租户号" prop="tenantId">
-          <el-input v-model="form.tenantId" placeholder="请输入租户号" />
-        </el-form-item>
-        <el-form-item label="乐观锁" prop="revision">
-          <el-input v-model="form.revision" placeholder="请输入乐观锁" />
-        </el-form-item>
-        <el-form-item label="删除标志" prop="delFlag">
-          <el-input v-model="form.delFlag" placeholder="请输入删除标志" />
-        </el-form-item>
-        <el-divider content-position="center">行动信息</el-divider>
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-            <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddMkBoBehavior">添加</el-button>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="商机" prop="boCode">
+              <el-input v-model="form.boCode" placeholder="请输入商机编码" />
+            </el-form-item>
           </el-col>
-          <el-col :span="1.5">
-            <el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDeleteMkBoBehavior">删除</el-button>
+          <el-col :span="8">
+            <el-form-item label="商机阶段" prop="boStage">
+              <el-input v-model="form.boStage" placeholder="请输入商机阶段" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="任务编码" prop="code">
+              <el-input v-model="form.code" placeholder="请输入任务编码" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="任务名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入任务名称" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="任务状态">
+              <el-select v-model="form.state" placeholder="请输入任务状态">
+                <el-option
+                  v-for="dict in dict.type.mk_bo_taskstate"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="客户" prop="customer">
+              <el-input v-model="form.customer" placeholder="请输入客户" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="联系人" prop="linkman">
+              <el-input v-model="form.linkman" placeholder="请输入联系人" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="销售组织" prop="salesOrg">
+              <el-input v-model="form.salesOrg" placeholder="请输入销售组织" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="部门" prop="dept">
+              <el-input v-model="form.dept" placeholder="请输入部门" />
+            </el-form-item>
           </el-col>
         </el-row>
-        <el-table :data="mkBoBehaviorList" :row-class-name="rowMkBoBehaviorIndex" @selection-change="handleMkBoBehaviorSelectionChange" ref="mkBoBehavior">
-          <el-table-column type="selection" width="50" align="center" />
-          <el-table-column label="序号" align="center" prop="index" width="50"/>
-          <el-table-column label="行动类型" prop="type" width="150">
-            <template slot-scope="scope">
-              <el-select v-model="scope.row.type" placeholder="请选择行动类型">
-                <el-option label="请选择字典生成" value="" />
+
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="负责人" prop="staff">
+              <el-input v-model="form.staff" placeholder="请输入负责人" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="截止时间" prop="deadlineDate">
+              <el-date-picker clearable
+                v-model="form.deadlineDate"
+                type="date"
+                value-format="yyyy-MM-dd"
+                placeholder="请选择截止时间">
+              </el-date-picker>
+        </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="任务类型">
+              <el-select v-model="form.type" placeholder="请选择任务类型">
+                <el-option
+                  v-for="dict in dict.type.mk_bo_tasktype"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
               </el-select>
-            </template>
-          </el-table-column>
-          <el-table-column label="行动日期" prop="time" width="240">
-            <template slot-scope="scope">
-              <el-date-picker clearable v-model="scope.row.time" type="date" value-format="yyyy-MM-dd" placeholder="请选择行动日期" />
-            </template>
-          </el-table-column>
-          <el-table-column label="客户" prop="customer" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.customer" placeholder="请输入客户" />
-            </template>
-          </el-table-column>
-          <el-table-column label="客户名称" prop="customerName" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.customerName" placeholder="请输入客户名称" />
-            </template>
-          </el-table-column>
-          <el-table-column label="联系人" prop="linkman" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.linkman" placeholder="请输入联系人" />
-            </template>
-          </el-table-column>
-          <el-table-column label="联系人名称" prop="linkmanName" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.linkmanName" placeholder="请输入联系人名称" />
-            </template>
-          </el-table-column>
-          <el-table-column label="拜访目的" prop="purpose" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.purpose" placeholder="请输入拜访目的" />
-            </template>
-          </el-table-column>
-          <el-table-column label="拜访效果" prop="result" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.result" placeholder="请输入拜访效果" />
-            </template>
-          </el-table-column>
-          <el-table-column label="是否上级协助" prop="assist" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.assist" placeholder="请输入是否上级协助" />
-            </template>
-          </el-table-column>
-          <el-table-column label="销售组织" prop="salesOrg" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.salesOrg" placeholder="请输入销售组织" />
-            </template>
-          </el-table-column>
-          <el-table-column label="销售组织名称" prop="salesOrgName" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.salesOrgName" placeholder="请输入销售组织名称" />
-            </template>
-          </el-table-column>
-          <el-table-column label="部门" prop="dept" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.dept" placeholder="请输入部门" />
-            </template>
-          </el-table-column>
-          <el-table-column label="部门名称" prop="deptName" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.deptName" placeholder="请输入部门名称" />
-            </template>
-          </el-table-column>
-          <el-table-column label="负责人" prop="staff" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.staff" placeholder="请输入负责人" />
-            </template>
-          </el-table-column>
-          <el-table-column label="负责人名称" prop="staffName" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.staffName" placeholder="请输入负责人名称" />
-            </template>
-          </el-table-column>
-          <el-table-column label="租户号" prop="tenantId" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.tenantId" placeholder="请输入租户号" />
-            </template>
-          </el-table-column>
-          <el-table-column label="乐观锁" prop="revision" width="150">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.revision" placeholder="请输入乐观锁" />
-            </template>
-          </el-table-column>
-        </el-table>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-form-item label="任务内容">
+          <editor v-model="form.content" :min-height="192"/>
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -355,9 +288,14 @@
 
 <script>
 import { listTask, getTask, delTask, addTask, updateTask } from "@/api/business/spd/bo/task";
+import { getToken } from "@/utils/auth";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 
 export default {
   name: "task",
+  dicts: ['mk_bo_taskstate','mk_bo_tasktype'],
+  components: { Treeselect },
   data() {
     return {
       // 遮罩层

+ 391 - 49
src/views/material/changeApply/add.vue

@@ -6,97 +6,132 @@
           <el-row :gutter="20">
             <el-col :span="8">
               <el-form-item label="单据编码" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+                <el-input disabled v-model="basicForm.code"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="申请组织" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="申请组织" prop="orgId">
+                <el-input disabled v-model="basicForm.orgId"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="物料编码" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="物料编码" prop="materialCode">
+                <el-input v-model="basicForm.materialCode">
+                  <el-button slot="append" icon="el-icon-more" @click="test01"></el-button>
+                </el-input>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="物料名称" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="物料名称" prop="materialName">
+                <el-input v-model="basicForm.materialName"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="医药物料" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="医药物料" prop="medicineMaterial">
+                <el-select
+                    v-model="basicForm.medicineMaterial"
+                    placeholder="医药物料"
+                    clearable
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                  </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="一级分类" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="一级分类" prop="oneClass">
+                <el-input v-model="basicForm.oneClass"></el-input>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="二级分类" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="二级分类" prop="twoClass">
+                <el-input v-model="basicForm.twoClass"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="三级分类" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="三级分类" prop="threeClass">
+                <el-input v-model="basicForm.threeClass"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="四级分类" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="四级分类" prop="fourClass">
+                <el-input v-model="basicForm.fourClass"></el-input>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="规格" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="规格" prop="specification">
+                <el-input v-model="basicForm.specification"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="型号" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="型号" prop="model">
+                <el-input v-model="basicForm.model"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="生产厂家/代理人" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="生产厂家/代理人" prop="factory">
+                <el-input v-model="basicForm.factory"></el-input>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="注册人/上市许可持有人" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="注册人/上市许可持有人" prop="registrant">
+                <el-input v-model="basicForm.registrant"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="存储条件" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="存储条件" prop="storageConditions">
+                <el-select
+                    v-model="basicForm.storageConditions"
+                    placeholder="存储条件"
+                    clearable
+                  >
+                    <el-option
+                      v-for="dict in dict.type.sys_storage_condition"
+                      :key="dict.value"
+                      :label="dict.label"
+                      :value="dict.value"
+                    />
+                  </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="运输条件" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="运输条件" prop="transportCondition">
+                <el-select
+                    v-model="basicForm.transportCondition"
+                    placeholder="运输条件"
+                    clearable
+                  >
+                    <el-option
+                      v-for="dict in dict.type.sys_conditions_carriage"
+                      :key="dict.value"
+                      :label="dict.label"
+                      :value="dict.value"
+                    />
+                  </el-select>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="交货周期" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="交货周期" prop="leadTime">
+                <el-input v-model="basicForm.leadTime"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="备注" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="备注" prop="remark">
+                <el-input v-model="basicForm.remark"></el-input>
               </el-form-item>
             </el-col>
           </el-row>
@@ -104,36 +139,167 @@
       </el-tab-pane>
 
       <el-tab-pane label="医药属性" name="second">
-        <el-form :model="basicForm2" :rules="basicRules2" ref="basic2" label-width="160px">
+        <el-form :model="basicForm2" ref="basic2" label-width="160px">
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="药品" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="药品" prop="drug">
+                <el-select
+                    v-model="basicForm2.drug"
+                    placeholder="药品"
+                    clearable
+                  >
+                    <el-option
+                      v-for="dict in dict.type.sys_medicine"
+                      :key="dict.value"
+                      :label="dict.label"
+                      :value="dict.value"
+                    />
+                  </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="注册证号/备案凭证编号" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="注册证号/备案凭证编号" prop="registrationNo">
+                <el-input v-model="basicForm2.registrationNo"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="医疗器械" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="医疗器械" prop="medicalDevices">
+                <el-select
+                    v-model="basicForm2.medicalDevices"
+                    placeholder="医疗器械"
+                    clearable
+                  >
+                    <el-option
+                      v-for="dict in dict.type.medical_instruments"
+                      :key="dict.value"
+                      :label="dict.label"
+                      :value="dict.value"
+                    />
+                  </el-select>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="养护类型" prop="code">
-                <el-input v-model="basicForm.code"></el-input>
+              <el-form-item label="养护类型" prop="maintenanceType">
+                <el-select
+                    v-model="basicForm2.maintenanceType"
+                    placeholder="养护类型"
+                    clearable
+                  >
+                    <el-option
+                      v-for="dict in dict.type.curing_type"
+                      :key="dict.value"
+                      :label="dict.label"
+                      :value="dict.value"
+                    />
+                  </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <!-- <el-row style="margin-bottom: 12px;">
+          <span>物料类别</span>
+        </el-row>
+        <el-row style="margin-bottom: 12px;">
+          <el-button type="primary" size="small" plain @click="addLine">新增</el-button>
+          <el-button type="primary" size="small" plain @click="handleDelete">删除</el-button>
+          <el-button type="primary" size="small" plain @click="testsave">暂存</el-button>
+        </el-row> -->
+        <!-- <el-row>
+          <el-col :span="12">
+            <el-table 
+            :data="basicForm2.medicineTypeChanges"
+            class="request-table"
+            @selection-change="handleSelectionChange"
+            >
+              <el-table-column type="selection" width="55" />
+              <el-table-column label="序号" align="center" prop="sort">
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.sort"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column label="物料类别" align="center" prop="medicineCode">
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.medicineCode"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column label="类别名称" align="center" prop="medicineName">
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.medicineName"></el-input>
+                </template>
+              </el-table-column>
+            </el-table>
+          </el-col>
+        </el-row> -->
+      </el-tab-pane>
+
+      <el-tab-pane label="修改记录" name="third">
+        <el-table 
+          :data="basicForm.changeRecords"
+          class="request-table"
+          >
+          <el-table-column label="字段名称" align="center" prop="pageCondtion" />
+          <el-table-column label="变更前" align="center" prop="beforeChangeValue" />
+          <el-table-column label="变更后" align="center" prop="afterChangeValue" />
+        </el-table>
+      </el-tab-pane>
+
+      <el-tab-pane label="单据信息" name="fourth">
+        <el-form :model="basicForm" ref="info" label-width="160px">
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="申请人" prop="createBy">
+                <el-input v-model="basicForm.createBy"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="申请时间" prop="applicationTime">
+                <el-input v-model="basicForm.applicationTime"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="创建人" prop="createBy">
+                <el-input v-model="basicForm.createBy"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="创建时间" prop="createTime">
+                <el-input v-model="basicForm.createTime"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="最后修改人" prop="updateBy">
+                <el-input v-model="basicForm.updateBy"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="最后修改时间" prop="updateTime">
+                <el-input v-model="basicForm.updateTime"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="最后审核人" prop="approver">
+                <el-input v-model="basicForm.approver"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="最后审核时间" prop="approvalTime">
+                <el-input v-model="basicForm.approvalTime"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="单据状态" prop="status">
+                <el-input v-model="basicForm.status"></el-input>
               </el-form-item>
             </el-col>
           </el-row>
         </el-form>
-        <span>物料类别</span>
       </el-tab-pane>
-      <el-tab-pane label="修改记录" name="third">修改记录</el-tab-pane>
-      <el-tab-pane label="单据信息" name="fourth">单据信息</el-tab-pane>
     </el-tabs>
 
     <div class="btn_group">
@@ -147,12 +313,26 @@
         <el-button type="primary" size="small" plain @click="back">返回</el-button>
       </el-col>
     </div>
+
+    <popDialog
+      ref="contractSelect"
+      @doSubmit="selectionsToInput"
+      :selectData="selectData"
+      :single="true"
+    />
+
   </div>
 </template>
 
 <script>
+import popDialog from '@/components/PopDialog/index.vue'
+import { addChangeList, getMaterialDetails } from '@/api/changeApply/basic'
 export default {
   name: 'applyAdd',
+  dicts: ['sys_storage_condition', 'sys_conditions_carriage', 'sys_medicine', 'medical_instruments', 'curing_type'],
+  components: {
+    popDialog
+  },
   model: {
     prop: 'isList',
     event: 'jugislist'
@@ -161,20 +341,182 @@ export default {
     return{
       tabValue: 'first',
       basicForm: {
-        code: ''
+        code: '',
+        orgId: '',
+        // 物料id
+        materialId:'',
+        materialCode: '',
+        materialName: '',
+        medicineMaterial: '',
+        oneClass: '',
+        twoClass: '',
+        threeClass: '',
+        fourClass: '',
+        specification: '',
+        model: '',
+        factory: '',
+        registrant: '',
+        storageConditions: '',
+        transportCondition: '',
+        leadTime: '',
+        remark: '',
+        // 修改记录
+        changeRecords: [],
+        // 单据信息字段
+        createBy: '',
+        applicationTime: '',
+        createTime:'',
+        updateBy: '',
+        updateTime: '',
+        approver: '',
+        approvalTime: '',
+        status: ''
+      },
+      options: [{
+        value: '0',
+        label: '是'
+      },{
+        value: '2',
+        label: '否'
+      }],
+      basicRules: {},
+      basicForm2: {
+        drug: '',
+        registrationNo: '',
+        medicalDevices: '',
+        maintenanceType: '',
+        // 医药属性子表
+        // medicineTypeChanges:[
+        // ],
       },
-      basicRules: {}
+      // tableList: [],
+      tableList2: [],
+      // 子表选中
+      ids: [],
+      // 弹窗
+      name: '',
+      selectData: []
     }
   },
+  // 监听
+  // watch: {
+  //   value: {
+  //     handler (newVal) {
+  //       this.selectData = []
+  //       if (newVal) {
+  //         newVal.split(',').forEach((id) => { // 回显拿数据
+  //           this.contractService.queryById(id).then(({data}) => {
+  //             if (data && data.id !== '') {
+  //               this.selectData.push(data)
+  //             }
+  //           })
+  //         })
+  //       }
+  //     },
+  //     immediate: true,
+  //     deep: false
+  //   },
+  //   selectData: {
+  //     handler (newVal) {
+  //       this.name = newVal.map(contract => contract.contractName).join(',')
+  //     },
+  //     immediate: false,
+  //     deep: false
+  //   }
+  // },
   methods: {
     handleClick(tab, event) {
       console.log(tab, event);
     },
-    save() {},
-    submit() {},
+    save() {
+      alert('保存传status:0')
+      let sparams = {...this.basicForm, ...{status: 0}}
+      sparams.medicineChange = this.basicForm2
+      console.log('参数', sparams)
+      addChangeList(sparams).then(res => {
+
+      })
+    },
+    submit() {
+      alert('提交传status:1')
+    },
     back() {
       this.$emit('jugislist', true)
     },
+    // 子表增删行
+    // handleSelectionChange(val) {
+    //   this.ids = val
+    //   console.log('this.ids',this.ids)
+    // },
+    // addLine() {
+    //   //添加行数
+    //   let newValue = {
+    //     sort:'',
+    //     medicineCode: '',
+    //     medicineName: '',
+    //   };
+    //   this.basicForm2.medicineTypeChanges.push(newValue);
+    // },
+    // handleDelete(index) {
+    //   if(this.ids.length == 0) {
+    //     this.$message({
+    //       message: '请选择删除条目',
+    //       type: 'warning'
+    //     });
+    //   } else {
+    //     // console.log('index',index)
+    //     // this.basicForm2.medicineTypeChanges.splice(index, 1);
+    //     this.basicForm2.medicineTypeChanges = this.basicForm2.medicineTypeChanges.filter(item =>
+    //      !this.ids.some(ele =>
+    //      ele.sort == item.sort))
+    //   }
+    // },
+    // testsave() {
+    //   console.log('暂存表格:', this.basicForm2.medicineTypeChanges)
+    //   console.log('暂存表单1', this.basicForm)
+    //   let params = {...this.basicForm, ...this.basicForm2}
+    //   console.log('暂存总表单', params)
+    // },
+    // 设置选中
+    selectionsToInput (selections) {
+      console.log('父组件拿到的:', selections)
+      this.selectData = selections
+      this.$emit('getInfo', this.selectData)
+      getMaterialDetails(selections[0].id).then(res => {
+        console.log('res',res)
+        if (res.code === 200) {
+          let data = res.data.data
+          // 物料id
+          this.basicForm.materialId = data.id
+          // 物料分类Id
+          this.basicForm.materialClassifyId = data.classifyId
+          this.basicForm.materialCode = data.code
+          this.basicForm.materialName = data.name
+          this.basicForm.medicineMaterial = data.isMedicine
+          this.basicForm.oneClass = data.oneClass
+          this.basicForm.twoClass = data.twoClass
+          this.basicForm.threeClass = data.threeClass
+          this.basicForm.fourClass = data.fourClass
+          this.basicForm.specification = data.specification
+          this.basicForm.model = data.model
+          this.basicForm.registrant = data.registrant
+          this.basicForm.storageConditions = data.storageCondition
+          this.basicForm.transportCondition = data.transportationCondition
+          this.basicForm.remark = data.deliveryPeriod
+          if(data.medcines.length !== 0) {
+            this.basicForm2.drug = data.medcines[0].isDrug
+            this.basicForm2.registrationNo = data.medcines[0].registrationNo
+            this.basicForm2.medicalDevices = data.medcines[0].medicalInstruments
+            this.basicForm2.maintenanceType = data.medcines[0].curingType
+          }
+        }
+      })
+    },
+    // 显示列表
+    test01() {
+      console.log('测试点击')
+      this.$refs.contractSelect.init()
+    }
   }
 }
 </script>

+ 52 - 19
src/views/material/changeApply/index.vue

@@ -66,27 +66,29 @@
       <el-table 
         :data="tableList" 
         class="request-table"
+        fit
+        max-height="680"
         @selection-change="handleSelectionChange"
       >
         <el-table-column type="selection" width="55" />
         <el-table-column label="序号" align="center" prop="sort" />
-        <el-table-column label="申请组织" align="center" prop="attributeName" />
-        <el-table-column label="单据编码" align="center" prop="classCode" />
-        <el-table-column label="申请人" align="center" prop="fieldType" />
-        <el-table-column label="申请时间" align="center" prop="dictId" />
-        <el-table-column label="单据状态" align="center" prop="fieldDesc" />
-        <el-table-column label="物料编码" align="center" prop="fieldDesc" />
-        <el-table-column label="物料名称" align="center" prop="fieldDesc" />
-        <el-table-column label="最后审批人" align="center" prop="fieldDesc" />
-        <el-table-column label="最后审核时间" align="center" prop="fieldDesc" />
-        <el-table-column label="创建人" align="center" prop="fieldDesc" />
-        <el-table-column label="创建时间" align="center" prop="fieldDesc" />
-        <el-table-column label="最后修改人" align="center" prop="fieldDesc" />
-        <el-table-column label="最后修改时间" align="center" prop="fieldDesc" />
+        <el-table-column label="申请组织" align="center" prop="orgId" />
+        <el-table-column label="单据编码" align="center" width="200" prop="code" />
+        <el-table-column label="申请时间" align="center" width="150" prop="applicationTime" />
+        <el-table-column label="单据状态" align="center" prop="status" :formatter="statusJug" />
+        <el-table-column label="物料编码" align="center" width="150" prop="materialCode" />
+        <el-table-column label="物料名称" align="center" prop="materialName" />
+        <el-table-column label="最后审批人" align="center" width="120" prop="approver" />
+        <el-table-column label="最后审核时间" align="center" width="150" prop="approvalTime" />
+        <el-table-column label="创建人" align="center" prop="createBy" />
+        <el-table-column label="创建时间" align="center" width="150" prop="createTime" />
+        <el-table-column label="最后修改人" align="center" width="120" prop="updateBy" />
+        <el-table-column label="最后修改时间" align="center" width="150" prop="updateTime" />
         <el-table-column
           fixed="right"
           label="操作"
           align="center"
+          width="150"
           >
           <template slot-scope="scope">
             <el-button type="text" size="small">查看</el-button>
@@ -99,11 +101,10 @@
       <el-pagination
         @size-change="handleSizeChange"
         @current-change="handleCurrentChange"
-        :current-page="currentPage"
-        :page-sizes="[100, 200, 300, 400]"
-        :page-size="100"
+        :page-sizes="[5, 10, 15, 20]"
+        :page-size=queryParams.pageSize
         layout="total, sizes, prev, pager, next, jumper"
-        :total="100"
+        :total="total"
         style="text-align: center;">
       </el-pagination>
     </el-card>
@@ -115,6 +116,7 @@
 
 <script>
 import addApply from './add.vue';
+import { getChangeList } from '@/api/changeApply/basic'
 export default {
   name: 'changeApply',
   components: {
@@ -129,17 +131,44 @@ export default {
       input: '',
       // 
       tableList: [],
-      currentPage: 2,
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10
+      },
+      total:0,
       // isComponent
       isComponent:'addApply',
       isList: true
     }
   },
+  created() {
+    this.getList(this.queryParams)
+  },
   methods: {
     addApply() {
       this.isList = false
       this.isComponent = 'addApply'
     },
+    getList(val) {
+      getChangeList(val).then(res => {
+        if (res.code === 200) {
+          this.tableList = res.rows
+          this.total = res.total
+        }
+      })
+    },
+    // 表格内状态栏判断值
+    statusJug(row) {
+      if (row.status === 0) {
+        return '未提交'
+      } else if (row.status === 1) {
+        return '审批中'
+      } else if (row.status === 2) {
+        return '已完成'
+      } else if (row.status === 3) {
+        return '已驳回'
+      }
+    },
     // 
     handleSelectionChange () {
 
@@ -148,10 +177,14 @@ export default {
 
     },
     handleSizeChange(val) {
-        console.log(`每页 ${val} 条`);
+      console.log(`每页 ${val} 条`);
+      this.queryParams.pageSize = val
+      this.getList(this.queryParams)
     },
     handleCurrentChange(val) {
       console.log(`当前页: ${val}`);
+      this.queryParams.pageNum = val
+      this.getList(this.queryParams)
     }
   }
 }