Преглед изворни кода

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

002201 пре 1 година
родитељ
комит
fc72f4979e

+ 1 - 1
src/api/business/spd/task_management/visitingPlan/visitingPlan.js

@@ -28,7 +28,7 @@ export function editPlan(data) {
 export function submitPlan(data) {
     return request({
       url: `/mk/bo/plan/submit`,
-      method: 'POST',
+      method: 'post',
       data: data
     })
 }

+ 2 - 2
src/components/FileUpload/index.vue

@@ -79,12 +79,12 @@ export default {
     // 大小限制(MB)
     fileSize: {
       type: Number,
-      default: 5,
+      default: 100,
     },
     // 文件类型, 例如['png', 'jpg', 'jpeg']
     fileType: {
       type: Array,
-      default: () => ["doc", "xls", "ppt", "txt", "pdf"],
+      default: () => ["doc", "xls", "ppt", "txt", "pdf",'png', 'jpg', 'jpeg'],
     },
     // 是否显示提示
     isShowTip: {

+ 137 - 0
src/components/date-wrapper/index.vue

@@ -0,0 +1,137 @@
+<template>
+  <div class="date-wrapper">
+    <el-date-picker 
+      :type="type" 
+      :placeholder="startPlaceholder" 
+      :clearable="clearable"  
+      :value-format="valueFormat" 
+      v-model="startTime"
+      :picker-options="pickerOptions" 
+      ></el-date-picker>
+      <span style="padding: 0 3px">{{rangeSeparator}}</span>
+    <el-date-picker 
+      :type="type" 
+      :placeholder="endPlaceholder" 
+      :clearable="clearable" 
+      :value-format="valueFormat" 
+      v-model="endTime" 
+      :picker-options="pickerOptions1" 
+      ></el-date-picker>
+  </div>
+</template>
+<script>
+
+  export default {
+    name: "dateWrapper",
+    props:{
+      value:{
+        type:Array,
+        require:true,
+      },
+      rangeSeparator:{
+        type:String,
+        default:'-'
+      },
+      type:{
+        type:String,
+        default:'date',
+      },
+      valueFormat:{
+        type:String,
+        default:'yyyy-MM-dd',
+      },
+      startPlaceholder:{
+        type:String,
+        default:'选择开始日期'
+      },
+      endPlaceholder:{
+        type:String,
+        default:'选择结束日期'
+      },
+      clearable:{
+        type:Boolean,
+        require:false,
+      }
+    },
+    computed:{
+      startTime:{
+        get(){
+          console.log(this.value,'this.value');
+          return (this.value && this.value[0]) || '';
+        },
+        set(value){
+          console.log(value,'startTime');
+          this.$emit('input',[value,this.endTime])
+        }
+      },
+      
+      endTime: {
+        get(){
+          return (this.value &&this.value[1]) || '';
+        },
+        set(value){
+          console.log(value,'endTime');
+          this.$emit('input',[this.startTime,value])
+        }
+      },
+
+      pickerOptions: {
+        get(){
+          const that = this
+          return {
+            disabledDate(time) {
+              if(that.endTime && that.endTime !== ''){
+                return time.getTime() > new Date(that.endTime).getTime()
+              }
+            }
+          }
+        },
+        set(value){
+          this.$emit("input", value);
+        }
+      },
+      pickerOptions1:{
+        get(){
+          const that = this
+          return {
+            disabledDate(time) {
+              if(that.startTime && that.startTime !== ''){
+                return (time.getTime()+ 3600 * 1000 * 24) < new Date(that.startTime).getTime()
+              }
+            }
+          }
+        },
+        set(value){
+          this.$emit("input", value);
+        }
+      }
+    },
+    data() {
+      return {
+        // form:{
+        //   startTime: '',
+        //   endTime: '',
+        // }
+      }
+    }
+  }
+</script>
+<style lang="scss">
+  .date-wrapper{
+    display: flex;
+    justify-content: flex-start;
+    vertical-align: center;
+    .el-date-editor{
+      // width: 102px !important;
+      .el-input__inner{
+        padding: 0px 0px 0 10px !important;
+      }
+      .el-input__prefix{
+        display: none;
+      }
+      .el-input__suffix{
+        text-align: right;
+      }
+    }
+  }
+</style>

+ 11 - 0
src/components/super-search/index.vue

@@ -25,6 +25,7 @@ export default {
       import("@/components/popover-tree-select/index.vue"),
     ElPopoverMultipleTreeSelect: () =>
       import("@/components/popover-tree-select/multiple.vue"),
+    ElDateWrapper: () => import("@/components/date-wrapper/index.vue"),
   },
   data() {
     const { columns } = this.$props;
@@ -172,6 +173,16 @@ export default {
               style="width: 100%"
             >
             </component>
+
+            <component
+              v-if="attr.is === 'el-date-wrapper'"
+              v-bind="attr"
+              v-model="innerValue[item.key]"
+              :source.sync="innerValue"
+              @change="$emit('submit')"
+              style="width: 100%"
+            >
+            </component>
           </el-form-item>
         </el-col>
       </el-row>

+ 0 - 0
src/views/business/spd/fillin/dailysale_quantity_assess/addmaterial.vue → src/views/business/spd/bo/authority/addmaterial.vue


+ 476 - 0
src/views/business/spd/bo/authority/authority-index.vue

@@ -0,0 +1,476 @@
+<template>
+  <div class="app-container">
+    <el-table v-loading="loading" :data="authorityList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="项目岗位" align="center" prop="postName" />
+      <el-table-column label="商机-下一步" align="center" prop="boNext">
+        <template slot-scope="scope">
+          {{scope.row.boNext ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="商机-修改" align="center" prop="boEdit">
+        <template slot-scope="scope">
+          {{scope.row.boEdit ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="商机-关闭" align="center" prop="boClose">
+        <template slot-scope="scope">
+          {{scope.row.boClose ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="商机-赢单" align="center" prop="boWin">
+        <template slot-scope="scope">
+          {{scope.row.boWin ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="商机-丢单" align="center" prop="boLose">
+        <template slot-scope="scope">
+          {{scope.row.boLose ? '√' : '×'}}
+        </template>
+      </el-table-column>
+
+      <el-table-column label="项目成员-新增" align="center" prop="pojpsnAdd" >
+        <template slot-scope="scope">
+          {{scope.row.pojpsnAdd ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="项目成员-删除" align="center" prop="pojpsnDel">
+        <template slot-scope="scope">
+          {{scope.row.pojpsnDel ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="项目成员-编辑" align="center" prop="pojpsnEdit">
+        <template slot-scope="scope">
+          {{scope.row.pojpsnEdit ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="项目成员-查看" align="center" prop="pojpsnView">
+        <template slot-scope="scope">
+          {{scope.row.pojpsnView ? '√' : '×'}}
+        </template>
+      </el-table-column>
+
+      <el-table-column label="任务-新增" align="center" prop="taskAdd" >
+        <template slot-scope="scope">
+          {{scope.row.taskAdd ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="任务-删除" align="center" prop="taskDel">
+        <template slot-scope="scope">
+          {{scope.row.taskDel ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="任务-编辑" align="center" prop="taskEdit">
+        <template slot-scope="scope">
+          {{scope.row.taskEdit ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="任务-查看" align="center" prop="taskView">
+        <template slot-scope="scope">
+          {{scope.row.taskView ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="行动-新增" align="center" prop="behaviorAdd">
+        <template slot-scope="scope">
+          {{scope.row.behaviorAdd ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="行动-删除" align="center" prop="behaviorDel">
+        <template slot-scope="scope">
+          {{scope.row.behaviorDel ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="行动-编辑" align="center" prop="behaviorEdit">
+        <template slot-scope="scope">
+          {{scope.row.behaviorEdit ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="行动-查看" align="center" prop="behaviorView">
+        <template slot-scope="scope">
+          {{scope.row.behaviorView ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="联系人-新增" align="center" prop="contactAdd">
+        <template slot-scope="scope">
+          {{scope.row.contactAdd ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="联系人-删除" align="center" prop="contactDel">
+        <template slot-scope="scope">
+          {{scope.row.contactDel ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="联系人-编辑" align="center" prop="contactEdit">
+        <template slot-scope="scope">
+          {{scope.row.contactEdit ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="联系人-查看" align="center" prop="contactView">
+        <template slot-scope="scope">
+          {{scope.row.contactView ? '√' : '×'}}
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['material:authority:edit']"
+          >修改</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改商机角色权限对话框 -->
+    <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="postName">
+          {{form.postName}}
+          <!-- <el-input v-model="form.postName"/> -->
+        </el-form-item>
+        <el-divider content-position="left">
+          <dev style="width: 50px; height: 40px; font-size: 18px">商机</dev>
+        </el-divider>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="boNext">
+              <el-checkbox v-model="form.boNext">下一步</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="boEdit">
+              <el-checkbox v-model="form.boEdit">修改</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="boClose">
+              <el-checkbox v-model="form.boClose">关闭</el-checkbox>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="boWin">
+              <el-checkbox v-model="form.boWin">赢单</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="boLose">
+              <el-checkbox v-model="form.boLose">丢单</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+        </el-row>
+        <el-divider content-position="left">
+          <dev style="width: 50px; height: 40px; font-size: 18px">项目成员</dev>
+        </el-divider>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="taskAdd">
+              <el-checkbox v-model="form.pojpsnAdd">新增</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="pojpsnDel">
+              <el-checkbox v-model="form.pojpsnDel">删除</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="pojpsnEdit">
+              <el-checkbox v-model="form.pojpsnEdit">编辑</el-checkbox>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="pojpsnView">
+              <el-checkbox v-model="form.pojpsnView">查看</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+        </el-row>
+        <el-divider content-position="left">
+          <dev style="width: 50px; height: 40px; font-size: 18px">任务</dev>
+        </el-divider>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="taskAdd">
+              <el-checkbox v-model="form.taskAdd">新增</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="taskDel">
+              <el-checkbox v-model="form.taskDel">删除</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="taskEdit">
+              <el-checkbox v-model="form.taskEdit">编辑</el-checkbox>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="taskView">
+              <el-checkbox v-model="form.taskView">查看</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+        </el-row>
+        <el-divider content-position="left">
+          <dev style="width: 50px; height: 40px; font-size: 18px">行动</dev>
+        </el-divider>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="behaviorAdd">
+              <el-checkbox v-model="form.behaviorAdd">新增</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="behaviorDel">
+              <el-checkbox v-model="form.behaviorDel">删除</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="behaviorEdit">
+              <el-checkbox v-model="form.behaviorEdit">编辑</el-checkbox>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="behaviorView">
+              <el-checkbox v-model="form.behaviorView">查看</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+        </el-row>
+        <el-divider content-position="left">
+          <dev style="width: 50px; height: 40px; font-size: 18px">联系人</dev>
+        </el-divider>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="contactAdd">
+              <el-checkbox v-model="form.contactAdd">新增</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="contactDel">
+              <el-checkbox v-model="form.contactDel">删除</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="contactEdit">
+              <el-checkbox v-model="form.contactEdit">编辑</el-checkbox>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="contactView">
+              <el-checkbox v-model="form.contactView">查看</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listAuthority, getAuthority, delAuthority, addAuthority, updateAuthority } from "@/api/business/spd/bo/authority";
+export default {
+  name: "Authority",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 商机角色权限表格数据
+      authorityList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        post: null,
+        boNext: null,
+        boEdit: null,
+        boClose: null,
+        boWin: null,
+        boLose: null,
+        taskAdd: null,
+        taskDel: null,
+        taskEdit: null,
+        taskView: null,
+        behaviorAdd: null,
+        behaviorDel: null,
+        behaviorEdit: null,
+        behaviorView: null,
+        contactAdd: null,
+        contactDel: null,
+        contactEdit: null,
+        contactView: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询商机角色权限列表 */
+    getList() {
+      this.loading = true;
+      listAuthority(this.queryParams).then(response => {
+        this.authorityList = response.rows;
+        console.log('this.authorityList',this.authorityList);
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        post: null,
+        boNext: null,
+        boEdit: null,
+        boClose: null,
+        boWin: null,
+        boLose: null,
+        taskAdd: null,
+        taskDel: null,
+        taskEdit: null,
+        taskView: null,
+        behaviorAdd: null,
+        behaviorDel: null,
+        behaviorEdit: null,
+        behaviorView: null,
+        contactAdd: null,
+        contactDel: null,
+        contactEdit: null,
+        contactView: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加商机角色权限";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getAuthority(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改商机角色权限";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateAuthority(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addAuthority(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除商机角色权限编号为"' + ids + '"的数据项?').then(function() {
+        return delAuthority(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('material/authority/export', {
+        ...this.queryParams
+      }, `authority_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 0 - 0
src/views/business/spd/fillin/dailysale_quantity_assess/choosematerial.vue → src/views/business/spd/bo/authority/choosematerial.vue


+ 0 - 0
src/views/business/spd/fillin/dailysale_quantity_assess/detail.vue → src/views/business/spd/bo/authority/detail.vue


+ 341 - 418
src/views/business/spd/bo/authority/index.vue

@@ -1,300 +1,180 @@
-<template>
-  <div class="app-container">
-    <el-table v-loading="loading" :data="authorityList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center"/>
-      <el-table-column label="项目岗位" align="center" prop="postName" />
-      <el-table-column label="商机-下一步" align="center" prop="boNext">
-        <template slot-scope="scope">
-          {{scope.row.boNext ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="商机-修改" align="center" prop="boEdit">
-        <template slot-scope="scope">
-          {{scope.row.boEdit ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="商机-关闭" align="center" prop="boClose">
-        <template slot-scope="scope">
-          {{scope.row.boClose ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="商机-赢单" align="center" prop="boWin">
-        <template slot-scope="scope">
-          {{scope.row.boWin ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="商机-丢单" align="center" prop="boLose">
-        <template slot-scope="scope">
-          {{scope.row.boLose ? '√' : '×'}}
-        </template>
-      </el-table-column>
 
-      <el-table-column label="项目成员-新增" align="center" prop="pojpsnAdd" >
-        <template slot-scope="scope">
-          {{scope.row.pojpsnAdd ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="项目成员-删除" align="center" prop="pojpsnDel">
-        <template slot-scope="scope">
-          {{scope.row.pojpsnDel ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="项目成员-编辑" align="center" prop="pojpsnEdit">
-        <template slot-scope="scope">
-          {{scope.row.pojpsnEdit ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="项目成员-查看" align="center" prop="pojpsnView">
-        <template slot-scope="scope">
-          {{scope.row.pojpsnView ? '√' : '×'}}
-        </template>
-      </el-table-column>
+<template>
+  <div>
+    <div v-if="!openDetail">
+      <el-card>
+        <el-form size="mini" class="search_area" label-width="120px">
+          <el-row :gutter="10">
+            <el-col :span="1.5">
+              <el-form-item label="客户名称">
+                <el-input
+                  v-model="queryParams.customerName"
+                  clearable
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="1.5">
+              <el-form-item label="年度">
+                <el-date-picker
+                  v-model="queryParams.month"
+                  type="month"
+                  value-format="yyyy-MM"
+                  clearable
+                  >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="1.5">
+              <el-form-item label="创建人">
+                <el-input
+                  v-model="queryParams.createByName"
+                  clearable
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="1.5">
+              <el-form-item label="部门">
+                <el-input
+                  v-model="queryParams.deptName"
+                  clearable
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="1.5">
+              <el-form-item label="" label-width="20px">
+                <el-button type="primary" size="mini" icon="el-icon-search" plain @click="useSearch">搜索</el-button>
+                <el-button size="mini" icon="el-icon-refresh" plain @click="useReset">重置</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <el-divider></el-divider>
+        <div class="btn_grooup">
+          <el-button type="primary" size="mini" @click="useAdd">新增</el-button>
+        </div>
 
-      <el-table-column label="任务-新增" align="center" prop="taskAdd" >
-        <template slot-scope="scope">
-          {{scope.row.taskAdd ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="任务-删除" align="center" prop="taskDel">
-        <template slot-scope="scope">
-          {{scope.row.taskDel ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="任务-编辑" align="center" prop="taskEdit">
-        <template slot-scope="scope">
-          {{scope.row.taskEdit ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="任务-查看" align="center" prop="taskView">
-        <template slot-scope="scope">
-          {{scope.row.taskView ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="行动-新增" align="center" prop="behaviorAdd">
-        <template slot-scope="scope">
-          {{scope.row.behaviorAdd ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="行动-删除" align="center" prop="behaviorDel">
-        <template slot-scope="scope">
-          {{scope.row.behaviorDel ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="行动-编辑" align="center" prop="behaviorEdit">
-        <template slot-scope="scope">
-          {{scope.row.behaviorEdit ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="行动-查看" align="center" prop="behaviorView">
-        <template slot-scope="scope">
-          {{scope.row.behaviorView ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="联系人-新增" align="center" prop="contactAdd">
-        <template slot-scope="scope">
-          {{scope.row.contactAdd ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="联系人-删除" align="center" prop="contactDel">
-        <template slot-scope="scope">
-          {{scope.row.contactDel ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="联系人-编辑" align="center" prop="contactEdit">
-        <template slot-scope="scope">
-          {{scope.row.contactEdit ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="联系人-查看" align="center" prop="contactView">
-        <template slot-scope="scope">
-          {{scope.row.contactView ? '√' : '×'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['material:authority:edit']"
-          >修改</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
+        <el-table
+          :data="tableList"
+          @row-dblclick="useDoubleClick"
+          v-loading="loading"
+          height="600px"
+        >
+          <el-table-column label="序号" type="index" width="50" align="center" fixed/>
+          <el-table-column show-overflow-tooltip label="编码" align="center" width="200" prop="code"/>
+          <el-table-column show-overflow-tooltip label="客户名称" align="center" width="200" prop="customerName"/>
+          <el-table-column show-overflow-tooltip label="月度" align="center" width="200" prop="month"/>
+          <el-table-column show-overflow-tooltip label="部门" align="center" width="200" prop="deptName"/>
+          <el-table-column show-overflow-tooltip label="创建人" align="center" width="200" prop="createByName" />
+          <el-table-column show-overflow-tooltip label="创建时间" align="center" width="200" prop="createTime" />
+          <el-table-column show-overflow-tooltip label="修改人" align="center" width="200" prop="updateByName" />
+          <el-table-column show-overflow-tooltip label="修改时间" align="center" width="200" prop="updateTime" />
+          <el-table-column fixed="right" label="操作" align="center" width="150">
+            <template slot-scope="scope">
+              <el-button type="text" size="mini" @click="useEdit(scope.row)">填报</el-button>
+              <el-button type="text" size="mini" @click="useDel(scope.row)">删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
 
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
+        <el-pagination
+          background
+          @size-change="useChangePageSize"
+          @current-change="useCurrentChange"
+          :current-page="queryParams.pageNum"
+          :page-sizes="[10, 15, 20]"
+          :page-size="100"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total=total>
+        </el-pagination>
+      </el-card>
+    </div>
+    <Detail v-if="openDetail" :openMode="openMode" :row="row"/>
 
-    <!-- 添加或修改商机角色权限对话框 -->
-    <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="postName">
-          {{form.postName}}
-          <!-- <el-input v-model="form.postName"/> -->
-        </el-form-item>
-        <el-divider content-position="left">
-          <dev style="width: 50px; height: 40px; font-size: 18px">商机</dev>
-        </el-divider>
-        <el-row>
-          <el-col :span="8">
-            <el-form-item prop="boNext">
-              <el-checkbox v-model="form.boNext">下一步</el-checkbox>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item prop="boEdit">
-              <el-checkbox v-model="form.boEdit">修改</el-checkbox>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item prop="boClose">
-              <el-checkbox v-model="form.boClose">关闭</el-checkbox>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="8">
-            <el-form-item prop="boWin">
-              <el-checkbox v-model="form.boWin">赢单</el-checkbox>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item prop="boLose">
-              <el-checkbox v-model="form.boLose">丢单</el-checkbox>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-          </el-col>
-        </el-row>
-        <el-divider content-position="left">
-          <dev style="width: 50px; height: 40px; font-size: 18px">项目成员</dev>
-        </el-divider>
-        <el-row>
-          <el-col :span="8">
-            <el-form-item prop="taskAdd">
-              <el-checkbox v-model="form.pojpsnAdd">新增</el-checkbox>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item prop="pojpsnDel">
-              <el-checkbox v-model="form.pojpsnDel">删除</el-checkbox>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item prop="pojpsnEdit">
-              <el-checkbox v-model="form.pojpsnEdit">编辑</el-checkbox>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="8">
-            <el-form-item prop="pojpsnView">
-              <el-checkbox v-model="form.pojpsnView">查看</el-checkbox>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-          </el-col>
-          <el-col :span="8">
-          </el-col>
-        </el-row>
-        <el-divider content-position="left">
-          <dev style="width: 50px; height: 40px; font-size: 18px">任务</dev>
-        </el-divider>
-        <el-row>
-          <el-col :span="8">
-            <el-form-item prop="taskAdd">
-              <el-checkbox v-model="form.taskAdd">新增</el-checkbox>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item prop="taskDel">
-              <el-checkbox v-model="form.taskDel">删除</el-checkbox>
+    <!-- 新增填报对话框 -->
+    <el-dialog
+      title="新增"
+      :visible.sync="open"
+      width="1000px"
+      append-to-body
+    >
+      <el-form
+        size="mini"
+        :model="form"
+        :rules="rules"
+        ref="form"
+        label-width="auto"
+      >
+        <el-row :gutter="10">
+          <el-col :span="1.5">
+            <el-form-item label="编码" prop="code">
+              <el-input
+                placeholder="自动生成"
+                readonly
+                v-model="form.code"
+                style="width: 200px"
+                clearable
+              />
             </el-form-item>
           </el-col>
-          <el-col :span="8">
-            <el-form-item prop="taskEdit">
-              <el-checkbox v-model="form.taskEdit">编辑</el-checkbox>
+          <el-col :span="1.5">
+            <el-form-item label="月份" prop="month">
+              <el-date-picker
+                :readonly="this.openMode == 'edit' || this.openMode == 'see'"
+                v-model="form.month"
+                value-format="yyyy-MM"
+                type="month"
+                clearable
+              >
+              </el-date-picker>
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="8">
-            <el-form-item prop="taskView">
-              <el-checkbox v-model="form.taskView">查看</el-checkbox>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-          </el-col>
-          <el-col :span="8">
-          </el-col>
-        </el-row>
-        <el-divider content-position="left">
-          <dev style="width: 50px; height: 40px; font-size: 18px">行动</dev>
-        </el-divider>
-        <el-row>
-          <el-col :span="8">
-            <el-form-item prop="behaviorAdd">
-              <el-checkbox v-model="form.behaviorAdd">新增</el-checkbox>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item prop="behaviorDel">
-              <el-checkbox v-model="form.behaviorDel">删除</el-checkbox>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item prop="behaviorEdit">
-              <el-checkbox v-model="form.behaviorEdit">编辑</el-checkbox>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="8">
-            <el-form-item prop="behaviorView">
-              <el-checkbox v-model="form.behaviorView">查看</el-checkbox>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-          </el-col>
-          <el-col :span="8">
-          </el-col>
-        </el-row>
-        <el-divider content-position="left">
-          <dev style="width: 50px; height: 40px; font-size: 18px">联系人</dev>
-        </el-divider>
-        <el-row>
-          <el-col :span="8">
-            <el-form-item prop="contactAdd">
-              <el-checkbox v-model="form.contactAdd">新增</el-checkbox>
+          <el-col :span="1.5">
+            <el-form-item label="客户" prop="customer">
+              <dr-popover-select
+                :readonly="this.openMode == 'edit' || this.openMode == 'see'"
+                size="mini"
+                v-model="form.customerName"
+                title="客户选择"
+                type="CUSTOMER_PARAM_ZT"
+                :dataMapping="{
+                  customer: 'id',
+                  customerName: 'name',
+                }"
+                :source.sync="form"
+              >
+              </dr-popover-select>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
-            <el-form-item prop="contactDel">
-              <el-checkbox v-model="form.contactDel">删除</el-checkbox>
+          <el-col :span="1.5">
+            <el-form-item label="创建日期" prop="createTime">
+              <el-input
+                v-model="form.createTime"
+                style="width: 200px"
+                clearable
+                readonly
+              />
             </el-form-item>
           </el-col>
-          <el-col :span="8">
-            <el-form-item prop="contactEdit">
-              <el-checkbox v-model="form.contactEdit">编辑</el-checkbox>
+          <el-col :span="1.5">
+            <el-form-item label="创建人" prop="createByName">
+              <el-input
+                v-model="form.createByName"
+                style="width: 200px"
+                clearable
+                readonly
+              />
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="8">
-            <el-form-item prop="contactView">
-              <el-checkbox v-model="form.contactView">查看</el-checkbox>
+          <el-col :span="1.5">
+            <el-form-item label="部门" prop="deptName">
+              <el-input
+                v-model="form.deptName"
+                style="width: 200px"
+                clearable
+                readonly
+              />
             </el-form-item>
           </el-col>
-          <el-col :span="8">
-          </el-col>
-          <el-col :span="8">
-          </el-col>
         </el-row>
       </el-form>
       <div slot="footer">
@@ -306,171 +186,214 @@
 </template>
 
 <script>
-import { listAuthority, getAuthority, delAuthority, addAuthority, updateAuthority } from "@/api/business/spd/bo/authority";
+import Detail from './detail.vue'
+import { addAssess,listAssess,delAssess, } from "@/api/business/spd/fillin/dailysale_quantity_assess";
+
 export default {
-  name: "Authority",
+  name: "dailysaleQuantityAssess",
+  components: {Detail},
   data() {
     return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 商机角色权限表格数据
-      authorityList: [],
-      // 弹出层标题
-      title: "",
+      loading: false,
       // 是否显示弹出层
       open: false,
-      // 查询参数
+      //新增表单
+      form: {
+        month: "",
+        customer: "",
+        customerName: "",
+      },
+      //表单校验
+      rules: {
+        month: [{ required: true, message: "月份不能为空", trigger: "blur" }],
+        customer: [
+          { required: true, message: "客户不能为空", trigger: "blur" },
+        ],
+      },
+      // 搜索框参数
       queryParams: {
+        customerName:null,
+        month:null,
+        deptName:null,
+        deptName:null,
         pageNum: 1,
         pageSize: 10,
-        post: null,
-        boNext: null,
-        boEdit: null,
-        boClose: null,
-        boWin: null,
-        boLose: null,
-        taskAdd: null,
-        taskDel: null,
-        taskEdit: null,
-        taskView: null,
-        behaviorAdd: null,
-        behaviorDel: null,
-        behaviorEdit: null,
-        behaviorView: null,
-        contactAdd: null,
-        contactDel: null,
-        contactEdit: null,
-        contactView: null
       },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-      }
+      //总条数
+      total: 0,
+      //列表数据
+      tableList:[],
+      //是否打开详情页面
+      openDetail:false,
+      //编辑页面打开方式,add或edit或see
+      openMode:'',
+      //行数据
+      row:{},
     };
   },
   created() {
-    this.getList();
+    this.getList(this.queryParams);
   },
   methods: {
-    /** 查询商机角色权限列表 */
-    getList() {
-      this.loading = true;
-      listAuthority(this.queryParams).then(response => {
-        this.authorityList = response.rows;
-        console.log('this.authorityList',this.authorityList);
-        this.total = response.total;
-        this.loading = false;
-      });
+    //是否打开详情页面
+    useOpenDetail(){
+      this.openDetail = !this.openDetail;
     },
-    // 取消按钮
-    cancel() {
-      this.open = false;
+    //新增
+    useAdd(){
       this.reset();
+      this.form.createTime = this.getCurrentTime();
+      this.form.month = this.getCurrentMonth();
+      this.form.createByName = this.$store.state.user.nickName;
+      this.form.dept = this.$store.state.user.deptId;
+      this.form.deptName = this.$store.state.user.deptName;
+      this.open = true;
     },
-    // 表单重置
-    reset() {
-      this.form = {
-        id: null,
-        post: null,
-        boNext: null,
-        boEdit: null,
-        boClose: null,
-        boWin: null,
-        boLose: null,
-        taskAdd: null,
-        taskDel: null,
-        taskEdit: null,
-        taskView: null,
-        behaviorAdd: null,
-        behaviorDel: null,
-        behaviorEdit: null,
-        behaviorView: null,
-        contactAdd: null,
-        contactDel: null,
-        contactEdit: null,
-        contactView: null
-      };
-      this.resetForm("form");
+    //编辑
+    async useEdit(row){
+      this.openMode = 'edit';
+      this.row = row;
+      this.openDetail = true;
+    },
+    //删除
+    async useDel(row){
+      this.$modal.confirm('确认删除选择数据').then(() => {
+        delAssess(row.id).then(res => {
+          if (res.code === 200) {
+            this.$modal.msgSuccess("删除成功");
+            this.getList(this.queryParams);
+          }
+        })
+      }).catch(() => {})
+    },
+    //查询列表
+    getList(params){
+      this.loading = true;
+      listAssess(params).then(res => {
+        if (res.code === 200) {
+          this.tableList = res.rows
+          this.total = res.total
+        }
+        this.loading = false;
+      })
     },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
+    //双击
+    useDoubleClick(row){
+      this.openMode = 'see';
+      this.row = row;
+      this.openDetail = true;
     },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
+    //改变一页显示条数
+    useChangePageSize(val){
+      this.queryParams.pageSize = val
+      this.getList(this.queryParams)
     },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
+    //翻页
+    useCurrentChange(val){
+      this.queryParams.pageNum = val
+      this.getList(this.queryParams)
     },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加商机角色权限";
+    //搜索
+    useSearch() {
+      console.log(this.queryParams);
+      this.getList(this.queryParams);
     },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const id = row.id || this.ids
-      getAuthority(id).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改商机角色权限";
-      });
+    //重置
+    useReset(){
+      this.queryParams = {
+        customerName:null,
+        month:null,
+        deptName:null,
+        deptName:null,
+        pageNum: 1,
+        pageSize: 10,
+      }
+      this.getList(this.queryParams);
     },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
+    //重置表单
+    reset(){
+      this.form = {
+        month: "",
+        customer: "",
+        customerName: "",
+      }
+    },
+    // 确认
+    async submitForm() {
+      this.$refs["form"].validate(async (valid) => {
         if (valid) {
-          if (this.form.id != null) {
-            updateAuthority(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addAuthority(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
+          this.loading = true;
+          try {
+            let res = await addAssess(this.form);
+            if (res.code === 200) {
+              this.$modal.msgSuccess("保存成功");
+              this.cancel();
+              this.getList(this.queryParams);
+            }
+          } catch (err) {
+            console.error(err);
+          } finally {
+            this.loading = false;
           }
+        } else {
+          return false;
         }
       });
     },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除商机角色权限编号为"' + ids + '"的数据项?').then(function() {
-        return delAuthority(ids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    getCurrentTime() {
+      var date = new Date();//当前时间
+      var year = date.getFullYear() //年
+      var month = this.repair(date.getMonth() + 1);//月
+      var day = this.repair(date.getDate());//日
+      var hour = this.repair(date.getHours());//时
+      var minute = this.repair(date.getMinutes());//分
+      var second = this.repair(date.getSeconds());//秒
+      //当前时间 
+      var curTime = year + "-" + month + "-" + day
+              + " " + hour + ":" + minute + ":" + second;
+      return curTime;
     },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('material/authority/export', {
-        ...this.queryParams
-      }, `authority_${new Date().getTime()}.xlsx`)
-    }
-  }
+    repair(i){
+      if (i >= 0 && i <= 9) {
+          return "0" + i;
+      } else {
+          return i;
+      }
+    },
+     //获取当月
+    getCurrentMonth(){
+      const date = new Date()
+      let year = date.getFullYear()
+      let month = date.getMonth() + 1
+      month = month > 9 ? month : '0' + month
+      return `${year}-${month}`
+    },
+  },
 };
 </script>
+
+<style scoped lang="scss">
+.el-card {
+  width: calc(100% - 20px);
+  height: 100%;
+  margin: 10px;
+  padding: 20px;
+}
+.el-button-group + .el-button-group {
+  margin: 0 0 0 10px;
+}
+.btn_grooup {
+  margin-bottom: 10px;
+  display: flex;
+  justify-content: flex-end;
+}
+.el-pagination {
+  margin-top: 10px;
+  text-align: right;
+}
+</style>

+ 0 - 399
src/views/business/spd/fillin/dailysale_quantity_assess/index.vue

@@ -1,399 +0,0 @@
-
-<template>
-  <div>
-    <div v-if="!openDetail">
-      <el-card>
-        <el-form size="mini" class="search_area" label-width="120px">
-          <el-row :gutter="10">
-            <el-col :span="1.5">
-              <el-form-item label="客户名称">
-                <el-input
-                  v-model="queryParams.customerName"
-                  clearable
-                />
-              </el-form-item>
-            </el-col>
-            <el-col :span="1.5">
-              <el-form-item label="年度">
-                <el-date-picker
-                  v-model="queryParams.month"
-                  type="month"
-                  value-format="yyyy-MM"
-                  clearable
-                  >
-                </el-date-picker>
-              </el-form-item>
-            </el-col>
-            <el-col :span="1.5">
-              <el-form-item label="创建人">
-                <el-input
-                  v-model="queryParams.createByName"
-                  clearable
-                />
-              </el-form-item>
-            </el-col>
-            <el-col :span="1.5">
-              <el-form-item label="部门">
-                <el-input
-                  v-model="queryParams.deptName"
-                  clearable
-                />
-              </el-form-item>
-            </el-col>
-            <el-col :span="1.5">
-              <el-form-item label="" label-width="20px">
-                <el-button type="primary" size="mini" icon="el-icon-search" plain @click="useSearch">搜索</el-button>
-                <el-button size="mini" icon="el-icon-refresh" plain @click="useReset">重置</el-button>
-              </el-form-item>
-            </el-col>
-          </el-row>
-        </el-form>
-        <el-divider></el-divider>
-        <div class="btn_grooup">
-          <el-button type="primary" size="mini" @click="useAdd">新增</el-button>
-        </div>
-
-        <el-table
-          :data="tableList"
-          @row-dblclick="useDoubleClick"
-          v-loading="loading"
-          height="600px"
-        >
-          <el-table-column label="序号" type="index" width="50" align="center" fixed/>
-          <el-table-column show-overflow-tooltip label="编码" align="center" width="200" prop="code"/>
-          <el-table-column show-overflow-tooltip label="客户名称" align="center" width="200" prop="customerName"/>
-          <el-table-column show-overflow-tooltip label="月度" align="center" width="200" prop="month"/>
-          <el-table-column show-overflow-tooltip label="部门" align="center" width="200" prop="deptName"/>
-          <el-table-column show-overflow-tooltip label="创建人" align="center" width="200" prop="createByName" />
-          <el-table-column show-overflow-tooltip label="创建时间" align="center" width="200" prop="createTime" />
-          <el-table-column show-overflow-tooltip label="修改人" align="center" width="200" prop="updateByName" />
-          <el-table-column show-overflow-tooltip label="修改时间" align="center" width="200" prop="updateTime" />
-          <el-table-column fixed="right" label="操作" align="center" width="150">
-            <template slot-scope="scope">
-              <el-button type="text" size="mini" @click="useEdit(scope.row)">填报</el-button>
-              <el-button type="text" size="mini" @click="useDel(scope.row)">删除</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-
-        <el-pagination
-          background
-          @size-change="useChangePageSize"
-          @current-change="useCurrentChange"
-          :current-page="queryParams.pageNum"
-          :page-sizes="[10, 15, 20]"
-          :page-size="100"
-          layout="total, sizes, prev, pager, next, jumper"
-          :total=total>
-        </el-pagination>
-      </el-card>
-    </div>
-    <Detail v-if="openDetail" :openMode="openMode" :row="row"/>
-
-    <!-- 新增填报对话框 -->
-    <el-dialog
-      title="新增"
-      :visible.sync="open"
-      width="1000px"
-      append-to-body
-    >
-      <el-form
-        size="mini"
-        :model="form"
-        :rules="rules"
-        ref="form"
-        label-width="auto"
-      >
-        <el-row :gutter="10">
-          <el-col :span="1.5">
-            <el-form-item label="编码" prop="code">
-              <el-input
-                placeholder="自动生成"
-                readonly
-                v-model="form.code"
-                style="width: 200px"
-                clearable
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="1.5">
-            <el-form-item label="月份" prop="month">
-              <el-date-picker
-                :readonly="this.openMode == 'edit' || this.openMode == 'see'"
-                v-model="form.month"
-                value-format="yyyy-MM"
-                type="month"
-                clearable
-              >
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="1.5">
-            <el-form-item label="客户" prop="customer">
-              <dr-popover-select
-                :readonly="this.openMode == 'edit' || this.openMode == 'see'"
-                size="mini"
-                v-model="form.customerName"
-                title="客户选择"
-                type="CUSTOMER_PARAM_ZT"
-                :dataMapping="{
-                  customer: 'id',
-                  customerName: 'name',
-                }"
-                :source.sync="form"
-              >
-              </dr-popover-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="1.5">
-            <el-form-item label="创建日期" prop="createTime">
-              <el-input
-                v-model="form.createTime"
-                style="width: 200px"
-                clearable
-                readonly
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="1.5">
-            <el-form-item label="创建人" prop="createByName">
-              <el-input
-                v-model="form.createByName"
-                style="width: 200px"
-                clearable
-                readonly
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="1.5">
-            <el-form-item label="部门" prop="deptName">
-              <el-input
-                v-model="form.deptName"
-                style="width: 200px"
-                clearable
-                readonly
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <div slot="footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import Detail from './detail.vue'
-import { addAssess,listAssess,delAssess, } from "@/api/business/spd/fillin/dailysale_quantity_assess";
-
-export default {
-  name: "dailysaleQuantityAssess",
-  components: {Detail},
-  data() {
-    return {
-      loading: false,
-      // 是否显示弹出层
-      open: false,
-      //新增表单
-      form: {
-        month: "",
-        customer: "",
-        customerName: "",
-      },
-      //表单校验
-      rules: {
-        month: [{ required: true, message: "月份不能为空", trigger: "blur" }],
-        customer: [
-          { required: true, message: "客户不能为空", trigger: "blur" },
-        ],
-      },
-      // 搜索框参数
-      queryParams: {
-        customerName:null,
-        month:null,
-        deptName:null,
-        deptName:null,
-        pageNum: 1,
-        pageSize: 10,
-      },
-      //总条数
-      total: 0,
-      //列表数据
-      tableList:[],
-      //是否打开详情页面
-      openDetail:false,
-      //编辑页面打开方式,add或edit或see
-      openMode:'',
-      //行数据
-      row:{},
-    };
-  },
-  created() {
-    this.getList(this.queryParams);
-  },
-  methods: {
-    //是否打开详情页面
-    useOpenDetail(){
-      this.openDetail = !this.openDetail;
-    },
-    //新增
-    useAdd(){
-      this.reset();
-      this.form.createTime = this.getCurrentTime();
-      this.form.month = this.getCurrentMonth();
-      this.form.createByName = this.$store.state.user.nickName;
-      this.form.dept = this.$store.state.user.deptId;
-      this.form.deptName = this.$store.state.user.deptName;
-      this.open = true;
-    },
-    //编辑
-    async useEdit(row){
-      this.openMode = 'edit';
-      this.row = row;
-      this.openDetail = true;
-    },
-    //删除
-    async useDel(row){
-      this.$modal.confirm('确认删除选择数据').then(() => {
-        delAssess(row.id).then(res => {
-          if (res.code === 200) {
-            this.$modal.msgSuccess("删除成功");
-            this.getList(this.queryParams);
-          }
-        })
-      }).catch(() => {})
-    },
-    //查询列表
-    getList(params){
-      this.loading = true;
-      listAssess(params).then(res => {
-        if (res.code === 200) {
-          this.tableList = res.rows
-          this.total = res.total
-        }
-        this.loading = false;
-      })
-    },
-    //双击
-    useDoubleClick(row){
-      this.openMode = 'see';
-      this.row = row;
-      this.openDetail = true;
-    },
-    //改变一页显示条数
-    useChangePageSize(val){
-      this.queryParams.pageSize = val
-      this.getList(this.queryParams)
-    },
-    //翻页
-    useCurrentChange(val){
-      this.queryParams.pageNum = val
-      this.getList(this.queryParams)
-    },
-    //搜索
-    useSearch() {
-      console.log(this.queryParams);
-      this.getList(this.queryParams);
-    },
-    //重置
-    useReset(){
-      this.queryParams = {
-        customerName:null,
-        month:null,
-        deptName:null,
-        deptName:null,
-        pageNum: 1,
-        pageSize: 10,
-      }
-      this.getList(this.queryParams);
-    },
-    //重置表单
-    reset(){
-      this.form = {
-        month: "",
-        customer: "",
-        customerName: "",
-      }
-    },
-    // 确认
-    async submitForm() {
-      this.$refs["form"].validate(async (valid) => {
-        if (valid) {
-          this.loading = true;
-          try {
-            let res = await addAssess(this.form);
-            if (res.code === 200) {
-              this.$modal.msgSuccess("保存成功");
-              this.cancel();
-              this.getList(this.queryParams);
-            }
-          } catch (err) {
-            console.error(err);
-          } finally {
-            this.loading = false;
-          }
-        } else {
-          return false;
-        }
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    getCurrentTime() {
-      var date = new Date();//当前时间
-      var year = date.getFullYear() //年
-      var month = this.repair(date.getMonth() + 1);//月
-      var day = this.repair(date.getDate());//日
-      var hour = this.repair(date.getHours());//时
-      var minute = this.repair(date.getMinutes());//分
-      var second = this.repair(date.getSeconds());//秒
-      //当前时间 
-      var curTime = year + "-" + month + "-" + day
-              + " " + hour + ":" + minute + ":" + second;
-      return curTime;
-    },
-    repair(i){
-      if (i >= 0 && i <= 9) {
-          return "0" + i;
-      } else {
-          return i;
-      }
-    },
-     //获取当月
-    getCurrentMonth(){
-      const date = new Date()
-      let year = date.getFullYear()
-      let month = date.getMonth() + 1
-      month = month > 9 ? month : '0' + month
-      return `${year}-${month}`
-    },
-  },
-};
-</script>
-
-<style scoped lang="scss">
-.el-card {
-  width: calc(100% - 20px);
-  height: 100%;
-  margin: 10px;
-  padding: 20px;
-}
-.el-button-group + .el-button-group {
-  margin: 0 0 0 10px;
-}
-.btn_grooup {
-  margin-bottom: 10px;
-  display: flex;
-  justify-content: flex-end;
-}
-.el-pagination {
-  margin-top: 10px;
-  text-align: right;
-}
-</style>

+ 6 - 1
src/views/business/spd/target/targetTemplate/detail.vue

@@ -197,6 +197,12 @@ export default {
   data() {
     return {
       form:{
+        year:'',
+        name:'',
+        startTime:'',
+        deadlineTime:'',
+        cycle:'',
+        unfold:'',
         indexs:[],
         dimensionalitys:[],
         cycles:[],
@@ -254,7 +260,6 @@ export default {
   methods: {
     //保存
     async useSave() {
-        console.log("form",this.form);
         this.$refs["form"].validate(async (valid) => {
             if (valid) {
                 try {

+ 97 - 42
src/views/business/spd/task_management/visitingPlan/add.vue

@@ -29,7 +29,7 @@
 
          <el-col :span="1.5">
             <el-form-item label="线路类型" prop="type" :rules="{ required: true, message: '请选择线路类型', trigger: 'blur' }">
-              <el-select :disabled="sonDisable" v-model="basicForm.type" size="mini" style="width: 200px">
+              <el-select clearable size="mini" :disabled="sonDisable" v-model="basicForm.type" style="width: 200px">
                 <el-option v-for="dict in dict.type.mk_plan_route_type" :key="dict.value" :label="dict.label" :value="dict.value">
                 </el-option>
               </el-select>
@@ -38,15 +38,15 @@
 
           <el-col :span="1.5">
             <el-form-item label="执行人" prop="chargerName" :rules="{ required: true, message: '请选择执行人', trigger: 'blur' }">
-                <el-select clearable size="mini" v-model="basicForm.chargerName" :disabled="sonDisable" @focus="choose('CONTACTS_PARAM', true, '执行人')" style="width: 200px">
-                  <el-option v-for="item in personOptions" :key="item.id" :label="item.name" :value="item.code" />
-                </el-select>
+              <el-select clearable size="mini" v-model="basicForm.chargerName" :disabled="sonDisable" @focus="choose('CONTACTS_PARAM', true, '请选择执行人')" @clear="clearHang({}, '请选择执行人')" style="width: 200px">
+                <el-option v-for="item in personOptions" :key="item.id" :label="item.name" :value="item.code"/>
+              </el-select>
             </el-form-item>
           </el-col>
 
           <el-col :span="1.5">
             <el-form-item label="确认状态" prop="state">
-              <el-select disabled v-model="basicForm.state" size="mini" style="width: 200px">
+              <el-select disabled size="mini" v-model="basicForm.state" style="width: 200px">
                 <el-option v-for="dict in dict.type.mk_plan_state" :key="dict.value" :label="dict.label" :value="dict.value">
                 </el-option>
               </el-select>
@@ -64,9 +64,11 @@
                 :disabled="sonDisable"
                 clearable
                 type="date"
-                value-format="yyyy-MM-dd"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                :picker-options="pickerOptionsStart"
                 size="mini"
                 style="width: 200px"
+                placeholder="选择开始时间"
               >
               </el-date-picker>
             </el-form-item>
@@ -79,9 +81,11 @@
                 :disabled="sonDisable"
                 clearable
                 type="date"
-                value-format="yyyy-MM-dd"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                :picker-options="pickerOptionsEnd"
                 size="mini"
                 style="width: 200px"
+                placeholder="选择截止时间"
               >
               </el-date-picker>
             </el-form-item>
@@ -89,7 +93,7 @@
 
          <el-col :span="1.5">
             <el-form-item label="销售区域" prop="marketingAreaName" :rules="{ required: true, message: '请选择销售区域', trigger: 'blur' }">
-              <el-select clearable v-model="basicForm.marketingAreaName" size="mini" :disabled="sonDisable" @focus="choose('MK_SALESAREA_PARAM', true, '销售区域')" style="width: 200px">
+              <el-select clearable v-model="basicForm.marketingAreaName" size="mini" :disabled="sonDisable" @focus="choose('MK_SALESAREA_PARAM', true, '请选择销售区域')" style="width: 200px">
                 <el-option
                   v-for="item in deptOptions"
                   :key="item.id"
@@ -104,10 +108,7 @@
             <el-form-item label="部门" prop="deptName">
               <el-select clearable v-model="basicForm.deptName" size="mini" :disabled="sonDisable" @focus="choose('DEPT_PARAM', true, '部门')" style="width: 200px">
                 <el-option
-                  v-for="item in deptOptions"
-                  :key="item.id"
-                  :label="item.name"
-                  :value="item.code">
+                  v-for="item in deptOptions" :key="item.id" :label="item.name" :value="item.code">
                 </el-option>
               </el-select>
             </el-form-item>
@@ -144,7 +145,9 @@
                   clearable
                   type="date"
                   size="mini"
-                  value-format="yyyy-MM-dd"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                  :picker-options="pickerOptions"
+
                   placeholder="选择日期"
                 >
                 </el-date-picker>
@@ -155,7 +158,7 @@
           <el-table-column show-overflow-tooltip label="客户" prop="customerName" min-width="230" :render-header="addRedStar">
             <template slot-scope="scope">
               <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'customerName'" :rules="{ required: true, message: '请选择客户', trigger: 'blur' }">
-                <el-select clearable size="mini" v-model="scope.row.customerName" :disabled="sonDisable" @focus="chooseSon(scope.$index, 'CUSTOMER_PARAM_ZT', true, '客户', {charger: basicForm.charger})" style="width: 200px">
+                <el-select clearable size="mini" v-model="scope.row.customerName" :disabled="sonDisable" @focus="chooseCustomer(scope.$index, 'CUSTOMER_PARAM_ZT', true, '请选择客户', {charger: basicForm.charger})" @clear="clearHang(scope.$index, '请选择客户')" style="width: 200px">
                   <el-option v-for="item in customerOptions" :key="item.id" :label="item.name" :value="item.code" />
                 </el-select>
               </el-form-item>
@@ -165,7 +168,7 @@
           <el-table-column show-overflow-tooltip label="联系人" prop="contactName" min-width="230" :render-header="addRedStar">
             <template slot-scope="scope">
               <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'contactName'" :rules="{ required: true, message: '请选择联系人', trigger: 'blur' }">
-                <el-select clearable size="mini" v-model="scope.row.contactName" :disabled="sonDisable" @focus="chooseSon(scope.$index, 'LINKMAN_PARAM', true, '联系人', {customer: scope.row.customer, charger: basicForm.charger})" style="width: 200px">
+                <el-select clearable size="mini" v-model="scope.row.contactName" :disabled="sonDisable" @focus="chooseLinkMan(scope.$index, 'LINKMAN_PARAM', true, '请选择联系人', {customer: scope.row.customer, charger: basicForm.charger})" style="width: 200px">
                   <el-option v-for="item in linkOptions" :key="item.id" :label="item.name" :value="item.code" />
                 </el-select>
               </el-form-item>
@@ -194,7 +197,7 @@
           <el-table-column show-overflow-tooltip label="商机" prop="boName" min-width="330">
             <template slot-scope="scope">
               <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'boName'">
-                <el-select clearable size="mini" v-model="scope.row.boName" :disabled="sonDisable" @focus="chooseSon(scope.$index, 'BO_PARAM', true, '商机', {charger: basicForm.charger, customer: scope.row.customer})" style="width: 300px">
+                <el-select clearable size="mini" v-model="scope.row.boName" :disabled="sonDisable" @focus="chooseSon(scope.$index, 'BO_PARAM', true, '请选择商机', {charger: basicForm.charger, customer: scope.row.customer})" @clear="clearHang(scope.$index, '请选择商机')" style="width: 300px">
                   <el-option v-for="item in boOptions" :key="item.id" :label="item.name" :value="item.code" />
                 </el-select>
               </el-form-item>
@@ -285,7 +288,7 @@ export default {
       referCondition: {
         type: '',
         isPage: true,
-        title: '',
+        title: ''
       },
       tableIndex: null,
       ids: [],
@@ -296,7 +299,25 @@ export default {
       deptOptions: [],
       customerOptions: [],
       salesAreaOptions: [],
-      //判断默认明细行带出完毕后日期等于当前日期的标识
+      //定义主表开始时间的范围不能早于今天
+      pickerOptionsStart: {
+        disabledDate: (time) => {
+          return time.getTime() < Date.now() - 1 * 24 * 60 * 60 * 1000
+        }
+      },
+      //定义主表截止时间的范围不能早于开始时间
+      pickerOptionsEnd: {
+        disabledDate: (time) => {
+          return time.getTime() < (new Date(this.basicForm.startDate)).getTime()
+        }
+      },
+      //定义子表日期的范围不能早于开始时间且不能晚于截止时间
+      pickerOptions: {
+        disabledDate: (time) => {
+          return time.getTime() < (new Date(this.basicForm.startDate)).getTime() || time.getTime() > (new Date(this.basicForm.deadlineTime)).getTime()
+        }
+      },
+      //判断默认明细行带出完毕后,增行日期等于当前日期的标识
       isFlag: false
     }
   },
@@ -304,7 +325,7 @@ export default {
   mounted() {},
   created() {
     //查看系统数据
-    console.log(this.$store.state.user, 'this.$store.state.user')
+    // console.log(this.$store.state.user, 'this.$store.state.user')
     if(this.pageStu == 'check') {
       console.log('数据', this.row)
       this.getDetails(this.row)
@@ -413,18 +434,6 @@ export default {
         this.$modal.msgWarning("明细信息不能为空!");
       }
     },
-    // submit() {
-    //   this.$modal.loading("提交中...");
-    //   submitDemand(this.basicForm).then(res => {
-    //     if (res.code === 200) {
-    //       this.$modal.notifySuccess("提交成功");
-    //       this.$modal.closeLoading();
-    //       this.back()
-    //     }
-    //   }).catch(err => {
-    //     this.$modal.closeLoading();
-    //   })
-    // },
     // 增行
     addLine(date) {
       if (this.isFlag) {
@@ -535,14 +544,14 @@ export default {
         }
       })
     },
-    // 基本信息选择参照带出数据
+    //公共基本信息选择参照带出数据
     choose(type, isPage, title) {
       this.referCondition.type = type
       this.referCondition.isPage = isPage
       this.referCondition.title = title
       this.$refs.refer.init(this.referCondition)
     },
-    // 明细行选择参照带出数据
+    //公共明细行选择参照带出数据
     chooseSon(index, type, isPage, title, parame) {
       this.tableIndex = index
       this.referCondition.type = type
@@ -551,34 +560,87 @@ export default {
       this.referCondition.parame = parame
       this.$refs.refer.init(this.referCondition)
     },
+    //客户明细行选择参照带出数据
+    chooseCustomer(index, type, isPage, title, parame) {
+      this.tableIndex = index
+      this.referCondition.type = type
+      this.referCondition.isPage = isPage
+      this.referCondition.title = title
+      if(parame.charger) {
+        this.referCondition.parame = parame
+        this.$refs.refer.init(this.referCondition)
+      } else {
+        this.$modal.notifyWarning("请先确认执行人");
+      }
+    },
+    //联系人明细行选择参照带出数据
+    chooseLinkMan(index, type, isPage, title, parame) {
+      this.tableIndex = index
+      this.referCondition.type = type
+      this.referCondition.isPage = isPage
+      this.referCondition.title = title
+      if(parame.customer) {
+        this.referCondition.parame = parame
+        this.$refs.refer.init(this.referCondition)
+      } else {
+        this.$modal.notifyWarning("请先确认客户");
+      }
+    },
+    //联动清除明细行里其它的字段
+    clearHang(index, title) {
+      if (title == '请选择执行人') {
+        this.basicForm.dept = null
+        this.basicForm.deptName = null
+      }
+      if (title == '请选择客户') {
+        this.basicForm.mkBoPlanItemList[index].contact = null
+        this.basicForm.mkBoPlanItemList[index].contactName = null
+        this.basicForm.mkBoPlanItemList[index].bo = null
+        this.basicForm.mkBoPlanItemList[index].boName = null
+      }
+      if (title == '请选择商机') {
+        this.basicForm.mkBoPlanItemList[index].customer = null
+        this.basicForm.mkBoPlanItemList[index].customerName = null
+        this.basicForm.mkBoPlanItemList[index].bo = null
+        this.basicForm.mkBoPlanItemList[index].boName = null
+      }
+    },
     selectionsToInput(selection) {
+      //执行人参照
       if(this.referCondition.type == 'CONTACTS_PARAM') {
         this.personOptions = selection
         this.basicForm.charger = selection[0].id
         this.basicForm.chargerName = selection[0].name
+        this.basicForm.dept = selection[0].deptId
+        this.basicForm.deptName = selection[0].deptName
       }
+      //销售区域参照
       if(this.referCondition.type == 'MK_SALESAREA_PARAM') {
         this.salesAreaOptions = selection
         this.basicForm.marketingArea = selection[0].id
         this.basicForm.marketingAreaName = selection[0].name
       }
+      //部门参照
       if(this.referCondition.type == 'DEPT_PARAM') {
         this.deptOptions = selection
         this.basicForm.dept = selection[0].id
         this.basicForm.deptName = selection[0].name
       }
+      //客户参照
       if(this.referCondition.type == 'CUSTOMER_PARAM_ZT') {
         this.customerOptions = selection
         this.basicForm.mkBoPlanItemList[this.tableIndex].customer = selection[0].id
         this.basicForm.mkBoPlanItemList[this.tableIndex].customerName = selection[0].name
       }
+      //联系人参照
       if(this.referCondition.type == 'LINKMAN_PARAM') {
         this.linkOptions = selection
         this.basicForm.mkBoPlanItemList[this.tableIndex].contact = selection[0].id
         this.basicForm.mkBoPlanItemList[this.tableIndex].contactName = selection[0].name
       }
+      //商机参照
       if(this.referCondition.type == 'BO_PARAM') {
-        this.linkOptions = selection
+        this.boOptions = selection
         this.basicForm.mkBoPlanItemList[this.tableIndex].bo = selection[0].id
         this.basicForm.mkBoPlanItemList[this.tableIndex].boName = selection[0].name
         this.basicForm.mkBoPlanItemList[this.tableIndex].customer = selection[0].customer
@@ -597,7 +659,7 @@ export default {
         let Stamp = new Date();
         let num = 7 - Stamp.getDay() + 1 + i;
         Stamp.setDate(Stamp.getDate() + num);
-        week[i] = Stamp.getFullYear() + '-' + (Stamp.getMonth() + 1) + '-' + Stamp.getDate();
+        week[i] = Stamp.getFullYear() + '-' + (Stamp.getMonth() + 1) + '-' + Stamp.getDate() + ' ' + '00:00:00';
       }
       return week[day - 1];
     },
@@ -638,11 +700,4 @@ export default {
 .hang ::v-deep .el-form-item__content{
   margin-left: 0px !important;
 }
-.el-table ::v-deep .el-form-item__error{
-  padding-top: 0;
-  top: 70%
-}
-.el-table ::v-deep .success-row {
-  background: #f11616;
-}
 </style>

+ 224 - 54
src/views/material/basicFile/columns.js

@@ -1,29 +1,56 @@
 export const SearchColumns = [
   {
+    item:{
+      key: "codes",
+      title: "物料编码",  
+    },
+    attr:{
+      clearable:true,
+      is: "el-popover-multiple-select-v2",
+      valueKey: "code",
+      referName: "MATERIAL_PARAM",
+    },
+  },
+  {
+    item:{
+      key: "name",
+      title: "物料名称",  
+    },
+    attr:{
+      clearable:true,
+      is: "el-popover-select-v2",
+      valueKey: "name",
+      referName: "MATERIAL_PARAM",
+    },
+  },
+  {
     item: {
-      key: "classifyIdName",
+      key: "classifys",
       title: "物料分类",
     },
     attr: {
-      is: "el-popover-tree-select",
+      is: "el-popover-multiple-tree-select",
       referName: "MATERIALCLASSIFY_PARAM",
-      valueKey: "name",
+      valueKey: "id",
       clearable:true,
-      dataMapping: {
-        classifyId: "id",
-      },
+      // dataMapping: {
+      //   classifys: "id",
+      // },
     },
   },
   {
     item:{
-      key: "codes",
-      title: "物料编码",  
+      key: "puPersonnelIdName",
+      title: "采购员",
     },
-    attr:{
+    attr: {
       clearable:true,
-      is: "el-popover-multiple-select-v2",
-      valueKey: "code",
-      referName: "MATERIAL_PARAM",
+      is: "el-popover-select-v2",
+      referName: "CONTACTS_PARAM",
+      valueKey: "name",
+      dataMapping: {
+        puPersonnelId: "code",
+      },
     },
   },
   {
@@ -43,8 +70,19 @@ export const SearchColumns = [
   },
   {
     item:{
+      key: "isEnable",
+      title: "启用状态",  
+    },
+    attr:{
+      clearable:true,
+      is: "el-select",
+      dictName: "material_enable",
+    },
+  },
+  {
+    item:{
       key: "isMedicine",
-      title: "医药物料",  
+      title: "是否医药物料",  
     },
     attr:{
       clearable:true,
@@ -52,40 +90,93 @@ export const SearchColumns = [
       dictName: "sys_number_yes_no",
     },
   },
-
-
-
-
-
-
   {
     item:{
-      key: "name",
-      title: "物料名称",  
+      key: "medicalInstruments",
+      title: "医疗器械",  
     },
     attr:{
       clearable:true,
-      is: "el-popover-select-v2",
-      valueKey: "name",
-      referName: "MATERIAL_PARAM",
+      is: "el-select",
+      dictName: "medical_instruments",
     },
   },
-  
   {
     item:{
-      key: "isEnable",
-      title: "启用状态",  
+      key: "specification",
+      title: "规格",
+    },
+    attr: {
+      clearable:true,
+      is: "el-input",
+    },
+  },
+  {
+    item:{
+      key: "model",
+      title: "型号",
+    },
+    attr: {
+      clearable:true,
+      is: "el-input",
+    },
+  },
+  // {
+  //   item:{
+  //     key: "model",
+  //     title: "品牌",
+  //   },
+  //   attr: {
+  //     clearable:true,
+  //     is: "el-input",
+  //   },
+  // },
+  {
+    item:{
+      key: "version",
+      title: "版本号",
+    },
+    attr: {
+      clearable:true,
+      is: "el-input",
+    },
+  },
+  {
+    item:{
+      key: "registrant",
+      title: "注册人",
+    },
+    attr: {
+      clearable:true,
+      is: "el-input",
+    },
+  },
+  {
+    item:{
+      key: "registrationNo",
+      title: "注册证号",
+    },
+    attr: {
+      clearable:true,
+      is: "el-input",
+    },
+  },
+  {
+    item:{
+      key: "serialNoManager",
+      title: "是否序列号管理",  
     },
     attr:{
       clearable:true,
       is: "el-select",
-      dictName: "material_enable",
+      dictName: "sys_number_yes_no",
     },
   },
+
   {
     item:{
-      key: "puPersonnelIdName",
-      title: "采购员",
+      key: "createByName",
+      title: "创建人",
     },
     attr: {
       clearable:true,
@@ -93,12 +184,114 @@ export const SearchColumns = [
       referName: "CONTACTS_PARAM",
       valueKey: "name",
       dataMapping: {
-        puPersonnelId: "code",
+        createBy: "code",
+      },
+    },
+  },
+  
+  {
+    item:{
+      key: "updateByName",
+      title: "最后修改人",
+    },
+    attr: {
+      clearable:true,
+      is: "el-popover-select-v2",
+      referName: "CONTACTS_PARAM",
+      valueKey: "name",
+      dataMapping: {
+        updateBy: "code",
       },
     },
   },
   {
     item:{
+      key: "createTimeQueue",
+      title: "创建时间",
+      span:12,
+    },
+    attr: {
+      clearable:true,
+      is: "el-date-wrapper",
+    },
+  },
+  // {
+  //   item:{
+  //     key: "createTimeEnd",
+  //     title: "创建时间结束",
+  //   },
+  //   attr: {
+  //     clearable:true,
+  //     is: "el-input",
+  //   },
+  // },
+  {
+    item:{
+      key: "updateTimeQueue",
+      title: "修改时间",
+      span:12,
+    },
+    attr: {
+      clearable:true,
+      is: "el-date-wrapper",
+    },
+  },
+  // {
+  //   item:{
+  //     key: "updateTimeBegin",
+  //     title: "最后修改时间开始",
+  //   },
+  //   attr: {
+  //     clearable:true,
+  //     is: "el-input",
+  //   },
+  // },
+  // {
+  //   item:{
+  //     key: "updateTimeEnd",
+  //     title: "最后修改时间结束",
+  //   },
+  //   attr: {
+  //     clearable:true,
+  //     is: "el-input",
+  //   },
+  // },
+
+  
+
+
+
+
+  
+  
+  
+];
+
+export const OtherDictColumns = [
+  {
+    item:{
+      key:"expiryUnitId",
+      title:'效期单位',
+    },
+    attr:{
+      is: "el-select",
+      dictName: "period_unit",
+    }
+  },
+  {
+    item:{
+      key:'usefulLifeUnitId',
+      title:'有效期至单位',
+    },
+    attr:{
+      is: "el-select",
+      dictName: "expiry_date",
+    }
+  },
+ 
+ 
+  {
+    item:{
       key: "registrant",
       title: "注册人/上市许可持有人",
     },
@@ -153,28 +346,5 @@ export const SearchColumns = [
       dictName: "abc_type",
     }
   },
-];
-
-export const OtherDictColumns = [
-  {
-    item:{
-      key:"expiryUnitId",
-      title:'效期单位',
-    },
-    attr:{
-      is: "el-select",
-      dictName: "period_unit",
-    }
-  },
-  {
-    item:{
-      key:'usefulLifeUnitId',
-      title:'有效期至单位',
-    },
-    attr:{
-      is: "el-select",
-      dictName: "expiry_date",
-    }
-  },
   
 ]

+ 42 - 26
src/views/material/basicFile/index.vue

@@ -206,6 +206,7 @@
     components: {
       ElSuperSearch: () => import("@/components/super-search/index.vue"),
       ElDictTag: () => import("@/components/DictTag/index.vue"),
+      
     },
     data() {
       const params = this.$init.params(SearchColumns);
@@ -458,6 +459,7 @@
       handleChangeFile(file, fileList) {
         this.importData.list = fileList;
       },
+
       // 批量导出
       handleExport() {
 
@@ -471,11 +473,7 @@
           }
           this.download('/system/material/export', params, `物料基本信息${new Date().getTime()}.xlsx`);
         } else {
-          this.$notify({
-                title:'警告',
-                message: '请选择需要导出的数据!',
-                type: 'warning'
-              });
+          this.download('/system/material/export', this.params, `物料基本信息${new Date().getTime()}.xlsx`);
         }
 
       },
@@ -536,31 +534,49 @@
         this.checkedList = selection;
       },
       // 获取物料列表信息
-      getMaterialList(templateCode, query) {
-        // (params, page)
-        let _this = this;
-        this.loading = true;
-        let page = {
-          pageNum: this.queryParams.pageNum,
-          pageSize: this.queryParams.pageSize,
-        }
+      async getMaterialList(templateCode, query) {
 
-        let param = {
-          templateCode,
-          ...this.params
-          // ...this.queryForm
-        }
-        // console.log(param, 'param');
-        materialApi.materialList(param, page).then((res) => {
-          _this.loading = false;
-          console.log(res, '获取物料列表信息以及表头字段');
-          let {code, data} = res;
+        try {
+          this.loading = true;
+          let page = {
+            pageNum: this.queryParams.pageNum,
+            pageSize: this.queryParams.pageSize,
+          }
+
+          let param = {
+            templateCode,
+            ...this.params,
+            createTimeBegin: (this.params.createTimeQueue && this.params.createTimeQueue[0]) || '',
+            createTimeEnd:(this.params.createTimeQueue && this.params.createTimeQueue[1]) || '',
+            updateTimeBegin:(this.params.updateTimeQueue && this.params.updateTimeQueue[0]) || '',
+            updateTimeEnd:(this.params.updateTimeQueue && this.params.updateTimeQueue[1]) || ''
+          }
+
+          console.log(param,'param--------------');
+
+          let {code,data} = await  materialApi.materialList(param, page);
+          
           if (code == 200) {
-            _this.taskList = data.tableBody.rows;
-            _this.total = data.tableBody.total;
+            this.taskList = data.tableBody.rows;
+            this.total = data.tableBody.total;
 
           }
-        })
+        } catch (error) {
+          
+        }finally{
+          this.loading = false;
+        }
+       
+        // materialApi.materialList(param, page).then((res) => {
+        //   _this.loading = false;
+        //   console.log(res, '获取物料列表信息以及表头字段');
+        //   let {code, data} = res;
+        //   if (code == 200) {
+        //     _this.taskList = data.tableBody.rows;
+        //     _this.total = data.tableBody.total;
+
+        //   }
+        // })
       },
       // 获取物料列表表头
       getTagList(templateCode) {

+ 8 - 2
src/views/purchase/DemandSummary/index.vue

@@ -128,9 +128,15 @@
             <el-row :gutter="10">
               <el-col :span="1.5">
                 <el-form-item label="物料编码">
-                  <el-input clearable size="mini" v-model="queryParams.names" @clear="clearMaterial" style="width: 200px" @paste.native="pasteMe($event)">
+                  <el-popover
+                    placement="top-start"
+                    width="200"
+                    trigger="hover"
+                    :content="queryParams.names">
+                  <el-input slot="reference" clearable size="mini" v-model="queryParams.names" @clear="clearMaterial" style="width: 200px" @paste.native="pasteMe($event)">
                     <el-button size="mini" slot="append" icon="el-icon-more" @click="chooseMaterial"></el-button>
                   </el-input>
+                  </el-popover>
                 </el-form-item>
               </el-col>
               <el-col :span="1.5">
@@ -802,7 +808,7 @@ export default {
       console.log('选择的物料', selection)
       this.queryParams.materialCodeList = selection.map(item => {return item.code})
       console.log(this.queryParams.materialCodeList)
-      this.queryParams.names = (selection.map(item => {return item.name})).join(',')
+      this.queryParams.names = (selection.map(item => {return item.name})).join('')
     },
     // 清空物料搜索框
     clearMaterial() {

+ 14 - 14
src/views/purchase/purchase-order/add/column.js

@@ -336,20 +336,20 @@ export const Columns = [
     disabled:true,
    },
   // { key: "agent", title: "代理人", inputType: "Input", }, // 建议删除
-  {
-    key: "agentName",
-    title: "代理人",
-    inputType: "PopoverSelect",
-    valueKey: "code",
-    referName: "CONTACTS_PARAM",
-    dataMapping: {
-      agent: 'code',
-      agentName: 'name'
-    },
-     isShow:true,
-    queryParams: () => ({}),
-    width: 200,
-  },
+  // {
+  //   key: "agentName",
+  //   title: "代理人",
+  //   inputType: "PopoverSelect",
+  //   valueKey: "code",
+  //   referName: "CONTACTS_PARAM",
+  //   dataMapping: {
+  //     agent: 'code',
+  //     agentName: 'name'
+  //   },
+  //    isShow:true,
+  //   queryParams: () => ({}),
+  //   width: 200,
+  // },
 
   { 
     key: "isClose", 

+ 6 - 6
src/views/purchase/purchase-order/column.js

@@ -248,12 +248,12 @@ export const TableColumns = [
     },
 
   },
-  { 
-    item:{ key: "agentName", title: "代理人" ,},
-    attr:{
-      isHidden:true,
-    },
-  },
+  // { 
+  //   item:{ key: "agentName", title: "代理人" ,},
+  //   attr:{
+  //     isHidden:true,
+  //   },
+  // },
   {
     item:{ 
       key: "isClose",

+ 90 - 50
src/views/purchase/transferOrder/add.vue

@@ -2,10 +2,10 @@
   <div id="addOder">
     <el-card style="position: relative">
       <span>基本信息</span>
-      <el-form :model="basicForm" :rules="basicRules" ref="basic" label-width="auto">
+      <el-form :model="basicForm" :rules="basicRules" :show-message="false" ref="basic" label-width="auto">
         <el-row :gutter="10">
           <el-col :span="1.5">
-            <el-form-item label="调出库存组织">
+            <el-form-item label="调出库存组织" prop="deliveryInventoryOrg">
               <el-select clearable :disabled="sonDisable" size="mini" v-model="basicForm.deliveryInventoryOrg" 
                 @clear="clean('调出库存组织')"
                 @change="controlCk('调出库存组织')"
@@ -18,7 +18,7 @@
           </el-col>
 
           <el-col :span="1.5">
-            <el-form-item label="调入库存组织">
+            <el-form-item label="调入库存组织" prop="storageInventoryOrg">
               <el-select clearable :disabled="sonDisable" size="mini" v-model="basicForm.storageInventoryOrg"
                 @clear="clean('调入库存组织')"
                 @change="controlCk('调入库存组织')"
@@ -31,7 +31,7 @@
           </el-col>
 
           <el-col :span="1.5">
-            <el-form-item label="调出部门">
+            <el-form-item label="调出部门" prop="deliveryDept">
               <el-select clearable :disabled="sonDisable || isOrg"
                 size="mini"
                 v-model="basicForm.deliveryDept"
@@ -44,7 +44,7 @@
           </el-col>
 
           <el-col :span="1.5">
-            <el-form-item label="调出仓库">
+            <el-form-item label="调出仓库" prop="deliveryWarehouse">
               <el-select clearable :disabled="sonDisable || isOrg"
                 size="mini"
                 v-model="basicForm.deliveryWarehouse"
@@ -73,7 +73,7 @@
           </el-col>
 
           <el-col :span="1.5">
-            <el-form-item label="调入仓库">
+            <el-form-item label="调入仓库" prop="storageWarehouse">
               <el-select clearable :disabled="sonDisable || isOrg"
                 size="mini"
                 v-model="basicForm.storageWarehouse"
@@ -88,7 +88,7 @@
           </el-col>
 
           <el-col :span="1.5">
-            <el-form-item label="订单类型">
+            <el-form-item label="订单类型" prop="billType">
               <el-select clearable v-model="basicForm.billType" :disabled="sonDisable" size="mini" style="width: 200px">
                 <el-option v-for="dict in dict.type.sys_allot_billtype" :key="dict.value" :label="dict.label" :value="dict.value">
                 </el-option>
@@ -107,7 +107,7 @@
 
           <el-col :span="1.5">
             <el-form-item label="单据号">
-              <el-input clearable :disabled="sonDisable" v-model="basicForm.code" size="mini" style="width: 200px"/>
+              <el-input clearable disabled v-model="basicForm.code" size="mini" style="width: 200px"/>
             </el-form-item>
           </el-col>
 
@@ -318,7 +318,7 @@
                 width="200px"
               >
                 <template slot-scope="scope">
-                  <el-form-item class="hang">
+                  <el-form-item class="hang" :prop="'materialInfo.' + scope.$index + '.materialCode'" :rules="basicForm.materialCode">
                     <el-input
                       clearable
                       :disabled="sonDisable"
@@ -408,6 +408,7 @@
                       size="mini"
                       v-model="scope.row.qty"
                       @input="getSL(scope)"
+                      @change="changeQty()"
                     />
                   </el-form-item>
                 </template>
@@ -1302,7 +1303,7 @@
               />
             </el-form-item>
           </el-col>
-          <!-- <el-col :span="1.5">
+          <el-col :span="1.5">
             <el-form-item label="最后修改人">
               <el-input
                 v-model="basicForm.updateByName"
@@ -1323,7 +1324,7 @@
                 style="width: 200px"
               />
             </el-form-item>
-          </el-col> -->
+          </el-col>
         </el-row>
       </el-form>
 
@@ -1512,7 +1513,29 @@ export default {
       ruHouseOptions: [],
       chuHouseOptions: [],
       liacenterOptions: [],
-      basicRules: {},
+      basicRules: {
+        billType: [
+          { required: true, message: "订单类型不能为空", trigger: "blur" },
+        ],
+        deliveryWarehouse: [
+          { required: true, message: "调出仓库不能为空", trigger: "blur" },
+        ],
+        storageWarehouse:[
+          { required: true, message: "调入仓库不能为空", trigger: "blur" },
+        ],
+        deliveryInventoryOrg:[
+          { required: true, message: "调出库存组织不能为空", trigger: "blur" },
+        ],
+        storageInventoryOrg:[
+          { required: true, message: "调入库存组织不能为空", trigger: "blur" },
+        ],
+        deliveryDept:[
+          { required: true, message: "调出部门不能为空", trigger: "blur" },
+        ],
+        materialCode:[
+          { required: true, message: "明细物料不能为空", trigger: "blur" },
+        ],
+      },
       materialInfo: [],
       receiveInfo: [],
       priceList: [],
@@ -1683,45 +1706,57 @@ export default {
         });
     },
     save() {
-      if (this.materialInfo.length !== 0) {
-        if (this.sonPageStu == "add") {
-          this.basicForm.stAllotMaterialList = this.materialInfo;
-          this.basicForm.stAllotReceiveDeliverList = this.receiveInfo;
-          this.basicForm.stAllotReceiveExecuteList = this.priceList;
-          this.basicForm.stAllotReceiveExpenseList = this.resultList;
-          this.$modal.loading("保存中...");
-          addOrder(this.basicForm)
-            .then((res) => {
-              if (res.code === 200) {
-                this.$modal.notifySuccess("保存成功");
-                this.$modal.closeLoading();
-                this.back();
-              }
-            })
-            .catch((err) => {
-              this.$modal.closeLoading();
-            });
-        } else if (this.sonPageStu == "edit") {
-          this.basicForm.stAllotMaterialList = this.materialInfo;
-          this.basicForm.stAllotReceiveDeliverList = this.receiveInfo;
-          this.basicForm.stAllotReceiveExecuteList = this.priceList;
-          this.basicForm.stAllotReceiveExpenseList = this.resultList;
-          this.$modal.loading("保存中...");
-          editOrder(this.basicForm)
-            .then((res) => {
-              if (res.code === 200) {
-                this.$modal.notifySuccess("编辑成功");
-                this.$modal.closeLoading();
-                this.back();
+      this.$refs["basic"].validate(async (valid, obj) => {
+          if (valid) {
+              if (this.materialInfo.length !== 0) {
+                if (this.sonPageStu == "add") {
+                  this.basicForm.stAllotMaterialList = this.materialInfo;
+                  this.basicForm.stAllotReceiveDeliverList = this.receiveInfo;
+                  this.basicForm.stAllotReceiveExecuteList = this.priceList;
+                  this.basicForm.stAllotReceiveExpenseList = this.resultList;
+                  this.$modal.loading("保存中...");
+                  addOrder(this.basicForm)
+                    .then((res) => {
+                      if (res.code === 200) {
+                        this.$modal.notifySuccess("保存成功");
+                        this.$modal.closeLoading();
+                        this.back();
+                      }
+                    })
+                    .catch((err) => {
+                      this.$modal.closeLoading();
+                    });
+                } else if (this.sonPageStu == "edit") {
+                  this.basicForm.stAllotMaterialList = this.materialInfo;
+                  this.basicForm.stAllotReceiveDeliverList = this.receiveInfo;
+                  this.basicForm.stAllotReceiveExecuteList = this.priceList;
+                  this.basicForm.stAllotReceiveExpenseList = this.resultList;
+                  this.$modal.loading("保存中...");
+                  editOrder(this.basicForm)
+                    .then((res) => {
+                      if (res.code === 200) {
+                        this.$modal.notifySuccess("编辑成功");
+                        this.$modal.closeLoading();
+                        this.back();
+                      }
+                    })
+                    .catch((err) => {
+                      this.$modal.closeLoading();
+                    });
+                }
+              } else {
+                this.$modal.notifyWarning("明细行不能为空");
               }
-            })
-            .catch((err) => {
-              this.$modal.closeLoading();
-            });
-        }
-      } else {
-        this.$modal.notifyWarning("明细行不能为空");
-      }
+          } else {
+            const jiaoyan = []
+            for(let key in obj) {
+              jiaoyan.push(obj[key][0].message);
+            }
+            this.$modal.notifyWarning(jiaoyan[0]);
+            return false;
+          }
+      });
+      
     },
     back() {
       this.$emit("jugislist", true);
@@ -2064,6 +2099,11 @@ export default {
       this.tableIndex = index;
       this.$refs.materialRefer.init();
     },
+    // 明细行数量失去焦点
+    changeQty(aa,bb){
+      console.log('aa',aa);
+      console.log('bb',bb);
+    },
     selectMaterial(selection) {
       console.log("选中的物料", selection);
       // 先清空通用名,调入调出结算规则明细

+ 1 - 2
vue.config.js

@@ -47,8 +47,7 @@ module.exports = {
         // target: `http://172.16.13.113:8000/drp-admin`, //DWT本地
         // target: `http://172.16.13.21:8000/drp-admin`, //CKF本地
         // target: `http://172.16.13.43:8000/drp-admin`, //lz's localhost
-      //  target: `http://172.16.63.126:8000/drp-admin`, //wjie
-         // target: `http://127.0.0.1:8000/drp-admin`,
+        //  target: `http://127.0.0.1:8000/drp-admin`,
         changeOrigin: true,
         pathRewrite: {
           ["^" + process.env.VUE_APP_BASE_API]: "",