vue弹框修改

vue

 根据表ID 修改索引:弹框效果实现的代码:

<el-table-column label="操作" width="200" align="center">

<template slot-scope="scope">

<div>

<el-button

size="mini"

type="text"

@click="open(scope.row.id, 'index')"

>编辑索引</el-button

>

</div>

</template>

</el-table-column>

 JS methods 中的代码:

open(id, type) {

this.id = id;

switch (type) {

case "edit":

break;

case "answer":

this.dialogAnswer = true;

break;

case "video":

this.dialogAnalysis = true;

break;

case "index":

this.updateQuestionIndexDialog = true;

break;

}

this.add.id = id;

},

<el-dialog title="修改索引" :visible.sync="updateQuestionIndexDialog" width="250px">

<el-form :model="addOrEdit" :rules="rules" ref="addOrEdit">

<span>

<el-form-item >

<el-input v-model="add.questionIndex" width="20px"></el-input>

</el-form-item>

</span>

</el-form>

<span slot="footer" class="dialog-footer">

<el-button @click="updateQuestionIndexDialog = false">取 消</el-button>

<el-button type="primary" @click="editQuestionIndex">确 定</el-button>

</span>

</el-dialog>

data 函数的相关代码:

add: {

        id: "",

      

        questionIndex: "",

      },

 

updateQuestionIndexDialog: false,

 

methods 中的代码:

editQuestionIndex() {

let param = {

id: this.add.id,

questionIndex: "",

};

if (this.add.questionIndex) {

param.questionIndex = this.add.questionIndex;

}

this.updateQuestionIndex(param);

this.updateQuestionIndexDialog = false;

this.add.id = "";

this.add.questionIndex = "";

this.add.videoExplain = "";

},

    updateQuestionIndex(param) {

editQuestionIndex(param).then(() => {

this.$message.success("修改索引成功");

this.reload();

});

},

editQuestionIndex  在

import {

  editQuestionIndex,

} from "@/api/resource"; 中引入

 

export function editQuestionIndex(params) {

return request({

url: `/document/question/index/{id}`.format(params),

method: 'patch',

data: params

})

}

 发送的请求如下:

 

Request URL:
http://IP/document/question/index/213262533656737
Request Method:
PATCH

BODY:
{id: "213262533656737", questionIndex: "120"}

VUE 读取 Map:

后端返回List 数组 ,数组中的每一个map元素,有一个字段 snapshotTargets (也是map)

snapshotTargets: {20: {classCode: "20", gradeName: "九年级",…},…}
20: {classCode: "20", gradeName: "九年级",…}
classCode: "20"
className: "4班"
classStudents: [{memberCode: "P600202006190000009", submit: false, overTimeSubmit: false, memberName: "李世明",…},…]
gradeName: "九年级"
students: ["李世明", "张凌", "陌陌", "梁俊鹏", "张碧晨", "赵匡胤", "XXXX", "阿特兹", "林动", "大暗黑天", "快乐风男", "李佳玉", "无极剑圣", "秋衣",…]

900-8316894-150983: {classCode: "900-8316894-150983", gradeName: "七年级",…}
classCode: "900-8316894-150983"
className: "19班"
classStudents: [{memberCode: "P600202007210000001", submit: false, overTimeSubmit: false, memberName: "乐乐",…},…]
gradeName: "七年级"
students: ["乐乐", "陌陌", "陌晴之", "水晶葡萄", "谢丽丽", "张三", "王明阳", "文文"]

页面表格中 读取 snapshotTargets , i 分别为 snapshotTargets map 的key 20 和 900-8316894-150983  ,取得的值是: 九年级4班  七年级19班, 展示在页面

<el-table-column label="发布对象" prop="classNames" align="center" width="160" >

<template slot-scope="scope">

<span v-if="scope.row.snapshotTargets">

<span v-for="(item,i) in scope.row.snapshotTargets" :key="i">

{{

scope.row.snapshotTargets[i].gradeName+scope.row.snapshotTargets[i].className

}}

</span>

</span>

<span v-else> - </span>

</template>

</el-table-column>

二:根据 某一行的数据,展示 重置 按钮,改变行的记录:

比如 当状态是 完成 status=8 时, 展示 重置按钮,并 修改 status 是 4 。

vue代码:

<el-table-column label="操作" width="200" align="center">

<template slot-scope="scope">

<div>

<el-button

size="mini"

v-if="scope.row.status == '8'"

@click="resetTask(scope.row)"

>重置</el-button

>

<el-button

size="mini"

v-if="scope.row.status == '1'"

type="success"

@click="sendTask(scope.row)"

>发起识别</el-button

>

<el-button size="mini" @click="lookTask(scope.row)"

>任务明细</el-button

>

</div>

</template>

</el-table-column>

方法:

resetTask(row) {

editStatus(row.id, { status: "4" }).then(() => {

this.$message({

type: "success",

message: "发起成功,请等待处理"

});

this.fetchList();

});

},

import {

  editStatus

} from "@/api/templateTask";

 

在 templateTask.js 中:

export function editStatus(id,data) {

return request({

url: `/template/task/${id}`,

method: 'post',

data: data

})

}

发送的请求: 

Request URL:   http://IP/template/task/900-8316558-607112

BODY:  {status: "4"}

 

 

 

二:  弹框提示:

 代码如下:

<el-button type="text" size="mini" @click="open(scope.row.id)" v-if="scope.row.status == '0' || scope.row.status == '-1' " >重置</el-button>

JS 的 method 方法:

   open(id){

this.$confirm('是否需要 重置 ' + id + ' 是否继续?', '提示', {

confirmButtonText: '确定',

cancelButtonText: '取消',

type: 'warning'

}).then(() => {

this.resetTask(id);

}).catch(() => {

this.$message({

type: 'info',

message: '已取消'

});

});

},

调用方法:

resetTask(id){

resetOcrTask({'id':id}).then(()=>{

this.$message.success("重置成功");

this.findList();

})

},

以上是 vue弹框修改 的全部内容, 来源链接: utcz.com/z/379958.html

回到顶部