2023-08-10 21:09:49 +08:00
<!DOCTYPE html>
< html lang = "en" xmlns:th = "http://www.thymeleaf.org" >
< head >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" / >
< meta charset = "UTF-8" >
< link rel = "stylesheet" href = "../../css/ssp/bootstrap.min.css" >
< link rel = "stylesheet" href = "../../css/ssp/takePicture.css" >
< link rel = "stylesheet" href = "../../css/ssp/date.css" >
< link rel = "stylesheet" href = "../../css/ssp/newTips.css" >
< title > 质量隐患留痕< / title >
< style >
.menuTree{ margin-left:0px;}
.menuTree div{ padding-left:1px;}
.menuTree div ul{ overflow:hidden; display:none; height:auto; margin:0; padding-left: 25px;}
.menuTree span{color:#88a2ed; display:block; height:40px; line-height:40px; padding:0 15px; margin:1px 0; cursor:pointer; border-bottom:1px solid #445577;}
.menuTree a{ color:#333; text-decoration:none;}
.menuTree a:hover{ color:#06F;}
.arrow{width: 25px;height: 25px;position: relative;border:0;top: 4px;float: right;background: url("http://fileimg.makalu.cc/CORE_9883C8C92A0347398B4A1309E7E03A52.png") no-repeat center/25px;}
.arrow.xz{transform:rotate(90deg)}
.ssp-popup-gx{
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #30384b;
z-index: 999;
display: none;
}
.ssp-popup-gx-title{
height: 2.5rem;
border-bottom: 1px solid #445577;
text-align: center;
line-height: 2.5rem;
}
.ssp-popup-gx-con{
max-height:25rem;
overflow-x:hidden;
overflow-y: auto;
}
< / style >
< / head >
< body >
< header class = "hide" >
< div class = "row" >
< div class = "col-xs-3" onclick = "goBack()" >
< img src = "../../img/ssp/h_lift.png" >
< / div >
< div class = "col-xs-6" >
< p > 问题整改< / p >
< / div >
< / div >
< / header >
< div id = "app" >
< div class = "ssp-all" >
< div class = "ssp-problem-rectification" >
< div class = "ssp-block" >
< div class = "spp-block-title" >
留痕上报
< / div >
< div class = "ssp-block-position" >
{{form.marksLocation}}
< / div >
< / div >
< div class = "ssp-block" >
< div class = "spp-block-title" >
留痕时间
< / div >
< div class = "ssp-block-input" >
< input type = "text" id = "dateTime" data-options = "{'type':'YYYY-MM-DD hh:mm','beginYear':2010,'endYear':2020}" readonly placeholder = "请选择留痕时间" v-model = "form.marksTime" >
< / div >
< / div >
< div class = "ssp-block" >
< div class = "spp-block-title" >
图片上传
< / div >
< div class = "row eq-scene-max" >
< div >
< / div >
< div class = "col-xs-4" >
< div class = "rq-add-to" > < / div >
< input type = "file" accept = "image/*" class = "rq-file" onchange = "xmTanUploadImg(this)" >
< / div >
< / div >
< p class = "spp-p" > 上传格式: 只能上传JPG/PNG文件, 且不超过500KB< / p >
< / div >
< div class = "ssp-block" >
< div class = "spp-block-title" >
视频上传
< / div >
< div class = "row eq-scene-max" >
< div class = "ssp-block-video" >
< video id = "videoSrc" controls = "controls" src = "" > < / video >
< div class = "rq-delete-video" onclick = "deleteVideo(this)" > × < / div >
< / div >
< input type = "file" accept = "video/*" class = "rq-file-video" id = "selectFile" >
< div class = "video-tips" >
< div id = "tipsHide" > 视频上传百分比:< span id = "percent" > < / span > < / div >
< / div >
< / div >
< input type = "hidden" id = "bigFile" name = "bigFile" >
< input type = "hidden" id = "bigFileName" name = "bigFileName" >
< p class = "spp-p" > 上传格式: 只能上传MP4文件,且文件应大于30秒< / p >
< / div >
< div class = "ssp-block" >
< div class = "spp-block-title" >
质量隐患
< / div >
< div class = "ssp-block-input" >
< input type = "text" placeholder = "请选择质量隐患类型" readonly id = "input0" onclick = "inputClick(0)" v-model = "form.projectType" >
< input type = "hidden" id = "projectType" >
< / div >
< / div >
<!-- <div class="ssp - block"> -->
<!-- <div class="spp - block - title"> -->
<!-- 工序名称 -->
<!-- </div> -->
<!-- <div class="ssp - block - input"> -->
<!-- <input type="text" placeholder="请选择工序名称" readonly id="input1" onclick="workingProcedure(1)" v - model="form.processName"> -->
<!-- <input type="hidden" id="processName" name="processName" > -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="ssp - block"> -->
<!-- <div class="spp - block - title"> -->
<!-- 工程名称 -->
<!-- </div> -->
<!-- <div class="ssp - block - input"> -->
<!-- <input type="text" placeholder="请选择工程名称" readonly id="input2" onclick="inputClick(2)" v - model="form.projectName"> -->
<!-- <input type="hidden" id="projectName" > -->
<!-- </div> -->
<!-- </div> -->
< div class = "ssp-block" >
< div class = "spp-block-title" >
2023-08-11 22:15:06 +08:00
问题描述
2023-08-10 21:09:49 +08:00
< / div >
< div class = "ssp-block-input" >
2023-08-11 22:15:06 +08:00
< input type = "text" placeholder = "请输入问题描述" id = "constructionSite" v-model = "form.positionPart" autocomplete = "off" >
2023-08-10 21:09:49 +08:00
< / div >
< / div >
< div class = "ssp-block" >
< div class = "spp-block-title" >
留痕说明
< / div >
< div class = "ssp-ri-textarea" >
< textarea placeholder = "请输入整改要求" v-model = "form.marksRemark" > < / textarea >
< / div >
< / div >
< div class = "ssp-block" >
< div class = "spp-block-title" >
上报人身份证号码
< / div >
< div class = "ssp-block-input" >
< input type = "text" placeholder = "请输入上报人身份证号码" id = "idcardnum" v-model = "form.idcardnum" autocomplete = "off" >
< / div >
< / div >
< div class = "ssp-block" >
< div class = "spp-block-title" >
审核人
< / div >
< div class = "ssp-block-input" >
< input type = "text" placeholder = "请选择主送人" id = "mainGiver" onclick = "structure(this)" readonly v-model = "form.auditorPerson" >
< / div >
< / div >
< / div >
< div class = "ssp-btn" >
< div class = "row" >
< div class = "col-xs-6" >
< button type = "button" class = "ssp-btn-cancel" @ click = "cancel()" > 取消< / button >
< / div >
< div class = "col-xs-6" >
< button type = "button" class = "ssp-btn-confirm" @ click = saveData() > 提交< / button >
< / div >
< / div >
< / div >
< / div >
<!-- 工程类型、工序名称、工程名称 下拉框 -->
< div class = "ssp-select-fixed" id = "selectFixed" >
< div class = "ssp-select-content" id = "selectCon" >
< ul class = "spp-select-ul" >
< li v-for = "item in projectTypeList" onclick = "optionLi(this)" :id = "item.id" > {{item.project_type}}< / li >
< / ul >
< ul class = "spp-select-ul" >
< li v-for = "item in workingList" onclick = "optionLi(this)" :id = "item.id" > {{item.name}}< / li >
< / ul >
< ul class = "spp-select-ul" >
< li v-for = "item in projectList" onclick = "optionLi(this)" :code = "item.code" > {{item.name}}< / li >
< / ul >
< / div >
< / div >
2023-08-11 22:15:06 +08:00
<!-- 问题描述下拉框 -->
2023-08-10 21:09:49 +08:00
<!-- <div class="ssp - select - fixed" id="selectFixedPo">
< div class = "ssp-select-content" id = "selectConPo" >
< ul class = "spp-select-ul" >
< li v-for = "item in list" onclick = "optionLiPo(this)" :name = "item.name" :phone = "item.phone" > {{item.value}}< / li >
< / ul >
< / div >
< / div > -->
<!-- 组织架构 -->
< div class = "ssp-framework" id = "framework" >
< div class = "ssp-framework-content" id = "frameworkCon" >
< div class = "ssp-framework-top" id = "frameworkTop" >
< div class = "ssp-framework-title" >
< div class = "row" >
< div class = "col-xs-3" >
< div class = "ssp-framework-img" id = "frameworkClose" >
< img src = "/img/left.png" >
< / div >
< / div >
< div class = "col-xs-6" >
< span id = "frameworkTitle" > 请选择< / span >
< / div >
< / div >
< / div >
< div class = "ssp-framework-search" >
< input type = "text" placeholder = "搜索" v-model = "name" >
< button type = "button" @ click = "searchFun()" > 搜索< / button >
< / div >
< / div >
< div class = "app-fold" id = "fold" >
< div class = "app-fold-block" v-for = "item in lists" >
< div class = "app-fold-title" onclick = "foldTitle(this)" > {{item.dep}}< / div >
< ul class = "app-fold-ul" >
< li class = "spp-li" v-for = "li in item.people" onclick = "foldLi(this)" >
< span > {{li.name}}< / span >
< span > {{li.phone}}< / span >
< / li >
< / ul >
< / div >
< / div >
< / div >
< / div >
< input type = "hidden" id = "hiddenData" >
< input type = "hidden" id = "posValue" >
< input type = "hidden" id = "posName" >
< input type = "hidden" id = "posPhone" >
< / div >
< div class = "ssp-popup" id = "popupTj" >
< div class = "ssp-popup-content" >
< div class = "spp-window-title ssp-popup-title" >
< label > 消息提示< / label >
< / div >
< div class = "ssp-popup-textarea" >
< div class = "ssp-popup-div" > 添加成功< / div >
< / div >
< div class = "spp-popup-btn" >
< button type = "button" onclick = "confirmBtnBack()" > 提交< / button >
< / div >
< / div >
< / div >
<!-- 工序弹窗 -->
< div class = "ssp-popup-gx" id = "popupTree" >
< div class = "ssp-popup-gx-title" >
< div class = "row" >
< div class = "col-xs-2" >
< img src = "../../img/ssp/h_lift.png" onclick = "closePopup()" >
< / div >
< div class = "col-xs-8" >
< p > 工序名称< / p >
< / div >
< / div >
< / div >
< div class = "ssp-popup-gx-con" >
< div id = "tree" class = "menuTree" > < / div >
< / div >
< / div >
< / body >
< script type = "text/javascript" src = "/js/jquery-3.0.0.min.js" > < / script >
< script src = "/js/vue.min.js" > < / script >
< script type = "text/javascript" src = "/js/vue-resource-1.3.4.js" > < / script >
< script type = "text/javascript" src = "/js/ssp/qiniu-3.1.2.min.js" > < / script >
< script type = "text/javascript" src = "/js/ssp/upload.js" > < / script >
< script type = "text/javascript" src = "/js/ssp/jquery.date.js" > < / script >
< script type = "text/javascript" src = "../../js/ssp/newTips.js" > < / script >
< script type = "text/javascript" src = "/js/tree.js" > < / script >
< script >
//项目名称
var projectName = '[[${projectName}]]';
//项目id
var projectId = '[[${projectId}]]';
var gxList = "";
/**
* 将dom对象交给vue
*/
var vm= new Vue({
el:'#app',
data:{
form: {
marksLocation: projectName,
infoType: 1
},
//施工部门数据
projectTypeList:[],
//工序名称
workingList: [],
//工程列表
projectList: [],
//主审核人
lists:[],
params:{},
name:""
},
created() {
//工程名称、
this.getProjectType();
//工序名称
this.getProcessName();
//主审批人
this.getAllList();
//工程名称
this.getProjectName();
},
methods:{
//新增
saveData() {
//上传图片
var nameSrc = $("[name='imgName']");
if(nameSrc.length < = 0) {
toast({
message:"至少上传一张图片",
time:3000
});
return false;
}
var src=[]
for (var i=0;i< nameSrc.length ; i + + ) {
src.push(nameSrc[i].src);
}
//上传视频
let videoUrl = $("#bigFile").val();
//工程类型, 工序类型,工程名称
this.form.projectType = $("#projectType").val();
//this.form.processName = $("#processName").val();
//this.form.projectName = $("#projectName").val();
//留痕上报时间
this.form.marksTime = $("#dateTime").val()
//主送人和手机号
this.form.marksPicture = JSON.stringify(src);
this.form.marksVideo = videoUrl;
this.form.auditorPerson = $("#mainGiver").val();
this.form.auditorPhone = $("#posPhone").val();
if(isIdCard("身份证号", "idcardnum")) {
this.$http.post('/weixin/sspManage/saveMarksMy', this.form).then(result => {
console.log("result" +"======" + result);
if(result.bodyText == "OK") {
$("#popupTj").fadeIn(300);
} else {
toast({
message:"添加失败请联系管理员",
time:3000
});
}
})
}
},
//取消(重置)表单
cancel() {
this.form = {};
window.history.back();
},
//获取工程类型
getProjectType() {
let _this = this;
$.ajax({
type: "get",
url: "/weixin/sspManage/getProjectType",
async: false,
success: function (data) {
_this.projectTypeList = data;
}
})
},
//工序名称
getProcessName() {
$.ajax({
type: "get",
url: "/weixin/sspManage/treesList",
async: false,
success: function (data) {
gxList = data.children;
}
})
},
//主审批人
getAllList() {
let _this = this;
this.$http.post('/weixin/sspManage/queryUserInfo').then(result => {
_this.lists = result.data
})
},
//工程名称
getProjectName() {
let _this = this;
$.ajax({
type: "get",
url: "/weixin/sspManage/selectCodeFromSmark",
data: {"projectId": projectId},
async: false,
success: function (data) {
_this.projectList = data.ponitCode;
}
})
},
//搜索
searchFun() {
let _this = this;
$.ajax({
type: "get",
url: "/weixin/sspManage/queryUserInfo",
data: {"name": this.name},
async: false,
success: function (data) {
// _this.projectList = data;
_this.lists = data
}
})
}
}
})
//删除视频
function deleteVideo() {
$("#videoSrc").attr("src","");
$("#videoSrc").hide();
$(".rq-delete-video").hide();
$("#selectFile").show();
$("#percent").html("");
}
/*上传图片*/
var i = 0;
function xmTanUploadImg(obj) {
i++;
var a = "preview"+i;
var b = "#preview"+i;
var c = "xmTanImg"+i
$(obj).parent().prev().append('< div class = "col-xs-4" > < div class = "eq-scene-img" id = "'+a+'" > < div class = "rq-delete" onclick = "deletes(this)" > × < / div > < / div > < / div > ')
$(b).prepend("< img id = '"+c+"' name = 'imgName' > ");
var file = obj.files[0];
if(file == undefined){
//alert(123);
//$("#image").val("");
}else{
var reader = new FileReader();
//读取文件过程方法
reader.onloadstart = function (e) {
console.log("开始读取....");
}
reader.onprogress = function (e) {
console.log("正在读取中....");
}
reader.onabort = function (e) {
console.log("中断读取....");
}
reader.onerror = function (e) {
console.log("读取异常....");
}
reader.onload = function (e) {
console.log("成功读取....");
console.log(e);
var img = document.getElementById(c);
var data = e.target.result;
var image = new Image();
image.src= data;
image.onload=function(){
img.src= data;
};
}
reader.readAsDataURL(file)
}
}
//删除上传的图片
function deletes(de){
$(de).parent().parent().remove();
}
//弹窗动态居中
function paddingTop() {
var screenH = window.screen.height;
var selectH = $("#selectCon").height()
var SelectTop = (screenH - selectH - 80) / 2
var selectHpo = $("#selectConPo").height()
var SelectTopPo = (screenH - selectHpo - 80) / 2
$("#selectFixed").css("padding-top",SelectTop)
$("#selectFixedPo").css("padding-top",SelectTopPo)
}
//点击工程类型、工序名称、工程名称显示选项
var num = 0;
function inputClick(n) {
$("body").css("overflow","hidden")
$(".spp-select-ul li").removeClass("li")
$("#selectFixed").fadeIn(500);
$(".spp-select-ul").hide();
if(n==0){
$("#selectCon").children().eq(n).show();
num = n
}else if(n==1){
$("#selectCon").children().eq(n).show();
num = n
}else{
$("#selectCon").children().eq(n).show();
num = n
}
paddingTop();
}
//点击显示下拉框
function optionLi(e) {
$(e).addClass("li")
$("body").css("overflow","auto")
if(num == 0){
$("#input0").val($(e).html())
$("#projectType").val($(e).attr("id"))
}else if(num == 1){
$("#input1").val($(e).html())
$("#processName").val($(e).attr("id"))
}else if(num == 2){
$("#input2").val($(e).html())
//获取code
$("#projectName").val($(e).attr("code"))
}
$("#selectFixed").fadeOut(500);
}
//点击蒙版 关闭 施工部门选项
$(function(){
$("body").bind('click',function(e){
if(e.target.className == 'ssp-select-fixed'){
$("#selectFixed").fadeOut(500);
$("body").css("overflow","auto")
}
})
})
//点击施工部门选项 赋值给施工部门input , 施工部门选项关闭
function optionLiPo(e) {
$(e).addClass("li")
$("body").css("overflow","auto")
$("#constructionSite").val($(e).html());
$("#mainGiver").val($(e).attr('name'));
$("#posValue").val($(e).html());
$("#posName").val($(e).attr('name'));
$("#posPhone").val($(e).attr('phone'));
$("#selectFixedPo").fadeOut(500);
}
//点击施工部门 显示选项
function constructionSite() {
$("body").css("overflow","hidden")
$(".spp-select-ul").show();
$(".spp-select-ul li").removeClass("li")
$("#selectFixedPo").fadeIn(500);
paddingTop();
}
//点击审核人 显示组织架构
function structure(e) {
$("body").css("overflow","hidden")
$("#framework").fadeIn(500);
var screenH = window.screen.height;
var topH = $("#frameworkTop").innerHeight()
var topH = screenH-topH-100
$("#fold").css("max-height",topH);
$(".spp-li").removeClass("ssp-active")
$("#frameworkTitle").html("请选择审核人");
if($(e).val() != ""){
var sppLi = $(".spp-li");
for(var i = 0;i< sppLi.length ; i + + ) {
if($(sppLi[i]).children().eq(1).html() ==$("#posPhone").val()){
$(sppLi[i]).addClass("ssp-active");
}
}
}
}
//关闭组织架构
$("#frameworkClose").click(function () {
closeStructure()
})
//关闭组织架构方法
function closeStructure(){
$("body").css("overflow","auto")
$("#framework").fadeOut(500);
}
//组织架构折叠
function foldTitle(e) {
if($(e).next().css("display") == "none"){
$(e).next().slideDown();
}else {
$(e).next().slideUp();
}
}
//主审批人
function foldLi(e) {
$(".spp-li").removeClass("ssp-active");
$(e).addClass("ssp-active");
$("#mainGiver").val($(e).children().eq(0).html());
$("#posName").val($(e).children().eq(0).html());
$("#posPhone").val($(e).children().eq(1).html());
closeStructure()
}
/**
* 校验身份证号码
*
* @param mess
* @param idv
* @returns {boolean}
*/
function isIdCard(mess, idv) {
var idCard = $("#" +idv+"").val();
// 15位和18位身份证号码的正则表达式
var regIdCard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
// 如果通过该验证,说明身份证格式正确,但准确性还需计算
if (regIdCard.test(idCard)) {
if (idCard.length == 18) {
var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10,
5, 8, 4, 2); // 将前17位加权因子保存在数组里
var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2); // 这是除以11后, 可能产生的11位余数、验证码, 也保存成数组
var idCardWiSum = 0; // 用来保存前17位各自乖以加权因子后的总和
for (var i = 0; i < 17 ; i + + ) {
idCardWiSum += idCard.substring(i, i + 1) * idCardWi[i];
}
var idCardMod = idCardWiSum % 11;// 计算出校验码所在数组的位置
var idCardLast = idCard.substring(17);// 得到最后一位身份证号码
// 如果等于2, 则说明校验码是10, 身份证号码最后一位应该是X
if (idCardMod == 2) {
if (idCardLast == "X" || idCardLast == "x") {
//alert("恭喜通过验证啦!");
return true;
} else {
toast({
message:mess + "格式不正确",
time:3000
});
//alert("身份证号码错误!");
return false;
}
} else {
// 用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
if (idCardLast == idCardY[idCardMod]) {
//alert("恭喜通过验证啦!");
return true;
} else {
toast({
message:mess + "格式不正确",
time:3000
});
//alert("身份证号码错误!");
return false;
}
}
}else{
return true;
}
} else {
toast({
message:mess + "格式不正确",
time:3000
});
//alert("身份证格式不正确!");
return false;
}
}
//关闭页面
function confirmBtnBack() {
window.history.go(-1);
}
$.date('#dateTime');
//工序弹窗
var jsonGx = [
{
"id": "0001",
"name":"一级",
"type": '1', //代表类型 1 代表工序
"list": [
{
"id": "00010001",
"name":" 二级",
"type": '1',
"list": [
{
"id": "000100010001",
"name":"三级",
"type": '1',
}
]
}
]
},
{
"id": "0002",
"name":"一级",
"type": '1',
"list": [
{
"id": "00020001",
"name":"二级",
"type": '1',
"list": [
{
"id": "000200010001",
"name":"三级",
"type": '1',
"list": [
{
"id": "0002000100010001",
"name":"四级1",
"type": '1',
},
{
"id": "0002000100010002",
"name":"四级2",
"type": '1',
},
{
"id": "0002000100010003",
"name":"四级3",
"type": '1',
},
{
"id": "0002000100010002",
"name":"四级4",
"type": '1',
},
]
}
]
}
]
}
]
//点击获取树的数据
function getData(e,id,type){
var gxName = $(e).children("label").html();
if($(e).children(".arrow").attr("class")=="arrow"){
$(e).children(".arrow").addClass("xz")
}else {
$(e).children(".arrow").removeClass("xz")
}
if($(e).next().children().find(".ul").html() == ''){
$(e).next().children().find(".arrow").hide()
}
if($(e).next().html() == ""){
$("#input1").val(gxName)
$("#processName").val(id);
$("body").css("overflow","auto")
$("#popupTree").fadeOut(300)
}
}
//工序树
function workingProcedure(n){
$("body").css("overflow","hidden")
$("#popupTree").fadeIn(300)
$("#tree").empty();
num=0
$("#tree").html(forTree(gxList));
menuTree("tree");
}
//关闭工序树
function closePopup() {
$("body").css("overflow","auto")
$("#popupTree").fadeOut(300)
}
//后退事件
function goBack() {
window.history.back();
}
< / script >
< / html >