0.42-0.38
This commit is contained in:
parent
f9cfce58e5
commit
268b23be3a
|
@ -245,7 +245,7 @@
|
||||||
that.img = new Image();
|
that.img = new Image();
|
||||||
that.img.crossOrigin = 'anonymous';
|
that.img.crossOrigin = 'anonymous';
|
||||||
let value = imag[0].field_value?imag[0].field_value:imag[0].draw_template;
|
let value = imag[0].field_value?imag[0].field_value:imag[0].draw_template;
|
||||||
that.img = 'http://49.232.14.174:2222'+value;
|
that.img = value;
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
that.canvasInit();
|
that.canvasInit();
|
||||||
},500);
|
},500);
|
||||||
|
|
|
@ -217,10 +217,10 @@
|
||||||
<img :src="originImg">
|
<img :src="originImg">
|
||||||
</div>
|
</div>
|
||||||
<div class="halfWidth">
|
<div class="halfWidth">
|
||||||
<img id="canvasImg" src="./../../assets/glass.png" style="width:500px;height: 300px;display: none">
|
<img id="canvasImg" :src="img" style="width:450px;height: 300px;display: none">
|
||||||
<div style="position: relative;display: flex;flex-direction: column;
|
<div style="position: relative;display: flex;flex-direction: column;
|
||||||
border: 1px solid #DCDFE6;">
|
border: 1px solid #DCDFE6;">
|
||||||
<canvas id="canvas" width="500" height="300">
|
<canvas id="canvas" width="450" height="300">
|
||||||
您的浏览器不支持绘图,请升级或更换浏览器!
|
您的浏览器不支持绘图,请升级或更换浏览器!
|
||||||
</canvas>
|
</canvas>
|
||||||
<input type="text" value="" class="hide" id="txt" placeholder="请输入文字">
|
<input type="text" value="" class="hide" id="txt" placeholder="请输入文字">
|
||||||
|
@ -329,8 +329,8 @@
|
||||||
});
|
});
|
||||||
that.img = new Image();
|
that.img = new Image();
|
||||||
that.img.crossOrigin = '';
|
that.img.crossOrigin = '';
|
||||||
that.img = 'http://49.232.14.174:2222'+imag[0].field_value;
|
that.img = imag[0].field_value;
|
||||||
that.originImg = 'http://49.232.14.174:2222'+imag[0].origin_value;
|
that.originImg = imag[0].origin_value;
|
||||||
listJudge.forEach(item => {
|
listJudge.forEach(item => {
|
||||||
let obj = new Object();
|
let obj = new Object();
|
||||||
obj = item;
|
obj = item;
|
||||||
|
|
|
@ -462,7 +462,7 @@
|
||||||
<el-col v-for="item in recordFieldList" :key="item.id" :span="24">
|
<el-col v-for="item in recordFieldList" :key="item.id" :span="24">
|
||||||
<div class="items" v-if="item.field_type==='draw'" style="height: 400px">
|
<div class="items" v-if="item.field_type==='draw'" style="height: 400px">
|
||||||
<span class="itemLabel">{{item.field_name}}:</span>
|
<span class="itemLabel">{{item.field_name}}:</span>
|
||||||
<img style="width: 45%;vertical-align: text-top;" :src="'http://49.232.14.174:2222'+item.field_value"/>
|
<img style="width: 45%;vertical-align: text-top;" :src="item.field_value"/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
|
@ -106,7 +106,7 @@
|
||||||
<el-col v-for="item in fieldList" :key="item.id" :span="24">
|
<el-col v-for="item in fieldList" :key="item.id" :span="24">
|
||||||
<div class="items" v-if="item.field_type==='draw'" style="height: 400px">
|
<div class="items" v-if="item.field_type==='draw'" style="height: 400px">
|
||||||
<span class="itemLabel">{{item.field_name}}:</span>
|
<span class="itemLabel">{{item.field_name}}:</span>
|
||||||
<img style="width: 45%;vertical-align: text-top;" :src="'http://49.232.14.174:2222'+item.field_value"/>
|
<img style="width: 45%;vertical-align: text-top;" :src="item.field_value"/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
|
@ -146,7 +146,7 @@
|
||||||
<el-col v-for="item in fieldList" :key="item.id" :span="24">
|
<el-col v-for="item in fieldList" :key="item.id" :span="24">
|
||||||
<div class="items" v-if="item.field_type==='draw'" style="height: 400px">
|
<div class="items" v-if="item.field_type==='draw'" style="height: 400px">
|
||||||
<span class="itemLabel">{{item.field_name}}:</span>
|
<span class="itemLabel">{{item.field_name}}:</span>
|
||||||
<img style="width: 45%;vertical-align: text-top;" :src="'http://49.232.14.174:2222'+item.field_value"/>
|
<img style="width: 45%;vertical-align: text-top;" :src="item.field_value"/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
|
@ -79,7 +79,7 @@
|
||||||
<el-col v-for="item in fieldList" :key="item.id" :span="24">
|
<el-col v-for="item in fieldList" :key="item.id" :span="24">
|
||||||
<div class="items" v-if="item.field_type==='draw'" style="height: 400px">
|
<div class="items" v-if="item.field_type==='draw'" style="height: 400px">
|
||||||
<span class="itemLabel">{{item.field_name}}:</span>
|
<span class="itemLabel">{{item.field_name}}:</span>
|
||||||
<img style="width: 45%;vertical-align: text-top;" :src="'http://49.232.14.174:2222'+item.field_value"/>
|
<img style="width: 45%;vertical-align: text-top;" :src="item.field_value"/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
|
@ -275,7 +275,7 @@
|
||||||
<el-col v-for="item in recordFieldList" :key="item.id" :span="24">
|
<el-col v-for="item in recordFieldList" :key="item.id" :span="24">
|
||||||
<div class="items" v-if="item.field_type==='draw'" style="height: 400px">
|
<div class="items" v-if="item.field_type==='draw'" style="height: 400px">
|
||||||
<span class="itemLabel">{{item.field_name}}:</span>
|
<span class="itemLabel">{{item.field_name}}:</span>
|
||||||
<img style="width: 45%;vertical-align: text-top;" :src="'http://49.232.14.174:2222'+item.field_value"/>
|
<img style="width: 45%;vertical-align: text-top;" :src="item.field_value"/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
|
@ -476,7 +476,7 @@
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!--复检检验表单-->
|
<!--复检检验表单-->
|
||||||
<el-dialog
|
<el-dialog
|
||||||
width="60%"
|
width="75%"
|
||||||
:title="formName"
|
:title="formName"
|
||||||
@close="recordCancel"
|
@close="recordCancel"
|
||||||
:visible.sync="limitedReview"
|
:visible.sync="limitedReview"
|
||||||
|
@ -739,7 +739,7 @@
|
||||||
<el-col v-for="item in fieldList" :key="item.id" :span="24">
|
<el-col v-for="item in fieldList" :key="item.id" :span="24">
|
||||||
<div class="items" v-if="item.field_type==='draw'" style="height: fit-content">
|
<div class="items" v-if="item.field_type==='draw'" style="height: fit-content">
|
||||||
<span class="itemLabel">{{item.field_name}}:</span>
|
<span class="itemLabel">{{item.field_name}}:</span>
|
||||||
<img style="width: 45%;vertical-align: text-top;" :src="'http://49.232.14.174:2222'+item.field_value"/>
|
<img style="width: 45%;vertical-align: text-top;" :src="item.field_value"/>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-button @click="exportDom">导出</el-button>
|
<el-button @click="exportDom">导出</el-button>
|
||||||
|
@ -946,7 +946,7 @@
|
||||||
debugger;
|
debugger;
|
||||||
console.log(res.data.path)
|
console.log(res.data.path)
|
||||||
let link = document.createElement('a');
|
let link = document.createElement('a');
|
||||||
link.href = 'http://49.232.14.174:2222'+res.data.path;
|
link.href = res.data.path;
|
||||||
document.body.appendChild(link);
|
document.body.appendChild(link);
|
||||||
link.click();
|
link.click();
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,15 +20,15 @@ class EmployeeNotWorkRemarkSerializer(ModelSerializer):
|
||||||
fields = ['not_work_remark']
|
fields = ['not_work_remark']
|
||||||
class FaceLoginSerializer(serializers.Serializer):
|
class FaceLoginSerializer(serializers.Serializer):
|
||||||
base64 = serializers.CharField()
|
base64 = serializers.CharField()
|
||||||
tolerance = serializers.FloatField(required=False, default=0.42)
|
tolerance = serializers.FloatField(required=False, default=0.38)
|
||||||
|
|
||||||
class FaceLoginPathSerializer(serializers.Serializer):
|
class FaceLoginPathSerializer(serializers.Serializer):
|
||||||
path = serializers.CharField()
|
path = serializers.CharField()
|
||||||
tolerance = serializers.FloatField(required=False, default=0.42)
|
tolerance = serializers.FloatField(required=False, default=0.38)
|
||||||
|
|
||||||
class FaceClockCreateSerializer(serializers.Serializer):
|
class FaceClockCreateSerializer(serializers.Serializer):
|
||||||
base64 = serializers.CharField()
|
base64 = serializers.CharField()
|
||||||
tolerance = serializers.FloatField(required=False, default=0.42)
|
tolerance = serializers.FloatField(required=False, default=0.38)
|
||||||
|
|
||||||
class ClockRecordListSerializer(serializers.ModelSerializer):
|
class ClockRecordListSerializer(serializers.ModelSerializer):
|
||||||
create_by_ = UserSimpleSerializer(source='create_by', read_only=True)
|
create_by_ = UserSimpleSerializer(source='create_by', read_only=True)
|
||||||
|
|
|
@ -10,7 +10,7 @@ from django.core.cache import cache
|
||||||
class HRMService:
|
class HRMService:
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def face_compare_from_path(cls, path, tolerance=0.42):
|
def face_compare_from_path(cls, path, tolerance=0.38):
|
||||||
filepath = settings.BASE_DIR +path
|
filepath = settings.BASE_DIR +path
|
||||||
try:
|
try:
|
||||||
unknown_picture = face_recognition.load_image_file(filepath)
|
unknown_picture = face_recognition.load_image_file(filepath)
|
||||||
|
@ -43,7 +43,7 @@ class HRMService:
|
||||||
return None, '匹配多张人脸:' + user_name_str
|
return None, '匹配多张人脸:' + user_name_str
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def face_compare_from_base64(cls, base64_data, tolerance=0.42):
|
def face_compare_from_base64(cls, base64_data, tolerance=0.38):
|
||||||
filename = str(uuid.uuid4())
|
filename = str(uuid.uuid4())
|
||||||
filepath = settings.BASE_DIR +'/temp/' + filename +'.png'
|
filepath = settings.BASE_DIR +'/temp/' + filename +'.png'
|
||||||
with open(filepath, 'wb') as f:
|
with open(filepath, 'wb') as f:
|
||||||
|
|
|
@ -109,7 +109,7 @@ class ClockRecordViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
||||||
if 8<=now_local.hour<=17:
|
if 8<=now_local.hour<=17:
|
||||||
base64_data = base64.urlsafe_b64decode(tran64(
|
base64_data = base64.urlsafe_b64decode(tran64(
|
||||||
request.data.get('base64').replace(' ', '+')))
|
request.data.get('base64').replace(' ', '+')))
|
||||||
user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.42))
|
user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.38))
|
||||||
if user:
|
if user:
|
||||||
ins, created = ClockRecord.objects.get_or_create(
|
ins, created = ClockRecord.objects.get_or_create(
|
||||||
create_by = user, create_time__hour__range = [8,18],
|
create_by = user, create_time__hour__range = [8,18],
|
||||||
|
@ -160,7 +160,7 @@ class FaceLogin(CreateAPIView):
|
||||||
人脸识别登录
|
人脸识别登录
|
||||||
"""
|
"""
|
||||||
base64_data = base64.urlsafe_b64decode(tran64(request.data.get('base64').replace(' ', '+')))
|
base64_data = base64.urlsafe_b64decode(tran64(request.data.get('base64').replace(' ', '+')))
|
||||||
user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.42))
|
user, msg = HRMService.face_compare_from_base64(base64_data, request.data.get('tolerance', 0.38))
|
||||||
if user:
|
if user:
|
||||||
refresh = RefreshToken.for_user(user)
|
refresh = RefreshToken.for_user(user)
|
||||||
# 可设为在岗
|
# 可设为在岗
|
||||||
|
@ -198,7 +198,7 @@ class FacePathLogin(CreateAPIView):
|
||||||
"""
|
"""
|
||||||
人脸识别登录-文件地址
|
人脸识别登录-文件地址
|
||||||
"""
|
"""
|
||||||
user, msg = HRMService.face_compare_from_path(request.data.get('path'), request.data.get('tolerance', 0.42))
|
user, msg = HRMService.face_compare_from_path(request.data.get('path'), request.data.get('tolerance', 0.38))
|
||||||
if user:
|
if user:
|
||||||
refresh = RefreshToken.for_user(user)
|
refresh = RefreshToken.for_user(user)
|
||||||
# 可设为在岗
|
# 可设为在岗
|
||||||
|
|
|
@ -28,9 +28,10 @@ def exprot_test_record(tr:TestRecord, tm:str):
|
||||||
'l': InlineImage(doc, BASE_DIR + i['field_value'], width=Mm(80)),
|
'l': InlineImage(doc, BASE_DIR + i['field_value'], width=Mm(80)),
|
||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
edata[i['field_key']] = i['field_value']
|
if i['field_value']:
|
||||||
if i.get('origin_value', ''):
|
edata[i['field_key']] = i['field_value']
|
||||||
edata[i['field_key']] = '{}({})'.format(i['origin_value'] + i['field_value'])
|
elif i.get('origin_value', ''):
|
||||||
|
edata[i['field_key']] = i['origin_value']
|
||||||
|
|
||||||
# 开始生成word
|
# 开始生成word
|
||||||
doc.render(edata)
|
doc.render(edata)
|
||||||
|
|
Loading…
Reference in New Issue